XAMPP 虛擬主機配置,實現多域名訪問本地項目

XAMPP 虛擬主機配置,實現多域名訪問本地項目
之前在 Mac 下一直使用 MAMP 搭建本地 php 環境,因為其強大的組合配置以及方便的 UI 操作。因為公司的電腦是 Windows 的,有時候需要搭建 php 環境來調試一些小東西方便自己工作,因為只是小應用,所以自己搭建本地的 WAMP 環境就沒有必要了,網上的 WAMP 環境集成包還是很多的,什麼 PHPNow 啊,WampServer 啊,PHPStudy 啊,AppServ 啊,EasyPHP 啊之類的我都沒用過,以及我之前一直在使用的 UniServer,琳琅滿目啊,看得我眼花繚亂。之所以後來不用 UniServer 的原因其實我也不知道, UniServer 很強大,值得推薦一下,但是後來我又轉用了 XAMPP ,因為它也很強大,並且文件包達 100MB 還多,當然你可以下載 Lite 版本,但是文件大小都比 UniServer 大出好幾倍,可能就是因為它的大,後來我才轉用了 XAMPP。

當然以上全是一些廢話,下面才是正題。
有時候你需要一些頂級域名訪問方式來訪問你本地的項目文件而不是目錄方式訪問,這時候就需要配置虛擬主機,給你的目錄綁定一個域名(本地的話可以通過修改 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 的版本和我的不一致造成的。你可以在下面評論告知我,我會給你一一解答。以下配置針對的是 XAMPP Windows 1.7.1 版本。

1、首先修改C盤WINDOWS\system32\drivers\etc目錄下的 hosts 文件,用記事本打開,加入:
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 中的第一個虛擬主機。

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 的目錄配置給設置回來。
<VirtualHost *:80>
DocumentRoot /xampp/htdocs/
ServerName localhost
</VirtualHost>

至此,XAMPP 的虛擬主機設置完畢,現在 訪問 localhost 還是原來的 XAMPP 的幫助指南,訪問 www.a.com 將指向到綁定的 a 目錄,訪問 www.b.com 將指向到綁定的 b 目錄。

30 Responses to XAMPP 虛擬主機配置,實現多域名訪問本地項目

  1. NetPuter says:

    沙發一下,呃,等明兒鮮果更新再仔細看。
    話說 PHPnow 自帶的設置里就有 vhosts 噠……

  2. 豬小豬 says:

    感覺phpnow還行,很小巧。

  3. Leeiio says:

    @NetPuter @豬小豬
    看著好像是挺不錯的樣子,特別是配置這一塊很便捷,但感覺是有精簡了東西?

  4. Showfom says:

    以前在XP下一直用phpnow,不知道我的vista什麼原因,Apache一直安裝不上,索性就放棄本地環境了,大不了裝個IIS去

  5. 小Bee says:

    標題是自動生成的?…

  6. XAMPP很強大,不過感覺Appserv蠻簡潔的

  7. Epile says:

    @Showfom
    phpnow確實在vista下無法啟動~好像許可權問題~
    AppServ 就可以~

  8. Showfom says:

    @Epile
    Appserv什麼都試過,Apache 服務就是裝不上,換了埠也不行 日。

  9. Epile says:

    @Showfom
    Appserv管理器要右鍵,以管理員身份運行~

  10. Showfom says:

    @Epile
    你沒明白我的意思哦,我肯定右鍵 管理員身份運行的,就是Apache服務死活裝不上,裝了N多次,最後只能放棄

  11. Epile says:

    @Showfom
    這麼奇怪~我在vista下一直能夠順利安裝~會不會是殺毒軟體或其他什麼滴衝突?

  12. 麥子 says:

    xampp太強大了……
    新手推薦ApmServ就夠用了

  13. 仁心博客 says:

    技術貼,收藏先

  14. aunsen says:

    一直用XAMPP,感覺很好!

  15. Leeiio says:

    @aunsen
    其實就是文件大了點~

  16. 小樓一夜聽春雨 says:

    豬小豬 :感覺phpnow還行,很小巧。

    🙄 😳 😮 :mrgreen: 😆 💡 👿 👿 😎

  17. xyes says:

    本地訪問2個域名,學習。
    我的Linux伺服器,Xampp裝好,啟動。訪問不了IP。(putty ,或SSHsecure安裝)
    想求教,不知能不能援手?

  18. Leeiio says:

    @xyes
    不是很清楚你的問題?
    不過我還是推薦使用google來解決你的問題是最快速的哈

  19. xyes says:

    收到的郵件亂碼?你這兒的問題?

  20. k999 says:

    1.7.3 用了這個方法不行啊

  21. kun says:

    糾錯,打開httpd.conf 後應該查找
    Include “conf/extra/httpd-vhosts.conf”

  22. kun says:

    @Leeiio 文中雙引號打錯地方了,像文中那樣查找就找不到結果

  23. Pingback: 實現XAMPP多域名訪問子目錄 | 木木木木木

  24. says:

    按照你的方法
    出現 Access forbidden!
    403 Not Found
    我的DocumentRoot 指定 /home/username/Video
    Video 位 777
    和解???望解答~~~~~~

  25. Adg says:

    你好,在修改apacheconfextrahttpd-vhosts.conf這一步增加子域名的時候,如果需要www.abc.com指向到本地目錄的其他埠呢?例如需要www.abc.com指向到127.0.0.1:8080?

Leave a Reply

Your email address will not be published. Required fields are marked *