使用PHP打开或创建文件时权限被拒绝

使用PHP打开或创建文件时权限被拒绝,php,file-io,ftp,file-permissions,Php,File Io,Ftp,File Permissions,我不能用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 =

我不能用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);
 ?> 

就这么简单!这是

因此,我需要帮助以了解如何为该文件授予所需的权限。
如果有必要,我将使用FTP web应用程序将文件上载到我的站点。

运行PHP的用户(通常是apache用户)对运行脚本的文件夹没有写入权限。尝试使用绝对路径,如“/tmp/test.txt”--tmp通常可由任何用户写入,但在重新启动时内容往往会被删除。

您的PHP脚本尝试写入的文件夹可能由根用户拥有。如果您使用的是默认的Ubuntu/Apache/PHP设置,那么您的PHP脚本很可能在www数据用户下运行

因此,您需要:

chown -R www-data:www-data folder
chmod -R g+w folder
如果您发现PHP是在不同于www数据的用户下运行的,那么只需在第一行代码中将用户更改为一个组


另外,将“folder”更改为您的实际文件夹名。

我正在使用Ubuntu,通过在我正在写入文件的文件夹(.I.e uploads)上的一个目录中运行下面的命令,解决了这个问题

sudo chmod 777 ./uploads

阅读一些教程来了解你所处理的问题,例如-我认为这将对你帮助最大。这将取决于服务器设置。您需要找出PHP进程运行的用户身份,并将该用户的读写权限应用于目录。有一些常见的默认设置,所以如果您可以将您正在使用的内容发布到主机、Apache、IIS等,这可能会有所帮助。请参阅通过ssh(目录中的ls-l)在服务器上的权限,我在哪里键入?当我试图将代码发送到ftp服务器时,它响应:500未知命令它不知道“chown”命令是什么,但它知道“chmod”命令,但是!当我将“folder”更改为任何文件或文件夹(例如“/index.php”或“/test”(我使用引号和斜杠进行了测试)时,它的响应是:550无法更改g+w上的perms/test:没有这样的文件或目录我假设您在命令行上,没有使用FTP客户端。您需要在命令行上运行chown命令。在这种情况下,如果要将文件夹chmod到0777,我唯一能建议的是,但这不是我真正推荐的。我使用的是FTP客户端!我进入“高级”,然后“向FTP服务器发送任意FTP命令”,然后在框中键入命令。。。