# 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`目录下的资源