apache建立虚拟主机[转载]
?如何使用 Apache 在本地配置出多個(gè)虛擬主機(jī)呢?而且使用不同的“域名”來訪問本地不同的站點(diǎn)呢?
一般情況下,咱們都使用 localhost 來訪問本機(jī)上的服務(wù)器,在我們的 C:/WINDOWS/system32/drivers/etc/hosts 文件中默認(rèn)有一個(gè):
| 127.0.0.1?????? localhost |
當(dāng)我們在瀏覽器地址欄鍵入:
?
| http://localhost |
的時(shí)候,會顯示出服務(wù)器根目錄中的許多文件夾(若你的根目錄不是只有一個(gè)站點(diǎn)的話),就像:
| 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/ |
現(xiàn)在我想通過一個(gè)自定義的“域名”來訪問我的根目錄中的站點(diǎn),譬如:
1,根目錄中有一個(gè) phpMyAdmin/ 的文件夾(倒數(shù)第二個(gè)),它是一個(gè)網(wǎng)頁版的數(shù)據(jù)庫管理系統(tǒng)(肯定不會陌生的吧!),我想通過訪問一個(gè)簡單的:
| http://dbmanager |
來進(jìn)入這個(gè)系統(tǒng)(而不用輸入 localhost,再點(diǎn)擊 phpMyAdmin/ 才進(jìn)入);
2,根目錄中有一個(gè) Zendphpweb20/ 的文件夾(倒數(shù)第三個(gè)),它只是一個(gè)本地應(yīng)用站點(diǎn),我想通過訪問:
| http://phpweb20 |
來進(jìn)入這個(gè)本地站點(diǎn);
現(xiàn)在要干些什么呢?跟我來吧!看下面:
1> 修改系統(tǒng)的 hosts 文件:
打開之前說過的系統(tǒng)的 hosts 文件,來給我們的電腦添加兩個(gè)“假的”DNS 項(xiàng),加入代碼:
| 127.0.0.2?????? dbmanager 127.0.0.3?????? phpweb20 |
這樣,我們的瀏覽器就會將 dbmanager 主機(jī)名解析為 127.0.0.2,將 phpweb20 主機(jī)名解析為 127.0.0.3。
?
2> 修改 Apache 配置文件:
在我的本機(jī)內(nèi) Apache 的主配置文件在:
| D:/usr/local/apache2/conf/httpd.conf |
說是修改 Apache 的配置文件,其實(shí)只是添加了一些內(nèi)容,因?yàn)椴幌胄薷?Apache 的主配置文件,所以我們最好在各個(gè)站點(diǎn)寫好自己的虛擬主機(jī)配置子文件,然后使用 Include 指令將其包含到 Apache 的主配置文件里。
其實(shí)在 Apache 的主配置文件的最下方有虛擬主機(jī)的配置示例,只不過都被注釋掉了:
?
| # 基于名稱的虛擬主機(jī)示例: ?? #<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> |
在配置文件的最下方添加代碼:
| # 包含 dbmanager 虛擬主機(jī)配置文件 Include D:/usr/webroot/phpMyAdmin/httpd.conf ?? # 包含 phpweb20 虛擬主機(jī)配置文件? Include D:/usr/webroot/Zendphpweb20/httpd.conf |
(我的 localhost 的根目錄為 D:/usr/webroot/)
?
?
3> 創(chuàng)建各個(gè)虛擬主機(jī)的子配置文件:
摘自http://blog.csdn.net/huangxiansheng1980/article/details/7205451
?
創(chuàng)建 dbmanager 的配置文件:D:/usr/webroot/phpMyAdmin/httpd.conf
| #dbmanager 虛擬主機(jī)設(shè)置 <VirtualHost127.0.0.2:80> ????ServerName dbmanager ????DocumentRoot D:/usr/webroot/phpMyAdmin ?? ????<DirectoryD:/usr/webroot/phpMyAdmin> ????????AllowOverride All ????????Options All ????</Directory> </VirtualHost> |
創(chuàng)建 phpweb20 的配置文件:D:/usr/webroot/Zendphpweb20/httpd.conf
| #phpweb20 虛擬主機(jī)設(shè)置 <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> |
各個(gè)虛擬主機(jī)的配置就看應(yīng)用站點(diǎn)的不同需要了,DocumentRoot 為其根目錄(php_value 是修改此站點(diǎn)的 PHP 運(yùn)行參數(shù),根據(jù)自己應(yīng)用的需要來寫,這樣就不必修改 PHP 主配置文件)。
?
4> 重啟 Apache 服務(wù):
這個(gè)就不多說了。
完畢!好了,在瀏覽器地址欄輸入分別輸入:
| http://dbmanager http://phpweb20 |
?
轉(zhuǎn)載于:https://blog.51cto.com/johnsz/1132077
總結(jié)
以上是生活随笔為你收集整理的apache建立虚拟主机[转载]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 顶流主播的流量密码 直播流量密码)
- 下一篇: CABasicAnimation fil