ServerTokens OS
系统信息, 在访问出错时出现; 把 OS 改为 Minor, 就不显示系统信息
ServerSignature On
把 On 改为 Off 就连普通的系统都给隐藏起来; 改为 Email 就会显示管理员的邮箱 ( 邮箱需要另外配置 ServerAdmin
ServerAdmin root@localhost
管理员邮箱
ServerName localhost
服务器的主机名, 一般是用虚拟机来设置, 通常这个值是自动指定的,推荐显式的指定它以防止启动时出错
UseCanonicalName Off
设置为 "On",Apache 会使用 ServerName 指令的值
设置为 "Off" 时,Apache 会使用用户端提供的主机名和端口号。如果有虚拟主机,必须设置为 Off
ServerRoot “/etc/httpd”
配置项的根目录,类似 html 里面的 base; 默认到这个路径里面找;
PidFile run/httpd.pid
进程 PID, 位置在 /etc/httpd/run/httpd.pid, 主进程决定着子进程
Timeout 60
若 60 秒后没有收到或送出任何数据就切断该连接
KeepAlive Off
是否开启持久化链接, 访问网站时要对网站的很多资源, 如 css,js,image 等等创建不同的链接; 事实上我们可以建立一个持久化链接来应对多个请求;
MaxKeepAliveRequests 100
一个持久化链接最多能应对多少个请求
KeepAliveTimeout 15
15 秒不链接就断开
Listen 80
监听端口, 默认是 80, 一般不同改变;
如果要改变, 注意以下几点:
1. 如果修改为 192.168.1.22:8080, 表示只能通过 192.168.1.22:8080 访问
2. 如果这里要更改为其他端口比如 88 的话, 下面的 ServerName localhost:88 也得更改 (如果是注释掉的, 要取消注释)
3. 如果要监听多个端口, 就多写几个 Listen
Include conf.d/*.conf
扩展配置文件 /etc/httpd/conf.d/
我们一般在配置文件尾部再加上一句 Include conf/vhosts/*.conf, 把其他虚拟主机的配置分离开
User apache
Apache 子进程所有者
Group apache
Apache 子进程所属组
DirectoryIndex index.html index.html.var
默认主文件,
DocumentRoot “/var/www/html”
网站数据根目录。
ErrorDocument 404 /404.html
创建 404 文件 echo ":) File Not Found!" >/var/www/html/404.html
404 可以通过 PHP 程序来处理 (在框架中), 可以通过 rewrite 来处理, 但是最理想的模式是让 Apache 来处理
Directory
<Directory />
Options Indexes FollowSymLinks
AllowOverride None
</Directory>
Directory /
定位目录 /(也就是 Apache 网站根目录)
Indexes
如果访问的文件不存在,显示目录文件列表;要禁止的话前面加上一个 -(-indexes)FollowSymLinks
在目录下创建 a.html 软链接,ln -s /ab/index.html /var/www/html/a.html
Options Indexes FollowSymLinks 时软链接可用, 可以直接在根目录下访问这个软连接
Options Indexes –FollowSymLinks 软链接不可用
AllowOverride
是否允许目录配置文件.htaccess 有效 ALL 有效,None 无效
Order allow,deny
Allow from all
deny from 192.168.1.106
↑↑ 先匹配 allow 允许,后匹配 deny 禁止,虽然 192.168.1.106 满足 Allow,但 deny 是在 allow 后匹配的,所以 192.168.1.106 不允许访问
Order deny,allow
deny from all
allow from 192.168.1.106
↑↑ 只允许 192.168.1.106 访问
IfModule
如果存在模块 mod_userdir.c
<IfModule mod_userdir.c>
UserDir disabled #句首加上 #号, 就表示开启家目录
#UserDir public_html #设置家目录的文件夹, 在此文件夹里面的文件可以访问得到, 前提是有读写权限
</IfModule>
<Directory /home/*/public_html>
.* #跟上面配合, 设置可访问家目录的权限
</Directory>
其他说明
1.Apache 对文件的操作就会用系统给的一个临时账号 Apache 作为第三方 other 来运行, 所以要注意 ugo 的 o 的权限设置;
2.Apache 的配置规则是 后出现, 先应用 后面的出现的配置会覆盖前面的。
3. 以上配置都应该在扩展配置里面覆盖更改或增加;