Virtualhost

無法訪問 localhost 上的 Apache 2 虛擬主機

  • August 7, 2015

我最初將我的網路根設置/etc/apache2/sites-available/000-default.conf為指向/home/me/www. 由於新項目的要求,我需要能夠將其設置/home/me/www/vendor/www為自己的虛擬主機,因為請求中的任何本地目錄localhost/blah/blah/blah目前都會導致它失敗(該站點非常可怕,程式碼方面,這就是為什麼我’已經簽約工作)。

我有以下配置文件/etc/apache2/sites-available-

project2.com.conf:

<VirtualHost *:80>
   ServerAdmin webmaster@localhost
   ServerName project2
   ServerAlias localcopy
   ServerRoot /home/me/www/vendor/www/
   DocumentRoot /home/me/www/vendor/www/
   <Directory /home/me/www/vendor/www>
       Header set Access-Control-Allow-Origin "*" 
           Options Indexes FollowSymLinks MultiViews
           AllowOverride All
       Require all granted
   </Directory>

   # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
   # error, crit, alert, emerg.
   # It is also possible to configure the loglevel for particular
   # modules, e.g.

   #LogLevel info ssl:warn

   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

我的/etc/hosts文件中還有以下條目:

127.0.0.1   localhost
127.0.1.1   Shevat
127.0.1.2   project2.com

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

但是,當我嘗試project2.com通過瀏覽器訪問時,它會顯示/home/me/www目錄的內容,因為就像我上面所說的那樣,我將其設置為我在/etc/apache2/sites-available/000-default.conf.

有沒有辦法在這種情況下覆蓋全域 Web 根/虛擬主機設置,以便正確訪問 project2.com?

設置 ServerName 參數時必須指定完整的主機名:

ServerName project2.com

由於您離開了“.com”,因此 apache 不知道將您發送到那裡。

引用自:https://serverfault.com/questions/711679