gpt4 book ai didi

从浏览器而非 CLI 调用时 PHP 脚本失败

转载 作者:可可西里 更新时间:2023-10-31 23:48:09 25 4
gpt4 key购买 nike

这让我抓狂。

我已将我的问题简化为:我有一个简单的文件“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 配置。在您的设置中设置了“ChrootDir”:

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

这使用系统调用 chroot() 并且该进程的“/”目录的 View 从这个设置目录开始,因此一切都应该与它相关。

关于从浏览器而非 CLI 调用时 PHP 脚本失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22650064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com