設置虛擬主機
第一步:首先修改Apache的配置文件(由於我用的是MacOS自帶的服務器環境,因此配置文件的目錄是:/etc/apache2/http.conf。其他環境例如MAMP,則在 MAMP/conf/apache/ 中。
編輯需要root權限)。
找到這一行,將第二行前面的#號去掉,表示啟用vhosts虛擬主機:
----------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------
第二步:接着就去找這個http-vhosts.conf文件,在文件最后添加如下代碼,添加規則如下:
- DocmentRoot:設置項目的根目錄,如:/var/www/project1/、/Library/Webserver/Documents/project1/等。
- ServerName:設置訪問項目的域名,如:www.project1.com。這樣設置之后,就不需要用“localhost/project1/admin”訪問,而可以用“www.project1.com/admin”訪問本地項目了。
- 另外如果你用的不是80端口號,則需要改一下這里第一行 <VirtualHost *:你的端口號> 。
-------------------------------------------添加的代碼---------------------------------------------------------------

--------------------------------------------------添加的代碼--------------------------------------------------------
第三步:最后一步,設置MacOS的hosts文件(文件目錄是/private/etc/hosts),將域名添加到本機地址中:
----------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------
到這一步就完成了。
記得重啟apache服務器!(apachectl restart)
最后,如果設置后訪問站點時發現如下錯誤:403 Forbidden Forbidden You don't have permission to access / on this server。這主要是目錄訪問權限沒有設置,需要設置對目錄的訪問權。步驟如下:
- 打開 httpd_conf 文件,找到如下語句
<Directory />
AllowOverride All
Required all denied
</Directory>
- 將第一行的 / 改為你之前設置的項目目錄(如:/Library/Webserver/Documents/project1//)
- 將第二行的 Required all denied 改為 Required all granted 即可。
設置多端口
步驟和設置站點差不多:
127.0.0.1 www.project1.com
127.0.0.1 www.project2.com
然后在http-vhosts文件中新增站點信息並把端口號改一下:
<VirtualHost *:80> # ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/Library/Webserver/Documents/project1/" ServerName www.project1.com ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log" CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common </VirtualHost> <VirtualHost *:81> # ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/Library/Webserver/Documents/project2/" ServerName www.roject2p.com ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log" CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common </VirtualHost>
最后改一下http.conf文件:
找到 Linsten 80 這行
在下面添加 Listen 81,即可。
<IfDefine SERVER_APP_HAS_DEFAULT_PORTS> Listen 8080 </IfDefine> <IfDefine !SERVER_APP_HAS_DEFAULT_PORTS> Listen 80 Listen 81 </IfDefine>
