# apache配置文件详解
提供了灵活的web服务配置 理解其参数的含义很重要(以源码安装的apache2.2.9为例)
[TOC]
## 1. apache主目录
`ServerRoot "/usr/local/apache2/"`
## 2. 监听端口
`Listen 80`
## 3. 加载动态模块
`LoadModule php5_module modules/libphp5.so`
## 4. apache的进程执行者
~~~
User daemon
Group daemon
~~~
## 5. 服务器域名(可配置可不配置)
`ServerName 192.168.100.146:80`
## 6. 网站根目录
`DocumentRoot "/usr/local/apache2//htdocs"`
## 7. 设置网站根目录的访问权限
~~~
<Directory "/usr/local/apache2//htdocs">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Deny from all # 拒绝所有
Allow from all # 允许所有
</Directory>
# Allow from all 参数允许所有人访问/usr/local/apache2//htdocs 下的资源
# Options Indexes 参数:访问目录时,如果不存在默认首页则展示站点列表 该行建议改成 Options None
# Options FollowSymLinks 参数:是否允许快捷方式(ln -s 软连接)
# Options MultiViews 多视图,访问/index 等同访问 index.php或index.html
~~~
### apache服务器访问权限控制包括:
#### apache 服务权限
关键字 deny from all (**403 forbidden** error!)
关键字 allow from all
#### Linux 系统权限
selinux
iptables
httpd进程执行者对根目录的权限(**403 forbidden** error!)
## 8. 设置目录默认首页
`DirectoryIndex index.html index.php #优先级从左往右依次降低`
## 9. 错误日志
`ErrorLog "logs/error_log"`
## 10. 访问日志
`CustomLog "logs/access_log" common`
## 11. 解析.php的脚本
`AddType application/x-httpd-php .php`
## 12. 控制错误页面的输出
`ErrorDocument 404 /missing.html`
## 13. 包含外部配置文件
`Include etc//extra/httpd-vhosts.conf`
## 14. 虚拟目录
`http://localhost/mnt` mnt目录并不在网站根目录下,目录资源在`/tmp/mnt`目录下 在`/usr/local/apache2/etc/http.conf`文件里增加
~~~
Alias /mnt "/mnt/www" # 虚拟目录(目录别名)
<Directory "/mnt/www">
Options none
AllowOverride None
Order allow,deny
Deny from all # 拒绝所有
Allow from all # 允许所有
</Directory>
~~~
`http://localhost/mnt` 重启apache后访问的资源便是 `/mnt/www`目录下的资源