无法在 /var/www/html 中创建文件

无法在 /var/www/html 中创建文件

我正在运行 Ubuntu 版本 14.04,并且设置了一个 apache2 服务器来托管存储在本地主机上的一些 php 文件/var/www/html

当我尝试在我的某个 php 脚本中执行以下代码时

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

我在 /var/www/html 中找不到名为 test.txt 的文件,在搜索后也没有在计算机上的任何地方找到。文件名不存在,我使用这个是sudo nautilus因为我没有编辑 php 文件的必要权限/var/www/html。为什么文件没有出现在我的/var/www/html文件夹中,我该如何修复这个问题以便创建文件?

答案1

我刚刚在我的服务器上测试了你的 php 文件,它运行良好。

您的问题肯定是用户www-data没有该文件夹的写权限。

如果该用户确实没有该文件夹的写权限,那么您将在文件中看到错误消息/var/log/apache2/error.log

为了查看最后的错误,请执行

tail -n 15 /var/log/apache2/error.log

例如,如果我将“test.txt”改为“/test.txt”(写入/,只有 root 可以),我会在日志文件中收到此错误:

[:error] [pid 7505] [client 127.0.0.1:47066] PHP Warning:  fopen(/test.txt): failed to open stream: Permission denied in /var/www/html/a.php on line 2

上面明确指出了拒绝许可。

您可以通过授予用户对该文件夹的写入权限来解决此问题www-data

使用 +w 符号授予特定用户写入文件夹的权限

相关内容