PHP exec()调用永远不会运行

时间:2010-01-21 18:38:50

标签: php permissions exec

我认为这是一个权限问题,但不确定如何修复它。

我有一个php脚本 - mainscript.php - 调用:

$scriptCall = "/usr/bin/php wrap_prep.php 2>&1 &";

运行mainscript.php时,wrap_prep.php永远不会执行。但是,当我以root身份登录我的网络服务器并运行php wrap_prep.php 2>&1 &时,它可以正常工作。

我已将两个脚本设置为所有者和组,并将其设置为我的apache用户以及755权限。

我最近重新编译了PHP以添加一个库(不确定这是否与新问题有关)。

3 个答案:

答案 0 :(得分:1)

首先,您应该只输出命令为您提供的exec()。无论如何都应该有错误信息。

其次,您使用PHP脚本并不一定意味着允许运行PHP的用户在/usr/bin/php调用PHP二进制文件。你能尝试改变那个权利吗?

如果这没有用,请查看您的PHP脚本正在运行的用户。据我所知,posix_getuid()是找到它的最准确的工具。确保您设置的权限与您设置权限的用户完全相同。

哦,Thilo上面的评论是最明显的,应该首先检查出来:)

答案 1 :(得分:0)

我会检查以确保您的主机未完全停用exec。我相信phpinfo()会告诉你它是不是。

答案 2 :(得分:0)

如果在Windows上运行(我知道OP不是),可能需要将整个命令包装在一组引号中。

这解释为here