1. 程式人生 > >Apache為本地主機配置多個網站根目錄詳解

Apache為本地主機配置多個網站根目錄詳解

pan href apach plain local view all denied one

Author:KillerLegend

Date:2014.5.27

From:http://blog.csdn.net/killerlegend/article/details/27195445

------------------------------------------------------------------分割線-----------------------------------------------------------------------------

在httpd.conf文件中,有如下配置(註:舍去httpd.conf文件的註釋內容)

[html] view plain copy
print?
  1. Listen 80
  2. ServerName localhost
  3. <Directory />
  4. AllowOverride none
  5. Require all denied
  6. </Directory>
  7. DocumentRoot "E:"
  8. <Directory "E:/Workshop/Apache">
  9. Options Indexes FollowSymLinks
  10. AllowOverride None
  11. Require all granted
  12. </Directory>



(測試之前最好清理一下瀏覽器緩存),那麽在瀏覽器中輸入http://localhost/Workshop/Apache/ 便可以訪問E:/Workshop/Apache下的所有文件,註意此處的根目錄是E:,但是上面的那個Directory設置了權限所以無法訪問E盤下面的所有內容,如果將上面的那個Directoy更改為:


[html] view plain copy print?
  1. <Directory />
  2. Options Indexes FollowSymLinks
  3. AllowOverride None
  4. Require all granted
  5. </Directory>



那麽便可以從瀏覽器中訪問E盤的所有東西,當在瀏覽器中輸入localhost的時候,瀏覽器將會顯示E盤根目錄下的所有內容,並且可以訪問。為了安全,我們通常不這麽做,因此經常的設置方法是下面這樣的配置:


[html] view plain copy print?
  1. Listen 80
  2. ServerName localhost
  3. <Directory />
  4. AllowOverride none
  5. Require all denied
  6. </Directory>
  7. DocumentRoot "E:/Workshop/Apache"
  8. <Directory "E:/Workshop/Apache">
  9. Options Indexes FollowSymLinks
  10. AllowOverride None
  11. Require all granted
  12. </Directory>



通過瀏覽器只允許訪問特定目錄,此處也就是E:/Workshop/Apache目錄下的所有內容。當然對於第二個Dir,可以設置E:/Workshop/Apache下不同文件夾的訪問權限。


最後說一下虛擬主機的設置,請按照以下格式設置(放在httpd.conf文件末尾即可):


如下所示,需要首先設置監聽端口,然後是NameVirtualHost指定主機地址以及端口,接下來就是對VirtualHost進行設置了,其中包括SeverName也就是主機名以及文檔根目錄,註意對於本地開發時,將ServerName設置為localhost或者127.0.0.1即可,其中的文檔根目錄與目錄設置一樣即可,或者你也可以在文檔根目錄中為不同的文件夾設置不同的訪問權限。其中的×號代表監聽所有訪問設置端口的虛擬主機。

[html] view plain copy print?
  1. Listen 81
  2. NameVirtualHost *:81
  3. <VirtualHost *:81>
  4. ServerName 127.0.0.1
  5. DocumentRoot "C:/Users/Administrator/php/webroot1"
  6. <Directory "C:/Users/Administrator/php/webroot1">
  7. Options Indexes FollowSymLinks
  8. AllowOverride None
  9. Require all granted
  10. </Directory>
  11. </VirtualHost>
  12. Listen 82
  13. NameVirtualHost ×:82
  14. <VirtualHost *:82>
  15. ServerName 127.0.0.1
  16. DocumentRoot "C:/Users/Administrator/php/webroot2"
  17. <Directory "C:/Users/Administrator/php/webroot2">
  18. Options Indexes FollowSymLinks
  19. AllowOverride None
  20. Require all granted
  21. </Directory>
  22. </VirtualHost>




這樣設置完畢後,重新啟動Apache,然後就可以在地址欄中輸入localhost:81直接訪問webroot1路徑,localhost:82訪問webroot2路徑。

Apache為本地主機配置多個網站根目錄詳解