我在使用PHP函数shell_exec()
时遇到了问题。
我有一个应用程序,我可以从linux命令行完全运行。该应用程序需要几个小时才能运行,因此我尝试使用shell_exec()
生成一个新实例来更好地管理。但是,当我通过shell_exec()
运行完全相同的命令(在命令行上工作)时,它返回一个空字符串,并且看起来不像任何新进程一样。此外,它几乎立即完成。假设shell_exec()
等待命令完成正确?
我也尝试了exec()
的变体,结果相同。
有谁知道这里会发生什么?
命令中没有符号链接或任何类似的东西:只是应用程序的路径和一些命令行参数。
答案 0 :(得分:0)
答案 1 :(得分:0)
确保正在运行的用户apache(可能是www-data)可以访问这些文件并且它们是可执行的(ls -la
)。一个简单的chmod 777 [filename]
可以解决这个问题。
默认情况下,PHP会在30秒后超时。您可以像这样禁用限制:
<?php
set_time_limit(0);
?>
修改强>