Apache配置PHP相關配置
- 開啓URL重寫功能
LoadModule rewrite_module modules/mod_rewrite.so
- 加載PHP模塊
LoadModule php5_module e:/server/php5.6/php5apache2_4.dll
- 指定PHP文件交給PHP模塊處理
AddType application/x-httpd-php .php
- 加載PHP.ini文件
PHPIniDir e:/server/php5.3.5
- 指定默認目錄
DocumentRoot "E:/html"
- 默認目錄的權限配置
<Directory "E:/html">
# 首頁不存在不顯示文件列表
Options FollowSymLinks
# 開啓路由重寫
AllowOverride all
# 設置訪問權限
Order allow,deny
Allow from all
</Directory>
- 默認模塊下的首頁
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
- 開啓虛擬目錄
Include conf/extra/httpd-vhosts.conf
- 虛擬目錄配置
<VirtualHost *:80>
ServerAdmin webmaster@localhost
# 目錄位置絕對路徑
DocumentRoot "E:/project"
# 訪問域名
ServerName localhost
# 記錄日誌
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
# 目錄權限
<Directory "E:/project">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
- Options配置說明
Options指令的完整語法爲:Options [+|-]option [[+|-]option]
簡而言之,Options指令後可以附加指定多種服務器特性,特性選項之間以空格分隔。
下面我們來看看Options指令後可以附加的特性選項的具體作用及含義(Apache配置中的內容均不區分大小寫):
1. All
表示除MultiViews之外的所有特性。這也是Options指令的默認設置。
2. None
表示不啓用任何的服務器特性。
- FollowSymLinks
服務器允許在此目錄中使用符號連接。如果該配置選項位於配置段中,將會被忽略。
- Indexes
如果輸入的網址對應服務器上的一個文件目錄,而此目錄中又沒有DirectoryIndex指令(例如:DirectoryIndex index.html index.php), 那麼服務器會返回由mod_autoindex模塊生成的一個格式化後的目錄列表,並列出該目錄下的所有文件(如下圖)。
- AllowOverride 選項
通常利用Apache的rewrite模塊對 URL 進行重寫的時候, rewrite規則會寫在 .htaccess 文件裏。
但要使 apache 能夠正常的讀取.htaccess 文件的內容,就必須對.htaccess 所在目錄進行配置。
從安全性考慮,根目錄的AllowOverride屬性一般都配置成不允許任何Override,即:
< Directory />
AllowOverride None
< /Directory>
在 AllowOverride 設置爲 None 時, .htaccess 文件將被完全忽略。
當此指令設置爲 All 時,所有具有 “.htaccess” 作用域的指令都允許出現在 .htaccess 文件中。
而對於 URL rewrite 來說,至少需要把目錄設置爲:
< Directory /myblogroot/>
AllowOverride FileInfo
< /Directory>
AllowOverride的參數:
- AuthConfig
允許使用與認證授權相關的指令(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。
2. FileInfo
允許使用控制文檔類型的指令(DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, mod_mime中的 Add* 和 Remove* 指令等等)、控制文檔元數據的指令(Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName)、mod_rewrite中的指令(RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule)和mod_actions中的Action指令。
- Indexes
允許使用控制目錄索引的指令(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, 等)。
- Limit
允許使用控制主機訪問的指令(Allow, Deny, Order)。
Options[=Option,…] 允許使用控制指定目錄功能的指令(Options和XBitHack)。可以在等號後面附加一個逗號分隔的(無空格的)Options選項列表,用來控制允許Options指令使用哪些選項。