【问题标题】:fopen() Permission Denied despite having correct file directory尽管文件目录正确,但 fopen() 权限被拒绝
【发布时间】:2013-08-09 05:38:32
【问题描述】:
$handle = fopen('/Applications/XAMPP/xamppfiles/htdocs/test/file.txt', 'w');

我尝试了上述操作,每次尝试时,我的浏览器上都会出现以下语句:

警告:fopen(/Applications/XAMPP/xamppfiles/htdocs/test/file.txt) [function.fopen]:无法打开流:权限被拒绝 /Applications/XAMPP/xamppfiles/htdocs/test/index.php 在第 26 行。

我尝试通过相同类型的问题查看已回答的问题,但我尝试的大多数方法都不起作用。比如写全目录...

【问题讨论】:

  • 网络服务器是否有适当的权限下降到该路径并在那里写入文件,覆盖任何可能已经存在的文件?
  • 你在 Linux 吗?文件的chmod777 吗? en.wikipedia.org/wiki/Chmod
  • 我是 PHP 新手,我不知道如何授予或取消访问任何目录的服务器的访问权限。但是,当我在我的计算机上安装 XAMPP 时,我没有修改任何文件。

标签: php


【解决方案1】:

也许,您没有访问该文件的权限。答案之一是,您必须将 CHMOD 更改为例如777。您可以将它与您的 ftp 浏览器或 PHP 一起使用。

chmod("/somedir/somefile", 777);

【讨论】:

  • 经过测试,出现如下警告:Warning: chmod() [function.chmod]: Operation not allowed in /Applications/XAMPP/xamppfiles/htdocs/test/index.php on line 27
  • 打开前。也许,您不是运行 php 的服务器的管理员。
  • 如何成为管理员?对不起,我是新手!
  • 我真的不知道您在哪个虚拟主机上,也许可以尝试登录您的 PHP 管理员并找到一些有用的东西。
  • 我在本地主机上。我解决了这个问题。正如你所说,我不是服务器的管理员。将 chmod 更改为 777 就可以了!
【解决方案2】:

默认情况下,安装 XAMPP 时,htdocs 文件夹没有任何读取权限。您可以像这样通过终端更改权限。

cd /Application/XAMPP/xamppfiles/htdocs/test/
sudo chmod 0664 file.txt

或者,您可以递归设置所有文件和文件夹的所有权限级别

cd /Application/XAMPP/xamppfiles/
sudo chmod -R 0664 htdocs/

【讨论】:

  • 我试过 cd /Application/XAMPP/xamppfiles/ chmod -R 0664 htdocs/ 但是当我重新加载页面时,出现以下错误:访问被禁止!您无权访问请求的对象。它要么是读保护的,要么是服务器不可读的。如果您认为这是服务器错误,请联系网站管理员。错误 403 localhost Fri Aug 9 14:56:20 2013 Apache/2.2.14 (Unix) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1跨度>
  • 您似乎不是这些文件的所有者。如果是这种情况,请将 664 替换为 777。
  • 使用 777 几乎总是一个糟糕的主意。
  • 这是为什么呢?即使问题解决了?以后会对我有影响吗?
  • @IgnacioVazquez-Abrams 理想情况下,如果您知道 664 或 744 的含义以及它对文件的影响,那么您需要 744。
【解决方案3】:

您可以将chmod 转换为777,但这是有风险的安全性。我猜你真正想要的是更改文件的所有权。您可以使用chown 执行此操作。 PHP 通常以用户 www-data 的身份运行,所以你会运行类似这样的命令。

sudo chown www-data:root path/to/file.ext

如果您对文件的文件权限是正常的,例如 664,那么 PHP 将获得 6 权限(读取和写入)而不是 4(仅读取)。

【讨论】:

    猜你喜欢
    • 2012-08-31
    • 2011-11-10
    • 2022-01-02
    • 2017-11-20
    • 2019-06-15
    • 2015-04-23
    • 2011-08-01
    • 1970-01-01
    • 2020-09-30
    相关资源
    最近更新 更多