【发布时间】:2020-09-30 08:25:33
【问题描述】:
我是一名 PHP 学习者,我正在处理文件,但我无法在自己的服务器中打开文件,因为出现“权限被拒绝”错误。我正在使用fopen() 函数:fopen('file.txt', 'r+');
我在 CentOS 中使用 Apache 2.4.37 和 PHP 7.2.11。我在互联网上搜索了很多但没有任何效果,我安装了 fpm,我尝试使用其他 PHP 版本,我检查 allow_url_fopen 是否打开,我重新安装了 PHP 和 Apache,我确保所有权限都正常。我还安装在其他 CentOS 的 VM 中,但问题也出在它上面,然后我尝试使用 Ubuntu,它运行良好,但我的服务器在 CentOS 中运行。
【问题讨论】:
-
您是从网页运行它吗?网络服务器用户 ID 需要具有读取权限。该用户名通常类似于 www-user 或 www-data。
-
你使用什么样的路径?相对(即:
../folder/myimage.jpg)还是绝对(即:http://www.mywebsite.com/folder/myimage.jpg)? -
是的,我正在从网页运行代码,但整个文件夹归 Web 服务器用户名所有,CentOS 中的组是 httpd,所有文件的权限都在 777 中设置。
-
我使用的是相对路径,因为 txt 文件与 php 代码位于同一文件夹中。但是,使用像 '/var/www/html/file.txt' 这样的绝对路径也不起作用。
-
您是否尝试过 file_get_contents 来查看是否可行?如果你使用 unlink('file.txt');文件会被删除吗?如果不是,你的权限肯定不正确。