Apache-2.2

Ubuntu Apache 子域不顯示

  • February 19, 2021

使用 Ubuntu 18.04

我有我的主要網站www.example.com,所有文件都託管在/var/www/html/其中,並且按預期工作。我現在想在子域中創建一個新網站www.blog.example.com

我在我的網路主機上為子域創建了一個新的 dns 記錄,並確認它正在工作,當我 ping 時,www.blog.example.com我看到了正確的伺服器 IP 地址。

我的目錄結構如下所示;

  • /var/www/html(包含www.example.com的所有文件)
  • /var/www/blog.example.com(包含用於測試的單個 index.html 文件)

我有每個域的虛擬主機,內容如下;

/etc/apache2/sites-available/example.com.conf

<VirtualHost *:80>
   ServerName example.com
   DocumentRoot /var/www/html
   <Directory /var/www/html/rascal.ac.uk>
       AllowOverride all
       Order allow,deny
       allow from all
       Require all granted
   </Directory>
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
   Include conf-available/serve-cgi-bin.conf
</VirtualHost>

/etc/apache2/sites-available/blog.example.com.conf

<VirtualHost *:80>
   ServerName blog.example.com
   DocumentRoot /var/www/blog.example.com
   <Directory /var/www/blog.example.com/>
       AllowOverride all
       Order allow,deny
       allow from all
       Require all granted
   </Directory>
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

也有/etc/apache2/sites-available/000-default.conf這樣的;

<VirtualHost *:80>
   DocumentRoot /var/www/html
   <Directory "/var/www/html">
       AllowOverride All
   </Directory>
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

所有站點均已啟用,並且我已多次重新載入/重新啟動 apache。

當我訪問時,www.example.com我看到了我的主要網站,正如預期的那樣。當我訪問www.blog.example.com我的主要網站時,我應該看到我的index.html文件中的內容。

如果我禁用 000-default.conf兩個 url 顯示的內容blog.example.com,問題可能出在這個文件中嗎?

你有

ServerName blog.example.com

但這與www.blog.example.com的名稱不同。所以 Apache 不使用那個 VirtualHost。它改為回退到預設的 VirtualHost。添加

ServerAlias www.blog.example.com

應該修復它。請參閱ServerAlias

當然,這些是範例名稱。如果這不能解決問題,請編輯您的問題以顯示真實的主機名。

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