我正在使用一個LAMP服務器,並將多個站點配置爲Apache中的子域。作爲標準,每個站點/子域位於/ var/www /內的整潔目錄中。我已經告訴Apache,每個站點位於/ etc/apache2/sites-available/config文件中,使用多個VirtualHosts併爲每個站點指定DocumentRoot和ServerName。Apache&PHP:DocumentRoot無法正常工作
當我在寫一篇頁面的JavaScript,我可以引用基於站點根目錄的其他頁面,就像這樣:
include '/includes/something.js';
但我不能做同樣的事情在PHP。如果我想在PHP代碼的文件,我需要鍵入:
include '/var/www/site_name/includes/something.php';
(我仍然可以做相對引用,如../includes/something.php,但在這裏,這是題外話。)我很困惑爲什麼我需要/ var/www /,但到現在爲止只是一個煩惱。一旦我發現需要完整的目錄,我可以對它進行編碼。但是現在我試圖安裝PHPlist,每次保存設置時,我都會重定向到一個像https://phplist.mydomain.org/var/www/phplist/admin/?page=configure這樣的URL--這當然會給我一個「找不到頁面」的錯誤。
它看起來像是我的Apache/PHP設置如何處理網站根目錄。我還沒有挖掘到PHPlist代碼,並不是特別想要。但我認爲,如果我可以修復我的設置,以便我可以在不需要/ var/www /前綴的情況下將文件包含在PHP中,那麼PHPlist也將停止爲我提供超過前綴的URL。
僅供參考,以下是我的大部分Apache虛擬主機的外觀。我想我的具體問題是:1)你看到我告訴你的任何事情,需要糾正? 2)你會看什麼,或者下一步想要弄清楚這個奇怪的東西?
<VirtualHost 95.102.96.250:443>
ServerName phplist.mydomain.org
DocumentRoot /var/www/phplist
ServerAdmin [email protected]
<Directory /var/www/phplist/>
Options +FollowSymLinks
AllowOverride All
order allow,deny
allow from all
</Directory>
</VirtualHost>
希望這只是我的一個基本誤解。我試過RingTFM,但一直沒有弄清楚這裏發生了什麼。提前致謝!