我遇到了PHP shell_exec()的问题。
背景: 我已经使用 shell_exec()通过网络浏览器访问嵌入式Linux目标(即Raspberry Pi),使用HTML JavaScript(AJAX)和PHP好吧(因为我知道围绕这个的安全问题。但不适用于这样做)。目前我正在使用 PHP v 5.6.31 和 Apache2 v 2.4.27 ,这似乎很稳定。
问题
在长期使用后,我注意到 shell_exec()变得无响应?以下示例记录在/var/apache2/logs/error_log
... PHP警告:shell_exec():无法执行'/ sbin / ifconfig ...。
Web服务器仍然正在工作并向浏览器提供页面。我可以通过终端窗口(SSH /串行)执行ifconfig。在重新启动Apache2服务之前,不会还原Shell_exec()功能。我已经更新了Apache2和PHP。但这还没有解决问题。
我已经读过这篇文章并怀疑资源可能是问题,即垃圾收集。我尝试在php.ini
(session.gc_probability, session.gc_divisor)
中更新以下值,但没有运气。
您对此事的建议/经验将不胜感激:)
提前感谢你。
答案 0 :(得分:0)
您是否尝试更改脚本权限以允许apache / PHP应用程序访问它?
答案 1 :(得分:0)
shell_exec()将在继续之前等待它执行的脚本完成运行。 所以无论你执行的是什么问题。