我有2臺服務器在完全獨立的操作系統和配置上。一個正確接受require_once '../file.php';
,另一個不接受,因爲它相對於我猜測的cron加載的位置。在cron中啓用適當的相對路徑
如何修復第二個位置,使其相對路徑來自文件的相對路徑。我需要在3個不同的環境(本地,測試版和現場)中工作,所以我不想在這個頁面上寫一堆代碼,如果可能的話我更喜歡配置調整。
我有2臺服務器在完全獨立的操作系統和配置上。一個正確接受require_once '../file.php';
,另一個不接受,因爲它相對於我猜測的cron加載的位置。在cron中啓用適當的相對路徑
如何修復第二個位置,使其相對路徑來自文件的相對路徑。我需要在3個不同的環境(本地,測試版和現場)中工作,所以我不想在這個頁面上寫一堆代碼,如果可能的話我更喜歡配置調整。
__FILE__
將指定當前腳本的完整文件路徑。
realpath()
將具有相關組件的路徑轉換爲絕對路徑。
這應該工作:
require_once (realpath(dirname(__FILE__)."/../file.php"));
沙內的工作目錄到正在運行的文件路徑。只需在運行文件中使用
chdir(dirname(__FILE__));
include_once '../your_file_name.php'; //we can use relative path after changing directory
。那麼你不需要在所有頁面中改變每一個相對於絕對路徑的路徑。這對我來說很好。
[相對路徑不能在cron PHP腳本中工作]的可能的重複(http://stackoverflow.com/questions/1969374/relative-path-not-working-in-cron-php-script) – 2014-03-19 06:11:36