【问题标题】:PHP / Apache sh error permission denied on every requestPHP / Apache sh 错误权限在每个请求上都被拒绝
【发布时间】:2012-09-26 15:53:33
【问题描述】:

我最近安装了一个运行 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 代码执行之前

【问题讨论】:

  • 你运行的是什么系统?什么版本?给我们更多信息:)
  • 在 Amazon 实例上出现同样的问题。我没有运行任何脚本。

标签: php linux apache


【解决方案1】:

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

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

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

作为 root 或使用 sudo infront。

编辑:

再看一遍,您的脚本似乎正在尝试 cd 到您的 /root 文件夹。 该脚本很可能是由另一个没有 cd 到 /root 权限的用户运行的。 只有root有这个

【讨论】:

  • 该错误发生在我的任何脚本运行之前,甚至发生在根本没有 PHP 代码的页面上。
【解决方案2】:

这是执行此操作的 AWSSDKforPHP。

/usr/share/pear/AWSSDKforPHP/sdk.class.php 里面你会发现:

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

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

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

它会消失的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-13
    • 2013-05-27
    • 2012-02-11
    • 2022-01-18
    • 2014-04-10
    • 1970-01-01
    相关资源
    最近更新 更多