[英]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.