Суть проблемы: имеется скрипт, который должен добавлять в file.txt информацию, а если этот файл отсутствует, то создать его. На деле файл не создается, а если создать его вручную, то информация в него все равно не попадает. Все остается без изменений.
Прочитал всю главу о правах доступа в книге Котерова "PHP7", но мне это ничего не дало. Ни один скрипт, связанный с работой файлов, не работает. Что делать в таком случае?
Скрипт максимально простой для примера:
<?php
// строка, которую будем записывать
$text = "Какой-то текст";
// открываем файл, если файл не существует, делается попытка создать его
$fp = fopen("file.txt", "w");
// записываем в файл текст
fwrite($fp, $text);
// закрываем
fclose($fp);
?>
Если сервер тестовый, то временно сделай следущее:
cd /var/www/html/mysites/php/
sudo chmod 777 ./TASK -R
Для выполнения последней команды нужны права администратора
Смотрите под под каким пользователем запущен скрипт и есть ли у него возможность писать в этот файл. Например работает через fastcgi:
ps aux|grep php-fpm
Допустим что php-fpm запущен от пользователя www-data, попробуем от имени этого пользователя записать в файл, если конечно у вас есть root на сервере:
su -m www-data; echo 1 > file.txt
Не забудьте проверить путь до файла, укажите полный путь в скрипте вместо относительного или getcwd() в помощь.
<?php
$filename = "base.txt";
$fd = fopen($filename, "a");
if(!$fd) exit("Ошибка при открытии файла данных");
$str = "kakoi to "."text"."\r\n";
fwrite($fd,$str);
fclose($fd);
?>
не знаю поможет ли тебе, но именно такая ерунда пашет.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Как обратится к другому файлу в PHP, чтобы только запустить скрипт, без обратной отправки результата?