0
這裏是我有在PHP文件中的代碼的一部分:PHP EXEC( '回聲1>〜/ cctv_config/cctvstatus')不工作
function checkSetStatus($checkSet) {
//other if options here
if ($checkSet == '2') {
exec('echo 0 > ~/cctv_config/cctvstatus.log');
sleep(1);
exec('echo "$(date) | setOff" >> weblog.log');
return (int) exec('cat ~/cctv_config/cctvstatus');
}
}
問題是與行:
exec('echo 0 > ~/cctv_config/cctvstatus.log');
當我在Linux命令行觸發命令
echo 0 > ~/cctv_config/cctvstatus.log
,它工作正常。但是,如果它是由php文件中的exec函數間接觸發的,它不會對目標文件進行任何更改。
在apache的錯誤日誌文件有信息來源的是
文件或目錄〜/ cctv_config/cctvstatus.log不能創建
(I已經改變cctvstatus.log的模式777)。類似的信息被記錄爲觸發此行的結果:它會記錄這樣的文件或目錄不存在
exec('cat ~/cctv_config/cctvstatus');
在這種情況下(還有一個問題 - 與貓EXEC我想知道,而中繼功能不應該使用)。
你試過用'file_put_contents'(+'FILE_APPEND'標誌)?這會給你更多關於失敗原因的信息,而不是默默地忽略它。它會給你更少的轉義問題等。另外,'〜'代表當前用戶的主目錄。由於您不是以用於手動運行命令的相同用戶身份運行PHP,因此目錄不會相同(很可能)。我建議使用完整路徑(例如'/ home/user/cctv_config /')。 – Diamondo25
謝謝你。我將能夠在幾個小時內驗證您的建議。之後我會發布更新。 – Michal
你說得對。這是文件路徑的問題。更改〜/ home/myuser /解決問題。 – Michal