
我正在嘗試設定 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 伺服器仍將根據其載入的最後一個穩定設定檔啟動並運行。
風險在於,如果您強制執行restart
a且設定檔中存在拼字錯誤,Apache 將死亡,因為restart
強制執行完整的服務stop
後跟start
.如果start
出現阻塞,伺服器就會當機,直到設定錯誤/問題被清除為止。
答案2
檢查您的httpd.conf
文件,它應該包含類似Include conf/*.conf
.檢查它是否是通配符或固定文件(如000-default.conf
)。
另外,檢查您的新 conf 檔案是否與通配符模式匹配,並且是否儲存在與 .conf 檔案相同的資料夾中000-default.conf
。
最後,有一些 apache 發行版,它們有可用的和活動的 conf 文件,因此在某些情況下需要軟連結才能使其工作