我想要得到一個include
d PHP腳本寫入文件,並且路徑沒有按我的意願解析。以下是該場景:PHP:指定完整路徑時使用Apache Document Root的include'd腳本的fopen路徑?
正在運行的腳本(調用腳本)可通過Web訪問。爲了節省我打字,說http://example.com/script1.php
和example.com絕對路徑的Apache的文檔根目錄是/home/jweinberger/com.example/
我在/home/jweinberger/scripts/script2.php.
script1.php位於(絕對路徑)另一個腳本包含一個include('/home/jweinberger/script2.php)
,它工作得很好。
script2.php嘗試到fopen('/home/jweinberger/logs/script1.log')
失敗。該錯誤消息說,它正試圖打開:
/home/jweinberger/com.example/logs/script1.log//home/jweinberger/logs/script1.log
顯然,正在預先調用腳本的Apache文檔根目錄,這是我不需要的。
我已經完全指定了所有路徑(根本沒有相對路徑)。 safe_mode
已關閉,doc_root爲空,並且未在php.ini中設置cgi.force_redirect。這是PHP 5.2.17
(由我的網站主機提供 - 我無法控制升級)
而且,如果有問題,script2.php在CLI腳本調用時成功打開正確的文件,而不是在CGI調用時。
任何人都可以提供任何意見或方向我能做些什麼來讓script2.php成功打開正確的文件?
我非常感謝。