這是我最近遇到的問題 - 在虛擬主機上配置錯誤的apache。這意味着所有依靠$_SERVER['DOCUMENT_ROOT']
的腳本都會中斷。我找到的最簡單的解決方法就是將變量設置在一些共享的全局包含文件中,但不要忘記它。我的問題是,如何以編程方式確定正確的文檔根目錄?如何以編程方式確定PHP中的文檔根目錄?
例如,一臺主機上,設置是這樣的:
$_SERVER['DOCUMENT_ROOT'] == '/htdocs'
真正的文檔根:
test.example.com -> /data/htdocs/example.com/test
www.example.com -> /data/htdocs/example.com/www
而且我想這是一個從www.example.com/blog/
運行的腳本(上路徑/data/htdocs/example.com/www/blog
)以獲得正確的值/data/htdocs/example.com/www
。
另一臺主機上,安裝有一點不同:
$_SERVER['DOCUMENT_ROOT'] == '/srv'
test.example.com -> /home/virtual_web/example.com/public_html/test
www.example.com -> /home/virtual_web/example.com/public_html/www
是否有任何解決這個?或者是唯一的方法不要依靠$_SERVER['DOCUMENT_ROOT']
並修復我在我的網站上運行的所有軟件?解決這個在主機方面似乎沒有選擇,我還沒有遇到一個主機,這是正確配置。我得到的最好的是指向www.example.com的文檔根目錄,該目錄至少位於open_basedir之內 - 他們還使用了另一個命名方案,www.example.com將指向/u2/www/example_com/data/www/
。
我已經安裝了一些腳本是「太聰明」,知道哪個目錄(相對於理論文檔根目錄),他們正在安裝,並追加此文檔根目錄(後,他們從數據庫中得到它)。我仍然需要修改每個目錄的代碼以去除目錄...或者不是? – 2008-12-23 23:01:05