允许 nginx www 在命令处运行 Centos

允许 nginx www 在命令处运行 Centos

我有一份由以 www (nginx) 身份运行的 PHP 脚本创建的工作

31      2014-06-09 19:08 a www

时间过去后,作业已执行但什么也没发生。

但如果我以 root 身份运行它,

32      2014-06-09 19:09 a root

作业已执行,我可以得到结果。

知道如何允许 www 运行该作业吗?

编辑:这是我的 php 脚本在命令中执行的方式

$command = 'echo "/usr/bin/php -q /home/wwwroot/cron/poster.php 8137660219700061402317686 1" | at now + 1 minute';

shell_exec($command);

将会列出由 www 创建的职位

atq -c 48

有关工作的更多信息,

48      2014-06-09 21:08 a www

[root@914K7 ~]# at -c 48
#!/bin/sh
# atrun uid=501 gid=501
# mail www 0
umask 22
USER=www; export USER
PWD=/home/wwwroot/ajax; export PWD
SHLVL=1; export SHLVL
HOME=/home/www; export HOME
cd /home/wwwroot/ajax || {
     echo 'Execution directory inaccessible' >&2
     exit 1
}
${SHELL:-/bin/sh} << 'marcinDELIMITER509e6acf'
/usr/bin/php -q /home/wwwroot/cron/poster.php 81376602197000614023176 1

marcinDELIMITER509e6acf

但随着时间的流逝,作业消失了,意味着它已被执行,但我没有收到脚本的任何输出。

如果我以 root 身份通过命令行手动创建作业,则会在作业执行后获得输出。

答案1

您似乎提供了看起来像是一个过程的输出 - 但您没有告诉我们这些信息是什么,也没有告诉我们您从哪里获得这些信息。the job is executed因此,您清楚地说明了您的 php 脚本能够调用“at”。它可能没有按您期望的方式执行,但您没有提供脚本要执行的操作的详细信息,也没有提供实现该操作所需的资源。

问题出在您的脚本中 - 而不是通过“at”进行的调用。

相关内容