【Apache】添加多站點(設置虛擬主機)


設置虛擬主機

第一步:首先修改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>

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM