我试过并且无法理解为什么我的命令行程序在使用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配置中哪些内容不允许我的程序完全执行?

任何建议都是奖励,因为我已经用尽了我的想法 .