可能重复:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
我无法使用php创建文件,因为该文件已获得该权限。 我收到这个错误:
警告:fopen(test.txt):无法打开流:第20行/web/com/example.com/index.php中的权限被拒绝
警告:fwrite()要求参数1为资源,在第21行的/web/com/example.com/index.php中给出布尔值
警告:fclose()要求参数1为资源,第22行的/web/com/example.com/index.php中给出布尔值
这是我正在使用的代码:
<?php
$file = fopen("test.txt","w");
echo fwrite($file,"Hello World. Testing!");
fclose($file);
?>
简单就是这样!这是example code from w3schools。
所以我需要帮助才能找到如何为文件提供所需的权限。 我正在使用net2ftp FTP网络应用程序将文件上传到我的网站,如果重要的话。
答案 0 :(得分:17)
您的PHP脚本尝试写入的文件夹可能由root用户拥有。如果您使用默认的Ubuntu / Apache / PHP设置,那么您的PHP脚本很可能在www-data用户下运行。
因此你需要:
chown -R www-data:www-data folder
chmod -R g+w folder
如果您发现PHP在与www-data不同的用户下运行,那么只需在第一行代码中为用户更改一个组。
PS。更改&#34;文件夹&#34;为您的实际文件夹名称。
答案 1 :(得分:3)
运行PHP的用户(通常是apache用户)对运行脚本的文件夹没有写权限。尝试使用绝对路径,例如“/tmp/test.txt” - tmp通常可写入任何用户,但内容往往在重新启动时被清除。
答案 2 :(得分:1)
我正在使用 Ubuntu,我通过在我正在写入文件的文件夹(即上传)的一个目录中运行以下命令解决了这个问题。
sudo chmod 777 ./uploads