我一直在努力改進我的dev/live工作流程以獲得1:1奇偶校驗。我希望所有的東西在Dev(我的本地機器)上與在線(Web)上的相同。除了擁有一個不同的配置文件(包含不同的mySQL憑證)和一個不同的.htaccess文件之外,我希望網站的其他部分在我的實時環境中與其在我的開發環境中完全相同。 問題是我無法讓我的包含路徑在兩個環境中都以相同的方式解決。PHP:包含Dev和Live兩種工作方式的路徑
我有我的所有包括在此格式配置的:
包含路徑
$_SERVER["DOCUMENT_ROOT"] . /website1/includes/file.php
的問題是,我活的服務器上,$_SERVER["DOCUMENT_ROOT"]
不含/ WEBSITE1 /一部分,但在我的TEST服務器上,它確實如此。這意味着路徑解決不同的兩個環境:
直播:
/some/root/folder/website1/includes/file.php
開發:
/some/root/folder/website1/website1/includes/file.php
我已經有點被包含的文件複製到解決此工作一個名爲/ website1的子文件夾,用於MAMP開發環境。但是這顯然不理想,因爲它增加了不必要的開銷。每當我編輯其中一個包含的文件時,我必須確保在兩個位置都編輯該文件。
有沒有人有任何建議,使包含路徑相同的兩個環境,沒有重複的文件?我曾嘗試使用dirname(__FILE__)
,但這需要進行很多更改才能解決相對路徑。我嘗試了各種其他解決方案,例如試圖通過.htaccess,httpd.conf或php.ini更改包含路徑,但似乎沒有任何工作。我知道必須有一個簡單的解決方案,但我迷路了。理想情況下,我希望對本地環境進行任何配置更改,以避免篡改現場環境。
非常感謝!
爲什麼不在配置文件中設置$ root_path並在應用程序的任何地方使用它? –
配置文件也通過一個包含進來。 – AardvarkApostrophe
$ some_root_folder其實意味着$ _SERVER [「DOCUMENT_ROOT」]它在兩個環境中不是相同的路徑 – AardvarkApostrophe