以前一直在用Apache2.2,最近升級(jí)了apache版本,改用Apache2.4時(shí)感覺(jué)一些基本配置都是差不多,但是配置虛擬主機(jī)時(shí)發(fā)現(xiàn)有些不同,現(xiàn)在再對(duì)比一下整理出來(lái).
一直以來(lái)我都是在htdocs目錄下配置虛擬主機(jī)的,大體上使用的方法如下:
- <VirtualHost *:80>
- DocumentRoot "D:/www/Apache24/htdocs"
- ServerName localhost
- <Directory D:/www/Apache24/htdocs>
- DirectoryIndex index.html index.php
- Order Deny,Allow
- Allow from all
- </Directory>
但是最近我想在目錄htdocs之外配置虛擬主機(jī),還是按照上面的老套路來(lái)配置,結(jié)果出現(xiàn)的403錯(cuò)誤:
<span style="font-size: 16px;"><strong>Forbidden</strong></span>
You don't have permission to access / on this server.
瞬間沒(méi)了頭緒,這是在Apache2.2所沒(méi)有的出現(xiàn)過(guò)的情況啊,然后試著將虛擬主機(jī)的根目錄改成htdocs目錄之下,也就是:
DocumentRoot "D:/www/Apache24/htdocs/test"
發(fā)現(xiàn)網(wǎng)站又能正常運(yùn)行了,反復(fù)試了多次都是同一的結(jié)果,然后我就想到底是哪個(gè)地方出現(xiàn)了問(wèn)題,這個(gè)問(wèn)題困擾了我?guī)滋?百度找了無(wú)數(shù)答案,大部分都是說(shuō)目錄的權(quán)限有錯(cuò)誤,需要修改權(quán)限,或者是selinux設(shè)置的問(wèn)題,可是我運(yùn)行的環(huán)境是windows,所以這些情況也被排除在外;有些說(shuō)是需要設(shè)置Allow from all,也沒(méi)有效果.
通過(guò)查看錯(cuò)誤日志,發(fā)現(xiàn)有那么一行:
AH01630: client denied by server configuration: D:/www/
但是我的Order指令設(shè)置都是正確的,這樣我郁悶了一段時(shí)間,無(wú)意中發(fā)現(xiàn)了一篇文章描述Apache2.4與Apache2.2之間的一些指令的差異,剛好解決了我的問(wèn)題,其中的一些指令已經(jīng)無(wú)效,如:
- Order Deny,Allow
- Deny from all
- Allow from al
- //取而代之的是:
- Deny from all
- //變成
- Require all denied
- Allow from all
- //變成
- Require all granted
于是我將虛擬機(jī)配置為:
- <VirtualHost *:80>
- DocumentRoot "D:/www/Vevb/api"
- ServerName www.survivalescaperooms.com
- <Directory "D:/www/Vevb/api">
- DirectoryIndex index.html index.php
- Require all granted
- </Directory>
- </VirtualHost>
發(fā)現(xiàn)還是提示403錯(cuò)誤,只不過(guò)這次的錯(cuò)誤日志的錯(cuò)誤變成:
AH01276:Cannot serve directory D:/www/Vevb/api/: No matching DirectoryIndex (index.html,index.php) found, and server-generated directory index forbidden by Options directive
這是因?yàn)槔锩娴母夸浝锩鏇](méi)有index.html 或者 index.php,我們可以添加index.html文件或者將設(shè)置改成如下:
- <VirtualHost *:80>
- DocumentRoot "D:/www/Vevb/api"
- ServerName www.survivalescaperooms.com
- <Directory "D:/www/Vevb/api">
- Options FollowSymLinks Indexes
- Require all granted
- </Directory>
- </VirtualHost>
大功告成了,不過(guò)我敢肯定Apache2.4與Apache2.2的區(qū)別不止于此,只是我還沒(méi)有發(fā)現(xiàn)而已,期待進(jìn)一步的發(fā)現(xiàn).
新聞熱點(diǎn)
疑難解答
圖片精選