Apache 不載入虛擬主機檔案

Apache 不載入虛擬主機檔案

我正在嘗試設定 Apache2 伺服器,但無法讓它載入我的虛擬主機。或者更準確地說,只要我將它們寫入 ,它就可以正常工作000-default.conf,但是每當我嘗試使用單獨的文件時,它似乎完全忽略它。

為什麼這不起作用?我該如何讓它發揮作用?

答案1

通常,如果要設定單獨的虛擬主機配置,您可以將它們放在此目錄中:

/etc/apache2/sites-available/

因此,如果您有一個名為www.example.com設定檔名的虛擬主機,則可以www.example.com.conf這樣命名:

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

然後,您可以在文字編輯器中開啟該文件,如下所示;我使用nano作為示例,但請隨意使用您喜歡的任何文字編輯器:

sudo nano /etc/apache2/sites-available/www.example.com.conf

然後將類似的內容放入www.example.com.conf

<VirtualHost *:80>
  ServerAdmin [email protected]
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/example.com/
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

關閉並保存該文件,然後a2ensite像這樣使用讓系統設置從sites-available到 的符號鏈接sites-enabled,如下所示:

sudo a2ensite www.example.com.conf

或者,如果您願意,您可以手動ln -s設定符號鏈接,如下所示:

ln -s /etc/apache2/sites-available/www.example.com.conf /etc/apache2/sites-enabled/www.example.com.conf

完成後,只需像這樣重新載入 Apache:

sudo service apache2 reload

如果由於某種原因reload不起作用,只需強制重新啟動,如下所示:

sudo service apache2 restart

reload使用before的好處restart是,如果設定檔中有拼字錯誤,Apache會報告錯誤但不會載入設定檔。這意味著您的 Apache Web 伺服器仍將根據其載入的最後一個穩定設定檔啟動並運行。

風險在於,如果您強制執行restarta且設定檔中存在拼字錯誤,Apache 將死亡,因為restart強制執行完整的服務stop後跟start.如果start出現阻塞,伺服器就會當機,直到設定錯誤/問題被清除為止。

答案2

檢查您的httpd.conf文件,它應該包含類似Include conf/*.conf.檢查它是否是通配符或固定文件(如000-default.conf)。

另外,檢查您的新 conf 檔案是否與通配符模式匹配,並且是否儲存在與 .conf 檔案相同的資料夾中000-default.conf

最後,有一些 apache 發行版,它們有可用的和活動的 conf 文件,因此在某些情況下需要軟連結才能使其工作

相關內容