【Apache运维基础(2)】主配置文件说明

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.以上配置都应该在扩展配置里面覆盖更改或增加;