有時候你需要一些頂級域名訪問方式來訪問你本地的項目,這時候就需要配置虛擬主機,給你的目錄綁定一個域名,實現多域名綁定訪問。(本地的話可以通過修改 hosts 文件隨便綁定什么域名比如 www.a.com 或者 localdemo)。
現在假定你有兩個目錄,一個存在于 /xampp/htdocs/a,另一個存在于 /xampp/htdocs/b 。
現在你想要在本地測試的時候訪問 www.a.com 對應的目錄是 /xampp/htdocs/a ,訪問 www.b.com 對應的目錄是 /xampp/htdocs/b 。懂得 Apache配置的其實就可以繞開了,因為 XAMPP 無非就是集成了 Apache 之類的環境集成包,實現多域名也就是通過配置 Apache 實現的。
以下配置針對的是XAMPP Windows 1.7.4 版本,不過對于XAMPP的其他版本也同樣適用。
下載地址:http://www.jfrwli.cn/soft/27.html
1、首先修改C:/WINDOWS\system32\drivers\etc目錄下的 hosts 文件,用Notepad++ 或記事本打開,加入:
127.0.0.1 www.a.com
127.0.0.1 www.b.com
2、打開xampp\apache\conf\httpd.conf文件,搜索 “Include conf/extra/httpd-vhosts.conf”,確保前面沒有 # 注釋符,也就是確保引入了 vhosts 虛擬主機配置文件。
開啟了httpd-vhosts.conf,默認的httpd.conf默認配置失效(確保 httpd-vhosts.conf 文件里也開啟了虛擬主機配置,見第3條),訪問此IP的域名將全部指向 vhosts.conf 中的第一個虛擬主機。(注意是第一個,詳見第4)
3、在虛擬主機設置文件xampp\apache\conf\extra\httpd-vhosts.conf里設置:
取消 NameVirtualHost *:80 前面的 ##,這樣就啟用了 vhosts.conf ,默認的httpd.conf默認配置失效。虛擬主機配置將只在httpd-vhosts.conf 里設置。
<VirtualHost *:80>
DocumentRoot /xampp/htdocs/a
ServerName www.a.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /xampp/htdocs/b
ServerName www.b.com
</VirtualHost>
4、 設置完了第3條之后,你會發現訪問 localhost直接指向到設置的 a 那個路徑去了,這個問題在第2條有講。也就是開啟了 vhosts后,默認的 httpd 的配置就會失效了,默認的訪問就指向到 vhosts 里的第一條設置去了。這時候你要把 localhost的目錄配置給設置回來。
DocumentRoot /xampp/htdocs/
ServerName localhost
</VirtualHost>
至此,XAMPP 的虛擬主機設置完畢,現在訪問 localhost 還是原來的 XAMPP 的幫助指南,訪問 www.a.com 將指向到綁定的 a 目錄,訪問 www.b.com 將指向到綁定的 b 目錄。
實例參考:
XAMPP添加VirtualHost以支持多個站點
在c:\xampp\apache\conf\extra\httpd-vhosts.conf文件中添加如下內容:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "E:/php/wordpress"
ServerName wordpress
</VirtualHost>
//下面這一段必須加入,不然無法訪問
<Directory "E:/php/wordpress">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
不過可以將上面兩段合在一起
DocumentRoot "E:/php/wordpress"
ServerName wordpress
<Directory "E:/php/wordpress">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
(這一段將localhost默認訪問設置回來,將必須放在后面)
<VirtualHost *:80>
DocumentRoot "D:/xampp/htdocs/"
ServerName localhost
</VirtualHost>
在C:\WINDOWS\system32\drivers\etc目錄下的hosts文件中添加如下內容:
127.0.0.1 wordpress