<Directory>...</Directory> -- 设定指定目录的访问权限
<Files>...</Files> -- 设置应用于指定文件的指令
示例:拒绝访问以‘-ht'开头的文件
<Files ~"^\.ht">
Order allow,deny
Deny from all
</Files>
<Location>...</Location> -- 设置应用于特定URL的指令,容器包含只应用于特定URL的指令
<VirtualHost>...</VirtualHost> -- 虚拟主机的配置
设置根目录的访问权限
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
Options选项
All -- 用户可以在该目录中做任何操作
ExecCGI -- 允许用户在目录中执行CGI程序
FollowSymLinks -- 服务器可以使用符号链接指向的文件或者目录
Indexes -- 服务器可生成此目录的文件列表
None -- 不允许访问该目录
Allow选项 --设定允许访问Apache服务器的主机
Allow from all -- 允许所有主机访问
Allow from 201.1.1.1 234.3.4.1 -- 允许来自指定IP的主机访问
Deny选项 -- 设定拒绝访问Apache服务器的主机
Deny from all -- 拒绝所有主机的访问
Deny from 201.1.1.1 234.3.4.1 -- 拒绝来自指定IP的主机访问
#
Order选项 -- 用于指定allow和deny的先后次序
Order deny,allow
Deny from all
Allow from 202.44.23.1
Order allow,deny
Allow from all
Deny from 202.44.23.1
DefaultType text/plain
配置默认的MIME(Mutiproposed Internet Mail Extensions,多功能Internet 邮件扩充服务) 的类型,如果服务器不确定使用什么类型,就使用该默认设置。
如果你网站的内容主要是文字,则最好使用"text/plain"
如果你的网站上的内容主要是二进制文件(图片、视频等),则可以使用"application/octet-stream"
这样可以让你的浏览器在接收到二进制文件时,以正确的方式显示出来,而不是直接显示二进制文本
function test(){
static $a=0;
$a++;
echo $a;
}
test();//1
test();//2
test();//3
Note: 静态变量可以按照上面的例子声明。如果在声明中用表达式的结果对其赋值会导致解析错误。
static $a=0+1;
static $a=sqrt(121);
像上面的赋值方式会报错,不信你试试
在linux中配置syslog
在linux中,facility(设备)有以下几种:
AUTH 普通安全/授权消息
AUTHPRIV 私有安全/授权消息
CRON 定时器进程
DAEMON 守护进程
KERN 内核消息
LOCAL0 ... LOCAL7 本地应用,在windows上不支持
LPR 行式打印机
MAIL 邮件服务
NEWS 新闻服务
SYSLOG 由syslogd内部产生的消息
USER 通用的用户级信息
UUCP UUCP子系统
登录linux系统,进入/etc目录,输入:
vim syslog.conf
打开syslog的配置文件
在这里,你可以看到syslog的所有配置信息,这里定义了在上一节中提到的每种日志类型存储日志所使用的条件,如:
daemon.* -/var/log/daemon.log
定义了daemon所产生的日志的保存位置,其中daemon为日志类型,“*”代表将所有级别的日志都放到该文件。格式为:
facility。level -日志文件保存的路径,如-/var/log/daemon.log
level包括:
emerg -该系统不可用
alert -需要立即被修改的条件
crit -阻止某些工具或子系统功能实现的错误条件
err -阻止工具或某些子系统部分功能实现的错误条件
warning -预警信息
notice -具有重要性的普通条件
info -提供信息的消息
debug -不包含函数条件或问题的其他信息
none -没有重要级,通常用于排错
* 所有级别,除了none
下面我们在配置文件中定义一个自己设备的日志规则:local4.info -/var/log/
接下来执行命令/etc/init.d/sysklogd restart或/etc/init.d/sysklogd reload使新增的配置生效,下面我们可以测试新增的日志规则了:
1.输入命令 logger -p local4.info " my test log"
2.执行命令 tail /var/log/event_log.log
你可以看到自己写入的日志信息:
注意:syslog.conf中local4.info 代表所有info级别以及以上的日志会记录到这里
ok,到现在我们已经在ubuntu中设置好了我们需要的日志,下面我们用php中的syslog将日志写到ubuntu中的syslog中。
下面直接上php代码:
openlog("Event1.0", LOG_PID | LOG_PERROR, LOG_LOCAL4);
syslog($level, "LOG MESSAGE: " . $errinfo);
closelog();
以上各方法的具体用法请查看PHP的API,具体用法不在这里赘述。
其中openlog的第一个参数,是日志标识,该标识会自动加在日志信息的开始,用来表示是什么系统写入的日志。
由于我们想要将日志写入local4.info,所以第三个参数需使用LOG_LOCAL4,该参数表示写入日志的设备信息。
syslog中$level为日志级别,包括:
LOG_EMERG system is unusable
LOG_ALERT action must be taken immediately
LOG_CRIT critical conditions
LOG_ERR error conditions
LOG_WARNING warning conditions
LOG_NOTICE normal, but significant, condition
LOG_INFO informational message
LOG_DEBUG debug-level message
第二个参数为具体的日志内容。