【发布时间】:2014-03-26 01:58:21
【问题描述】:
这让我发疯了。
我已将我的问题简化为:我有一个简单的文件“test.php”,它调用一个 php 文件(这是来自一个更大的应用程序,所以实际上我们需要从一个主脚本执行许多 php 脚本) :
<?php
exec("php /var/www/setActive.php 273 1 2>&1",$arO,$nO);
echo $nO.'|'.implode(',',$arO);
setActive.php 的原始路径更长,我在这个例子中缩短了它。
现在,如果我尝试:
[root@stg]# sudo -u apache php test.php
我明白了:
0|
太好了,这意味着 setActive.php 脚本运行顺利。
现在,如果我从浏览器或 curl 中尝试:
[root@stg]#curl http://my.url/path/test.php
这是我得到的:
1|Could not open input file: /var/www/setActive.php
我已经查看了所有权限。 Apache 用户可以访问所有目录和文件。 这在另一台服务器上工作正常。我查看了 php.ini 文件,它们之间没有区别。
也许是我没有看到的选项,或者是 apache 配置选项。我的想法已经用完了。
请帮帮我!
提前致谢。
我有 Linux,Cent 操作系统。 PHP 5.3.23
【问题讨论】:
-
你在 apache 日志中得到了什么?
-
my.url是同一个服务器吗? -
您确定该脚本是可访问的(文件权限,正确的路径,VirtualHost 可访问)?
-
@Shaun Scovil:在示例中,我使用 sudo 作为 apache 用户 (sudo -u) 运行脚本。如果我省略了 sudo,它将以“root”身份运行,结果相同(成功执行)。
标签: php