Я запускаю PHP 5.5.9 на Ubuntu 14.04. У меня возникли проблемы с записью в файл. Я чувствую, что это проблема с правами доступа к файлам, потому что я уверен, что код правильный. Пользователь, с которым я зарегистрировался, имеет права писать в папках, которые я пытаюсь записать, но я не уверен, что делает 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."; }
После нескольких исследований я понял это. Вот решение для тех, кто имеет ту же проблему:
Поскольку 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
Это работало для меня без каких-либо других проблем. Благодаря!
Вы можете убедиться, что у вас есть разрешение на папку «/ html / Projects / MD_ScrapingTool / files /» и попробуйте с абсолютным путем.
Попробуйте указать абсолютный путь и имя файла с open
:
$file = '/html/Projects/MD_ScrapingTool/files/filetest.txt';
Если файл не существует, fopen
должен создать файл с режимом 'w'
.