【问题标题】:Can't access file in home directory from PHP on a EC2 server无法从 EC2 服务器上的 PHP 访问主目录中的文件
【发布时间】:2015-07-10 12:43:15
【问题描述】:

我想知道为什么这会返回一个空字符串:

$settings = file_get_contents('/home/ec2-user/settings.json');

但这有效:

$settings = file_get_contents('/var/www/settings.json');

我似乎无法从主目录访问我的 json 文件。
有什么想法吗?

【问题讨论】:

    标签: php amazon-web-services amazon-ec2 home-directory


    【解决方案1】:

    通常,Web 服务器以自己的用户身份运行。该用户没有主目录(在 /home 中),并且不允许访问任何其他用户的主目录。

    如果display_errors 已打开,您应该会看到使用file_get_contents 访问您无权访问的文件的警告。

    【讨论】:

      【解决方案2】:

      Apache 在www 用户下运行,其主文件夹设置为/var/www。而且由于 PHP 脚本在 Apache 的上下文中运行,它们也继承了它的用户。因此,您的脚本无法访问其他用户主文件夹中的文件。

      如果您通过 CLI 运行相关代码(您通过 ssh 登录),您将能够访问 /home/ec2-user/settings.json 的内容,因为脚本将在您的用户上下文中运行。

      【讨论】:

        猜你喜欢
        • 2018-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-14
        • 2016-08-25
        • 1970-01-01
        • 1970-01-01
        • 2012-01-18
        相关资源
        最近更新 更多