# 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`目錄下的資源