Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> Httpd-2.2.0虛擬主機目錄權限問題

Httpd-2.2.0虛擬主機目錄權限問題

日期:2017/2/8 10:30:47      編輯:關於服務器
因為手裡可用服務器資源有限,只能用apache虛擬機來完成更多的工作任務。當前的apache版本是2.2.4,與以前的版本相比,有很多地方做了改進,最大的一個差別是在主配置文件中以包含文件的方式把虛擬機單獨做成一個文件,當然差別還有很多,這裡只關注虛擬機。

系統 solaris 10 Apache版本 httpd-2.2.0 網絡接口地址 192.168.27.201 Apache的安裝路徑 /usr/local/apache2/ 虛擬機的方式端口 8088

修改主配置文件/usr/local/apache2/conf/httpd.conf。用編輯器(vi等)打開主配置文件httpd.conf,把Include conf/extra/httpd-vhosts.conf這行(大概在395行的位置)前面的注釋取消,使其包含功能生效。再在主配置文件加入虛擬機的監聽“Listen 192.168.27.201:8088”(第一個字母‘L’是大寫的)。修改加入的內容如下所示:

 Listen 192.168.27.201:8088
…………..(省略若干,不用修改的地方)
Include conf/extra/httpd-vhosts.conf  //虛擬機配置單獨用一個文件,
//這種方式是主配置文件變小了,更易於維護。

修改虛擬機配置文件。它的目錄在主配置文件httpd.conf中以包含的方式(Include)指出了路徑是 /usr/local/apache2/conf/extra/httpd-vhosts.conf,如果打算用其他的文件,可以在主配置文件中重新指定。這個虛擬機配置文件是一個模版,給出了2個apache虛擬機的事例,把它們全部注釋掉!注:如果是基於域名的虛擬機機制,NameVirtualHost *.80這行是必須的,因為我這裡是基於端口(確切的說是基於IP地址)的虛擬機制,所以要把它注釋掉。先照著模版加入下面的塊到httpd-vhosts.conf:

< VIRTUALHOST 192.168.27.201:8088>
DocumentRoot "/www/docs"    //虛擬機根文檔目錄
ServerName 192.168.27.201:8088
< /VIRTUALHOST>

然後回到apache的安裝目錄執行命令 bin/apachectl –t檢查主配置文件語法是否正確,無誤後再執行bin/apachectl –S 檢查虛擬機的語法是否正確。接下來在虛擬機的根文檔目錄創建一個測試文檔test.html,啟動apache服務 bin/apachectl start&,用浏覽器訪問http://192.168.27.201,顯示apache的默認頁面,表明主配置文件是正常的;再訪問http://192.168.27.201:8088/test.html.返還代碼 403(禁止訪問),頁面內容為“你無法查看該網頁…”,同樣的問題已經有2個人遭遇過了,他們都一致認為,以前在apache1.3等老版本上就是這樣設置的,應該不會這樣呀!並且語法檢查也通過了,是什麼問題呢?打開主配置文件conf/httpd.conf,發現如下的塊:

< DIRECTORY />
Options FollowSymLinks
AllowOverride None
Order deny,allow     //先拒絕後允許
Deny from all        //拒絕所有的訪問
< /DIRECTORY>

這一個塊就是對目錄進行訪問控制的,而且設置得非常嚴格,因此,我們必須手動加入虛擬機目錄的權限控制塊,才可以讓用戶正常訪問虛擬機的目錄及頁面文件。有兩個地方可以加入虛擬目錄訪問權限控制塊:主配置文件httpd.conf和虛擬機配置文件httpd-vhost.conf,加在那一個地方更合適呢?當然選虛擬機配置文件,最重要的理由是維護起來更方便,可能也涉及安全方面的問題(這個我沒有做個測試)。接下來就把目錄訪問控制塊插入到虛擬機配置文件,其形式如下:

< VIRTUALHOST 192.168.27.201:8088>
DocumentRoot "/www/docs"    
ServerName 192.168.27.201:8088

< DIRECTORY docs? www ?>     //插入開始處
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
< /DIRECTORY>               //插入結束處

< /VIRTUALHOST>

完成文件,檢查語法,重啟apache服務,再用浏覽器訪問虛擬機地址,這下應該正常了。

Copyright © Windows教程網 All Rights Reserved