【问题标题】:How to fix permission denied in php?如何修复php中的权限被拒绝?
【发布时间】:2015-10-13 09:08:17
【问题描述】:

我正在尝试编写将文件写入冲浪者目录的代码。我正在使用函数 fopen("textfile.txt","w") 但我收到消息:

警告:fopen(testfile.txt)[function.fopen]:打开流失败:G:\PleskVhosts....\contribute.php 第 57 行的权限被拒绝

我该如何解决这个问题?

【问题讨论】:

  • 您对尝试写入textfile.txt 的文件夹有什么权限?我相信你必须至少有 755 的写入权限
  • @BenPearlKahan 通常没有理由给 nobody 任何权限 - 750 就可以了。
  • 快速谷歌搜索对我有帮助... 75* 是重要的部分!干杯。

标签: php web


【解决方案1】:

确保您的网络服务器用户对您要创建文件的文件夹具有正确的权限。

所以用75*更改文件夹的模式,将web服务器用户添加到文件夹的组中。您可以查看link了解详细信息。

【讨论】:

    【解决方案2】:

    您需要更改该文件的权限。如果你使用 linux 尝试 chmod 755,如果使用 windows 手动更改权限。

    【讨论】:

    • 从不 777 任何东西 - 特别是如果它在 doc 根目录下,你只是在自找麻烦!
    • 问题是文件在网络服务器上,我还能用你描述的方法之一吗?
    • 如果它在服务器上你可以使用 chmod 755, 777 授予所有权限,它只用于本地,不要在服务器上使用它会损害你的安全。
    • 是的,您可以在网络服务器上使用,您使用哪个服务器?
    • @Joseph 在理想的世界中,任何可以被 Web 服务器写入的文件都不应该通过 HTTP 读取(尽管这并不总是完全实用的,例如创建产品图像的 CMS) ;因此,如果该文本文件只会被 PHP 读取,请将其放在 文档根目录之外的目录中,或者包含一个带有 拒绝所有的 .htaccess 文件。如果该目录由 Apache拥有,您可以使用类似 700 的名称,但如果您还需要 FTP 访问权限(并且与 Apache 在同一组中),您将需要类似 750 的名称。
    【解决方案3】:

    如果您将项目部署在 linux 上,您可以使用类似的方法来更改文件夹/文件权限

    sudo find /path/of/project -type d -exec chmod 755 {} \; ; sudo find /path/of/project -type f -exec chmod 644 {} \;
    

    【讨论】:

      猜你喜欢
      • 2019-03-15
      • 2019-09-18
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      • 2017-06-26
      • 2021-11-24
      • 2018-07-28
      • 2012-07-27
      相关资源
      最近更新 更多