PHP仅限于文档根目录,而非文件系统根目录

问题描述 投票:0回答:1

我正在尝试通过php更改/ etc / nginx目录中的文本文件。我正在使用fopen()来执行此操作,但是,无法访问网站根文件夹以外的任何目录。

例如,我的网站存储在绝对路径:/ webroot / mywebsite /中,如果我尝试读取该文件夹之外的任何内容,例如/ etc / nginx,则fopen()会死。

  • 我已经尝试过仅使用../../etc/nginx,但找不到它
  • 我曾尝试以根用户身份运行PHP
  • 我已尝试将用户'http'添加到根组中
  • 我尝试在php.ini中设置open_basedir变量
  • 我已经尝试将/ etc文件夹符号链接到/ webroot文件夹,但是找不到它
  • 我已经检查了我的Nginx配置,并且所有的php配置都没有覆盖open_basedir
  • 我已经确认我正在编辑的php.ini实际上在phpinfo()中已更改;
  • 我尚未尝试更改Arch安装的根目录。我担心这会破坏某些东西

当我回显realpath("index.php")时,它返回“ /webroot/mywebsite/index.php”

这是我一直在确认是否可以访问我的根目录的方式,但是它没有更改。我不知道我还能尝试什么。我以前的Debian安装让我只使用绝对路径。这是我的新Arch安装,这是我第一次体验。我怀疑这可能是权限问题,但我不想大量修改整个OS根目录。还有其他建议吗?谢谢

php permissions root fopen open-basedir
1个回答
0
投票

嗯。我很惊讶在谷歌搜索了4个小时后仍无法找到该答案,但是确实如此。希望我能救别人的麻烦。

问题位于此处:/lib/systemd/system/php-fpm.service

找到“ ProtectSystem = full”行并将其设置为“ false”。塔达,我现在到处都有访问权限。

© www.soinside.com 2019 - 2024. All rights reserved.