我尝试并未能理解为什么我的命令行程序在使用 PHP exec() 函数调用的 Apache 环境中不起作用。这是场景:
在 CentOS 32 位上安装 Apache 2.x 和 PHP 5.3.3
硬编码一个名为 myScript.php 的 php 文件,其中包含对 exec() 的简单调用,例如:
exec("./imageManipuator testImage.jpg 512 512 >& output.log &");
exec() 函数应该使用给定的参数调用我的程序来处理请求,将输出重定向到文件“output.log”,所有这些都在由“&”定义的后台进程中。
我检查了日志,程序在程序中执行了 1/4 的方式,并且在不知道原因的情况下终止。
我尝试通过 PHP Interactive shell 调用通过以下方式执行 PHP 文件:
$ php myScript.php
程序执行完毕!!!这让我觉得:
我的 Apache/PHP 配置有什么问题,不允许我的程序一直执行。
也许是权限问题?我尝试将登录用户更改为管理员用户,但它没有改变任何东西。
也许是内存问题?如果达到内存限制,不应该有警告或通知吗?我没有验证这是问题吗?
那是我的问题。我知道我正确使用函数 exec() 在后台执行程序,因为通过 PHP Interactive shell 调用同一文件时相同的脚本有效。不允许我的程序完全执行的 Apache/PHP 配置可能有什么问题?
任何建议都是奖励,因为我已经用尽了我的想法。