file_put_contents - 无法打开流:权限被拒绝

2022-08-30 07:23:24

我正在尝试将查询写入文件以进行调试。该文件位于 中。我要写入的文件是 。database/execute.phpdatabase/queries.php

我正在尝试使用file_put_contents('queries.txt', $query)

但我得到了

file_put_contents(queries.txt) [function.file-put-content]: 无法打开流: 权限被拒绝

我有文件chmod'd到777,问题可能是什么?queries.txt


答案 1

请尝试调整目录权限。

从终端运行(从包含数据库文件夹的目录)chmod 777 database

apache,如果正确使用chmodd'ed,则没有人可以访问此目录。

另一件事是回声“getcwd()”。这将显示当前目录,如果这不是“/某物.../数据库/”,则需要将“query.txt”更改为服务器的完整路径。


答案 2

您可以使 ,成为文件夹的所有者:Apache (www-data)

sudo chown -R www-data:www-data /var/www

现在应该可以工作了。但是为了提高安全性,您最好也设置如下权限:file_put_contents

find /var/www -type d -print0 | xargs -0 chmod 0755 # folder
find /var/www -type f -print0 | xargs -0 chmod 0644 # files
  • 更改为 php 文件的根文件夹/var/www

推荐