今天發現在使用定時器的時候,執行一個shell指令碼,列印紀錄檔正常,然後在系統中不能查到當前Shell指令碼執行的結果。
因為使用的是Web程式,對於Shell呼叫這塊也是新手。以前沒有遇到過這種問題,只能靠猜了。
判斷
1、Shell指令碼問題。
驗證方式:進入系統控制台,然後直接呼叫指令碼,驗證指令碼正常。排除指令碼本身問題。
2、判斷應該問題來自於許可權
驗證方式:進入控制台,檢視執行紀錄檔author.log。果然上面提示賬號許可權有問題。
ls 檢視Shell指令碼資訊,發現Web程式的使用者和Shell指令碼的許可權使用者不是同一個賬號。將其修改為同一個賬號,,再次啟動程式問題解決。
結論:
類似問題基本上都是由以上兩個方面引起的。有異常的時候多看下紀錄檔,基本上的問題都會列印出來的。
以上就是解決PHP中Web程式中shell_exec()執行Shell指令碼不成功問題的詳細內容,更多請關注TW511.COM其它相關文章!