httpd.conf
Listen 9001
Listen 8000
DocumentRoot "/Users/XXX/XXX/a"
<Directory "/Users/XXX/XXX/a">
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Require all granted
</Directory>
DocumentRoot "/Users/XXX/XXX/b"
<Directory "/Users/XXX/XXX/b">
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Require all granted
</Directory>
httpd-vhosts.conf
<VirtualHost *:8000>
ServerAdmin XXX@gmail.com
DocumentRoot "/Users/XXX/XXX/b"
ServerName localhost:8000
</VirtualHost>
<VirtualHost *:9001>
ServerAdmin XXX@gmail.com
DocumentRoot "/Users/XXX/XXX/a"
ServerName localhost:9001
</VirtualHost>
好怪,我一開始只有 9001 ,訪問 127.0.0.1:9001 沒問題
但是當我加了一個 8000後
我訪問 127.0.0.1:9001 變成是 8000 .... 9001的站不見?
我把 8000 刪掉之後,9001 又變正常。。。
如果是自己的電腦不用這樣設定吧?
去找出hosts(你應該知道這隻檔在那吧!)
然後如下設定:(這是舉例)
127.0.0.1 web1.localhost
127.0.0.1 web2.localhost
127.0.0.1 web3.localhost
以此類推
然後vhosts.conf
<VirtualHost *:8000>
ServerAdmin XXX@gmail.com
DocumentRoot "網站的總根目錄,如果在本機要開放的話"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
ServerAdmin XXX@gmail.com
DocumentRoot "/Users/XXX/XXX/web1"
ServerName web1.localhost
</VirtualHost>
<VirtualHost *:80>
ServerAdmin XXX@gmail.com
DocumentRoot "/Users/XXX/XXX/web2"
ServerName web2.localhost
</VirtualHost>
<VirtualHost *:80>
ServerAdmin XXX@gmail.com
DocumentRoot "/Users/XXX/XXX/web3"
ServerName web3.localhost
</VirtualHost>
這樣子就可以通通走80port但對應不同的資料夾也就是不同的本地端網站了。
另外我是照抄你的,因為不知道你要設ServerAdmin的理由,通常我的設定在本機是不需要這個的。
我覺得,最大的問題是。什麼時候servername可以指定port了?
理論上,你在重啟你的httpd時,因該會有一些警告訊息出來才對。
大多數都會用子域名的方式來做區分不同站。
反正如果是要本機測試的話,改一下host檔案就可以做測試了
如可樂給你的方式這樣就好。