繁体   English   中英

从浏览器调用PHP脚本失败但从CLI调用失败

[英]PHP script fails when called from a browser but not from CLI

这让我疯了。

我把问题简化为:我有一个简单的文件'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 OS。 PHP 5.3.23

如果权限等..都可以,可能是apache配置。 在您的设置中设置了'ChrootDir':

http://httpd.apache.org/docs/2.2/mod/mpm_common.html#chrootdir

这使用了系统调用chroot(),并且该进程的'/'dir视图从此安装目录开始,因此一切都应该相对于它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM