在httpd.conf文件中,有如下配置(注:捨去httpd.conf文件的注釋內容)
Listen 80
ServerName localhost
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "E:"
<Directory "E:/Workshop/Apache">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
(測試之前最好清理一下浏覽器緩存),那麼在浏覽器中輸入http://localhost/Workshop/Apache/ 便可以訪問E:/Workshop/Apache下的所有文件,注意此處的根目錄是E:,但是上面的那個Directory設置了權限所以無法訪問E盤下面的所有內容,如果將上面的那個Directoy更改為:
<Directory />
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
那麼便可以從浏覽器中訪問E盤的所有東西,當在浏覽器中輸入localhost的時候,浏覽器將會顯示E盤根目錄下的所有內容,並且可以訪問。為了安全,我們通常不這麼做,因此經常的設置方法是下面這樣的配置:
Listen 80
ServerName localhost
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "E:/Workshop/Apache"
<Directory "E:/Workshop/Apache">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
通過浏覽器只允許訪問特定目錄,此處也就是E:/Workshop/Apache目錄下的所有內容。當然對於第二個Dir,可以設置E:/Workshop/Apache下不同文件夾的訪問權限。
最後說一下虛擬主機的設置,請按照以下格式設置(放在httpd.conf文件末尾即可):
如下所示,需要首先設置監聽端口,然後是NameVirtualHost指定主機地址以及端口,接下來就是對VirtualHost進行設置了,其中包括SeverName也就是主機名以及文檔根目錄,注意對於本地開發時,將ServerName設置為localhost或者127.0.0.1即可,其中的文檔根目錄與目錄設置一樣即可,或者你也可以在文檔根目錄中為不同的文件夾設置不同的訪問權限。其中的×號代表監聽所有訪問設置端口的虛擬主機。
Listen 81
NameVirtualHost *:81
<VirtualHost *:81>
ServerName 127.0.0.1
DocumentRoot "C:/Users/Administrator/php/webroot1"
<Directory "C:/Users/Administrator/php/webroot1">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
Listen 82
NameVirtualHost ×:82
<VirtualHost *:82>
ServerName 127.0.0.1
DocumentRoot "C:/Users/Administrator/php/webroot2"
<Directory "C:/Users/Administrator/php/webroot2">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>