每个请求都拒绝PHP/Apache sh错误权限


PHP / Apache sh error permission denied on every request

我最近安装了一台运行Apache和PHP 5.3.9的服务器,对服务器的每个请求都会导致错误日志文件中出现错误:

sh: line 0: cd: /root: Permission denied

这个错误发生在任何PHP代码执行之前,所以它一定是设置中的某个地方,但它是一个新盒子,正在运行库存配置。

是什么原因导致了这个错误?

编辑:

在Amazon Linux(EC2)2.6.35.14-97.44.amzn1.x86_64 上运行

它不应该运行任何脚本,它在mod_PHP模式下运行PHP,而不是CGI,错误发生在之前,PHP代码执行

可能看起来像一个没有可执行权限的脚本。

如果你知道它是哪个脚本,你可以通过以下方式授予它权限:

chmod +x /path/to/your/script.sh

作为词根或前面有sudo。

编辑:

从外观上看,您的脚本似乎正在尝试cd到您的/root文件夹。脚本很可能是由另一个没有cd to/root权限的用户运行的。只有根具有

这是AWSSDKforPHP在做这件事。

/usr/share/pear/AWSSDKforPHP/sdk.class.php中,您会发现:

$_ENV['HOME'] = `cd ~ && pwd`;

出于某种愚蠢的原因,它试图"cd"到/root中。将该行更改为以下内容:

$_ENV['HOME'] = "/var/www"; #`cd ~ && pwd`;

它会消失的。