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

标签 php file-io ftp file-permissions

我不能用 php 创建文件,因为文件 dosent 获得了权限。 我收到此错误:

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

这是我使用的代码:

<?php
 $file = fopen("test.txt","w");
 echo fwrite($file,"Hello World. Testing!");
 fclose($file);
 ?> 

就这么简单!这是 example code from w3schools .

所以我需要帮助来了解如何为文件提供所需的权限。 我正在使用 net2ftp 将文件上传到我的网站FTP Web 应用程序(如果重要的话)。

最佳答案

您的 PHP 脚本尝试写入的文件夹可能属于 root 用户。如果您使用默认的 Ubuntu/Apache/PHP 设置,您的 PHP 脚本很可能在 www-data 用户下运行。

因此你需要:

chown -R www-data:www-data folder
chmod -R g+w folder

如果您发现 PHP 在与 www-data 不同的用户下运行,则只需在第一行代码中将用户更改为一个组即可。

附言。将“文件夹”更改为您的实际文件夹名称。

关于php - 使用 PHP 打开或创建文件时权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9200557/

相关文章:

Java:如何等待fileChanged执行?

java - 删除java中的临时文件

Python:从 MSSQL 检索图像

c# - FtpWebRequest TLS 连接是否需要客户端证书?

python - 如何使用 cURL 通过 FTP 上传文件夹?

php - <select> 下拉默认值

php - 如何在一行中获取两个 select 语句的结果?

php - 如何连接到Oracle数据库?

php - PDO 使用外键插入到表中

C 服务器客户端 FTP。有时,当文件很大时,我不会读完发送的所有内容