在Ubuntu上使用PHP写入文件时遇到问题

时间:2014-07-01 14:27:40

标签: php apache ubuntu file-io file-permissions

我在Ubuntu 14.04上运行PHP 5.5.9。我在写文件时遇到问题。我觉得这必须是文件权限问题,因为我非常确定代码是正确的。我登录的用户有权写入我尝试写入的文件夹,但我不确定localhost是否有。我不确定localhost用户的名称是什么,以便使用chmod。我尝试使用chmod 777 -R /var/www/html,但脚本仍然无法写入我的目标文件夹,该文件夹的路径为/var/www/html/Projects/MD_ScrapingTool/files。这是我的代码:

$file = 'filetest.txt';
if($handle = fopen($file, 'w')) {
    $content = "123\n456";
    fwrite($handle, $content);
    fclose($handle);
} else {
    echo "Could not open file for writing.";
}

3 个答案:

答案 0 :(得分:17)

经过一些更多的研究,我已经弄明白了。对于遇到同样问题的人来说,这是解决方案:

由于localhost属于www-data组,我只是将我的用户添加到该组中。

sudo usermod -a -G www-data my_username

然后,我将该文件夹添加到该组。

sudo chgrp -R www-data /var/www

然后,我给了www-data组写入权限。

sudo chmod -R g+w /var/www

这对我有用,没有任何其他问题。谢谢!

答案 1 :(得分:0)

尝试使用open

提供绝对路径和文件名
$file = '/html/Projects/MD_ScrapingTool/files/filetest.txt';

如果该文件不存在,fopen应使用'w'模式创建文件。

答案 2 :(得分:0)

您可以验证您是否拥有该文件夹的权限' / html / Projects / MD_ScrapingTool / files /'并尝试绝对的路径。