2010-01-27 45 views
0

我正在按照SaaS原則構建CMS。我有我的網絡服務器(動態專用)啓動並運行。這一切都像預期的那樣,但現在我已經遇到了我的模板系統,後來又遇到了簡單的事情,比如文件處理。從邏輯上講,每個客戶都有自己的主機帳戶。所有的主機帳號都將在同一臺服務器上向大型全局帳戶請求主數據庫。如何從PHP根本包含

以後需要處理的一些事情就像文件操作一樣簡單。通常,每個客戶都會將他/她自己的數據存儲在他/她自己的主機賬戶中。只有頁面數據和其他數據(產品目錄,調查等)將被託管在數據庫中。

但是,在我能夠從中央託管系統上傳文件之前,我需要弄清楚如何到達指定的託管帳戶。我已經將所需的所有數據存儲在會話變量中,當客戶端選擇他/她的網站時(因爲我的系統支持多個站點),這些數據會被填充。

我的服務器上的urlstructure是這樣的: /home/[unix-user-name]/domains/[domain-name]/public_html/paths/to/the/folders/i/set/up/

在URL中的第二部分是hostingaccountname,第四部分是從客戶端DE域名。再次,我有一個會話變量中的這個信息,準備訪問。

我唯一的問題是,當客戶端登錄到系統中,基本URL的一部分媒體鏈接充滿這樣的:

/home/ontdek01/domains/ontdek5.nl/public_html/

我的問題,我怎麼能強制PHP啓動從非常根,在這種情況下尋找文件home

回答

1

我不知道如果我正確地解釋你的問題,但你嘗試過這樣的:

chdir('/home/'); 

這臺PHP的工作目錄到家庭,所以PHP查找相對於該目錄包含的文件。

+0

謝謝羅博!它做了詭計;) – Ben 2010-01-28 14:46:17

1

在php.ini中添加/homeinclude_path將允許include*()require*()根據他們的搜索進行搜索。

+0

感謝您的回答,我通過我的主機提供商發送電子郵件,但我們得出的結論是,從robbo提供的答案導致了一個工作的解決方案。 – Ben 2010-01-28 14:47:04

0

您可以設置類似:

$subDir = '/path/to/some/subdirectory/'; 
$includePath = $_SERVER['DOCUMENT_ROOT'] . $subDir; 

include $includePath . 'myFile.php'; 

這使得它可以在根目錄開始下跌($ _ SERVER [「DOCUMENT_ROOT」]),然後,如果需要進一步深入到一個子目錄($子目錄) 。

+0

感謝您的回答,但這不是一個解決方案,因爲您沒有對document_root進行任何操作,只需在它後面添加一些pathinfo即可。我一直在尋找一種解決方案,從絕對路徑的根源入手。 – Ben 2010-01-28 14:48:18