我想配置我的apache不同。現在,如果缺少一個DocumentRoot,則所有服務器都無法啓動。這是煩人的..Apache忽略丟失DocumentRoot
有沒有任何選擇,如何忽略這個錯誤?
在Ubuntu...
謝謝
我想配置我的apache不同。現在,如果缺少一個DocumentRoot,則所有服務器都無法啓動。這是煩人的..Apache忽略丟失DocumentRoot
有沒有任何選擇,如何忽略這個錯誤?
在Ubuntu...
謝謝
根據你的DocumentRoot指令與虛擬主機synonomously使用的假設,你可以分開VirtualHosts配置成獨立的conf文件,逐一將這些納入其文檔根目錄,然後在通用的全服務器配置文件中將其包含在目錄範圍內。請參閱下面的例子:
在下面的目錄中創建一個CONF:
/etc/apache/sites-enabled/sites.conf
添加以下
Include /data/www/sites/
這將包括在上述目錄中的所有的conf文件和任何子目錄
對於具有以下DocumentRoot的主機
/data/www/sites/website-one
創建一個虛擬主機的conf文件,並將其放置在上面的目錄,例如:
/data/www/sites/website-one/website-one.conf
和你的conf文件將包含所有關於虛擬主機的信息,包括DocumentRoot的如
<VirtualHost *:80>
DocumentRoot /data/www/sites/website-one
ServerName www.website-one.com
# Other directives here
</VirtualHost>
如果DocumentRoot的不存在,則conf文件中沒有加載和DocumentRoot指令從未被執行。出於安全原因,請小心您的conf文件不能被解除引用。這應該可以在服務器級別禁用,但應該注意。最後,上述模式意味着/data/www/sites
目錄和子目錄中的任何不良conf文件都將導致服務器無法啓動。
要添加到William的答案,已經有一個可以使用的目錄:/ etc/apache2/sites-available /。約定是爲您需要的每個站點創建一個文件。如果您有一個名爲foo.example.com的站點,那麼您將在/ etc/apache2/sites-available /中創建一個名爲foo.example.com的文件,然後在該文件中放入該站點的VirtualHost配置。要啓用該站點(一次性),您將使用命令a2ensite foo.example.com,然後重新啓動apache。