原文:http://www.cnblogs.com/catprayer/archive/2010/10/30/1865308.html
如何使用 Apache 在本地配置出多個虛擬機器主機呢?而且使用不同的“網域名稱”來訪問本地不同的網站呢?
一般情況下,咱們都使用 localhost 來訪問本機上的伺服器,在我們的 C:/WINDOWS/system32/drivers/etc/hosts 檔案中預設有一個:
127.0.0.1 localhost
當我們在瀏覽器地址欄鍵入:
http://localhost
的時候,會顯示出伺服器根目錄中的許多檔案夾(若你的根目錄不是只有一個網站的話),就像:
Index of / * BAK/ * B_Discuz/ * B_Supesite/ * B_UCenter/ * B_Uchome/ * B_Uchome_Bak/ * B_XSpace/ * DiscuZ_X1/ * Javascript/ * NewUch/ * PHP/ * UchUtf8/ * Zend Framework_1.10.8/ * Zendphpweb20/ * mycms/ * phpMyAdmin/ * userAdminManager/
現在我想通過一個自訂的“網域名稱”來訪問我的根目錄中的網站,譬如:
1,根目錄中有一個 phpMyAdmin/ 的檔案夾(倒數第二個),它是一個網頁版的資料庫管理系統(肯定不會陌生的吧!),我想通過訪問一個簡單的:
來進入這個系統(而不用輸入 localhost,再點擊 phpMyAdmin/ 才進入);
2,根目錄中有一個 Zendphpweb20/ 的檔案夾(倒數第三個),它只是一個本地應用網站,我想通過訪問:
來進入這個本地網站;
現在要幹些什麼呢?跟我來吧!看下面:
1> 修改系統的 hosts 檔案:
開啟之前說過的系統的 hosts 檔案,來給我們的電腦添加兩個“假的”DNS 項,加入代碼:
這樣,我們的瀏覽器就會將 dbmanager 主機名稱解析為 127.0.0.2,將 phpweb20 主機名稱解析為 127.0.0.3。
2> 修改 Apache 設定檔:
在我的本機內 Apache 的主設定檔在:
D:/usr/local/apache2/conf/httpd.conf |
說是修改 Apache 的設定檔,其實只是添加了一些內容,因為不想修改 Apache 的主設定檔,所以我們最好在各個網站寫好自己的虛擬機器主機配置子檔案,然後使用 Include 指令將其包含到 Apache 的主設定檔裡。
其實在 Apache 的主設定檔的最下方有虛擬機器主機的配置樣本,只不過都被注釋掉了:
#<VirtualHost127.0.0.2:80> # ServerAdmin admin@system # DocumentRoot D:\usr\webroot\webhosting1 # ServerName 127.0.0.2 # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common#</VirtualHost>#<VirtualHost127.0.0.3:80> # ServerAdmin admin@system # DocumentRoot D:\usr\webroot\webhosting2 # ServerName 127.0.0.3 # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common#</VirtualHost>#<VirtualHost127.0.0.4:80> # ServerAdmin admin@system # DocumentRoot D:\usr\webroot\webhosting3 # ServerName 127.0.0.4 # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common#</VirtualHost>
在設定檔的最下方添加代碼:
Include D:/usr/webroot/phpMyAdmin/httpd.conf |
Include D:/usr/webroot/Zendphpweb20/httpd.conf |
(我的 localhost 的根目錄為 D:/usr/webroot/)
3> 建立各個虛擬機器主機的子設定檔:
建立 dbmanager 的設定檔:D:/usr/webroot/phpMyAdmin/httpd.conf
<VirtualHost127.0.0.2:80> ServerName dbmanager DocumentRoot D:/usr/webroot/phpMyAdmin <DirectoryD:/usr/webroot/phpMyAdmin> AllowOverride All Options All </Directory></VirtualHost>
建立 phpweb20 的設定檔:D:/usr/webroot/Zendphpweb20/httpd.conf
<VirtualHost127.0.0.3:80> ServerName phpweb20 DocumentRoot D:/usr/webroot/Zendphpweb20/htdocs <DirectoryD:/usr/webroot/Zendphpweb20/htdocs> AllowOverride All Options All </Directory> #修改 PHP 配置(可選) php_value include_path .;D:/usr/webroot/Zendphpweb20/include;D:/usr/local/php5/PEAR php_value magic_quotes_gpc off php_value register_globals off</VirtualHost>
各個虛擬機器主機的配置就看應用網站的不同需要了,DocumentRoot 為其根目錄(php_value 是修改此網站的 PHP 運行參數,根據自己應用的需要來寫,這樣就不必修改 PHP 主設定檔)。
4> 重啟 Apache 服務:
這個就不多說了。
完畢!好了,在瀏覽器地址欄輸入分別輸入:
我們的目的達到了!!: - >