被調用時,PHP腳本中途失敗我有一個可以從瀏覽器執行的父PHP腳本。這會通過exec('/full/path/to/php -f /full/path/to/child_script.php args &> debug.log &')
產生子進程,然後向瀏覽器返回響應。子進程使用Plates和mPDF生成一堆PDF文件。當通過瀏覽器通過exec
調用時,子腳本通過創建PDF獲得大約10%-20%的比例,然後神祕地停止,沒有任何輸出,除了我爲了調試目的可能放入的任何echo
語句。使用確切相同的命令從CLI調用時所使用的瀏覽器 從exec()
exec()
通話作品在我的本地計算機上,我們的QA服務器,只是沒有在生產
- 孩子腳本工作
- 安全模式是關閉
- 我
chmod 0777
「編孩子腳本和所有它 display_errors
操作的文件/目錄,log_errors
,track_errors
是在孩子腳本LL上error_reporting = E_ALL | E_STRICT
max_execution_time = 600
exec
不disable_functions
- 稱爲
set_time_limit(0)
我真的很爲難。什麼可能導致這種情況?或者我應該採取什麼進一步措施進行調試?
UPDATE
的問題是不是與調用exec
(或shell_exec
)本身,因爲我可以調用父腳本,然後通過exec
從CLI調用主腳本。只有當我嘗試通過網絡執行時纔會出現此問題。
如果它的打印回聲語句你怎麼知道它已經停止了? – cjds
它停止生成PDF。基本上,它是一個執行250次以上的循環,每次迭代生成一個PDF。我會定期收到前30-70次迭代的回聲,然後一無所獲。 – blcook223
就個人而言,如果我不得不在腳本中使用'exec()',我會確保它無法通過瀏覽器窗口訪問,並在適用的情況下將其作爲cron作業。 –