本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
我无法使用php创建文件,因为该文件已获得该权限。
我收到此错误:
Warning: fopen(test.txt): failed to open stream: Permission denied in /web/com/example.com/index.php on line 20
Warning: fwrite() expects parameter 1 to be resource, boolean given in /web/com/example.com/index.php on line 21
Warning: fclose() expects parameter 1 to be resource, boolean given in /web/com/example.com/index.php on line 22
这是我使用的代码:
$file = fopen("test.txt","w");
echo fwrite($file,"Hello World. Testing!");
fclose($file);
?>
就那么简单! 这是来自w3schools的示例代码。
所以我需要帮助来找出如何为文件提供所需的权限。
我正在使用net2ftp FTP Web应用程序将文件上传到我的站点,如果重要的话。
阅读一些教程以了解您的处理方式,例如: dartmouth.edu/~rc/help/faq/permissions.html - 我认为这对你最有帮助。
它将取决于服务器设置。 您需要找出您的PHP进程正在运行的用户,并将该用户的读写权限应用于该目录。 有一些常见的默认值,所以如果你可以发布你用于托管,Apache,IIS等的东西,它可能会有所帮助。
通过ssh查看服务器的权限(目录中的ls -l)
w3fools
我正在使用apache
您的PHP脚本尝试写入的文件夹可能由root用户拥有。 如果您使用的是默认的Ubuntu / Apache / PHP设置,那么您的PHP脚本很可能在www-data用户下运行。
因此,您需要:
chown -R www-data:www-data folder
chmod -R g+w folder
如果您发现PHP在与www-data不同的用户下运行,那么只需在第一行代码中将用户更改为一组。
PS。 更改实际文件夹名称的"文件夹"。
我在哪里输入? 当我尝试将该代码发送到ftp服务器时,它响应:500个未知命令
它不知道"chown"命令是什么,但它确实知道"chmod"命令,但是! 当我将"文件夹"更改为任何文件或文件夹时(例如"/index.php"或"/ test"(我使用和不使用引号和斜线测试))它重新发布了这个:550无法更改g +上的perms w / test:没有这样的文件或目录
我以为你是在命令行,而不是使用FTP客户端。 您需要在命令行上运行chown命令。 在这种情况下,我可以建议的唯一另一件事是将文件夹chmod到0777,但这不是我真正推荐的。
我使用的是FTP客户端! 链接! 我转到"高级",然后"将任意FTP命令发送到FTP服务器",然后在框中输入命令...
运行PHP的用户(通常是apache用户)对运行脚本的文件夹没有写权限。尝试使用绝对路径,如"/tmp/test.txt" - tmp通常可由任何用户写入, 但重启时内容往往会被删除。