apache配置虛擬主機及虛擬目錄
瞭解一下根目錄和虛擬目錄的關係:
安裝過apache之後開啟httpd.conf檔案會發現DocumentRoot預設設定的應該是apache安裝目錄中的htdocs資料夾。然後你的網頁就可以放大這個htdocs資料夾中測試,例你在裡面放了一個1.php,可以輸入http://127.0.0.1/1.php進行測試。這個DocumentRoot後面的路徑就是apache的根目錄。有時候我們不想將自己的網站放到這裡,例如我想要放到F:/MyPHP中來執行,那麼就可以修改DocumentRoot為F:/MyPHP,然後將那個1.php放入F:/MyPHP資料夾,同樣使用http://127.0.0.1/1.php可以正常訪問。
虛擬目錄是什麼?顧名思義只是一個虛擬的目錄,和真實目錄是有差別的。先來看看使用真實目錄訪問,我們在剛才的F:/MyPHP中建立一個資料夾Test,然後在裡面放入2.php,這個時候就可以通過http://127.0.0.1/Test/2.php訪問。但是有些時候你可能建立的資料夾和想要輸入的訪問地址有一個對映關係,而不是直接輸入Test資料夾名,這樣做的原因有很多其中就有一個是安全問題,因為那樣別人就會知道你的根目錄的資料夾。具體點,你在Test資料夾中放置了2.php,但是想要通過http://127.0.0.1/cmj/2.php訪問2.php而不是通過http://127.0.0.1/Test/2.php來訪問怎麼辦呢?這個時候我們就需要虛擬目錄了,很明顯沒有cmj這個資料夾,但是又能夠像訪問一個正式的目錄一樣來訪問,就需要一種對映關係。怎麼做呢?在httpd.conf中新增:
Alias /cmj "F:/MyPHP/Test/"
<Directory "F:/MyPHP/Test">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
解釋一下什麼意思,最主要是前面一個句Alias /cmj "F:/MyPHP/Test/",它的意思就是我通過在更目錄訪問所用ip後新增/cmj可以訪問F:/MyPHP/Test/中的東西。後面的主要是設定許可權問題,這裡不再贅餘。
簡單的說,開啟httpd.conf 在最後加入如下內容: <VirtualHost 127.0.0.2:80>DocumentRoot d:/AppServ/www2
ServerName 127.0.0.2:80
< /VirtualHost>
<Directory "d:/AppServ/www2">
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Order Allow,Deny
Allow from all
</Directory> "d:/AppServ/www2" 為你的站點存放目錄:重啟apache2以後,你的虛擬主機就配置好了,以後就可以通過127.0.0.2,和127.0.0.3進入不同的站點了。 下面為詳細說明分析: 在我們安裝APACHE的時候一般預設的apache的配置是隻有一個網站,這樣切換起來很不方便。其實這個問題很好解決,就是把本機的apache配置成為虛擬伺服器。但是,網上大多數教程的是教用 apache如何配置基於域名的虛擬主機的,而在本機除錯網站的時候,一般都是用本地ip(127.0.0.1 或 localhost)直接訪問,沒有用到域名。所以得把apache配置成為基於ip地址的虛擬主機。 首先,我們都知道,所有以127打頭的ip地址都應該指向本機,並不只有127.0.0.1,這點大家可以試試。
這樣一來,也就是說本機有足夠多的ip地址供你來開設虛擬主機了。 廢話少說,進入正式的配置工作,下面是apache的httpd.conf裡相關配置部分( httpd.conf 位於 Apache2.2\conf ):
1、Listen部分,必須直接指定埠,不指定ip地址,配置應寫為:
Listen 80
2、不用像基於域名的虛擬主機那樣寫“NameVirtualHost”。 3、虛擬主機配置段:在httpd.conf 最後加上
<VirtualHost 127.0.0.2:80>
DocumentRoot d:/AppServ/www2
ServerName 127.0.0.2:80
< /VirtualHost> <VirtualHost 127.0.0.3:80>
DocumentRoot d:/AppServ/www3
ServerName 127.0.0.3:80
</V irtualHost>... 4、然後相應的配置好各個目錄屬性,下面是一個目錄屬性的典型配置:
<Directory "d:/AppServ/www2">
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Order Allow,Deny
Allow from all
</Directory> <Directory "d:/AppServ/www3">
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Order Allow,Deny
Allow from all
</Directory> 重啟apache2以後,你的虛擬主機就配置好了,以後就可以通過127.0.0.1和127.0.0.2,127.0.0.3進入不同的站點了