【问题标题】:file_put_contents failed to open stream: Permission deniedfile_put_contents 无法打开流:权限被拒绝
【发布时间】:2014-11-29 23:18:14
【问题描述】:

我在尝试执行 file_put_contents() 时收到此错误。

Apache 以apache 组的身份工作,以sudo 权限开始。我的用户在apache 组中。所有目录和文件都有755 chmod。

文件存在。

在本地它工作正常,在远程 CentOS 服务器上不行。为什么?怎么调试那个东西?

【问题讨论】:

  • 给网络服务器sudo权限和给所有文件775访问权限是很危险的...
  • 我认为他的意思是他用sudo apache start 启动了apache,这是正确的做法。 Apache 将使用配置的用户从根线程启动自己的线程。
  • @CommuSoft apache 如果绑定到端口 80 将不会启动。我们可以回到我的问题吗?
  • 您确定要写入您要写入的目录吗?你能用相同的路径从同一个文件中读取数据吗?
  • 是的,路径没问题,我仔细检查了。

标签: php linux file-permissions permission-denied


【解决方案1】:

这可以通过更改目录权限来解决。

像这样运行命令

chmod 777 database (the directory)

您可以使用getcwd()" 查找目录路径。

请看here

【讨论】:

  • 这是通过允许对目录的开放访问来绕过权限的建议。谨慎使用。
【解决方案2】:

有时 SELINUX 会阻止写入,就像我从 Fedora 提供服务时遇到的问题一样。运行:

sudo setenforce 0

【讨论】:

    猜你喜欢
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 2018-04-25
    • 2022-09-22
    • 2016-09-21
    • 1970-01-01
    相关资源
    最近更新 更多