Невозможно работать с файлами в php7 на linux 16.10

259
04 августа 2017, 02:12

Суть проблемы: имеется скрипт, который должен добавлять в file.txt информацию, а если этот файл отсутствует, то создать его. На деле файл не создается, а если создать его вручную, то информация в него все равно не попадает. Все остается без изменений.

Прочитал всю главу о правах доступа в книге Котерова "PHP7", но мне это ничего не дало. Ни один скрипт, связанный с работой файлов, не работает. Что делать в таком случае?

Скрипт максимально простой для примера:

<?php
    // строка, которую будем записывать
    $text = "Какой-то текст";
    // открываем файл, если файл не существует, делается попытка создать его
    $fp = fopen("file.txt", "w");
    // записываем в файл текст
    fwrite($fp, $text);
    // закрываем
    fclose($fp); 
?>
Answer 1

Если сервер тестовый, то временно сделай следущее:

  • открой терминал
  • вставь команду cd /var/www/html/mysites/php/
  • дай полный доступ для записи для всех пользователей sudo chmod 777 ./TASK -R

Для выполнения последней команды нужны права администратора

Answer 2

Смотрите под под каким пользователем запущен скрипт и есть ли у него возможность писать в этот файл. Например работает через fastcgi:

ps aux|grep php-fpm

Допустим что php-fpm запущен от пользователя www-data, попробуем от имени этого пользователя записать в файл, если конечно у вас есть root на сервере:

su -m www-data; echo 1 > file.txt

Не забудьте проверить путь до файла, укажите полный путь в скрипте вместо относительного или getcwd() в помощь.

Answer 3
<?php
  $filename = "base.txt"; 
  $fd = fopen($filename, "a");
  if(!$fd) exit("Ошибка при открытии файла данных");
  $str = "kakoi to "."text"."\r\n";     
  fwrite($fd,$str);
  fclose($fd);

?> 

не знаю поможет ли тебе, но именно такая ерунда пашет.

READ ALSO
Не могу реализовать поиск на сайте

Не могу реализовать поиск на сайте

При нажатии на поиск показывает:

228
Аналог AJAX в PHP

Аналог AJAX в PHP

Как обратится к другому файлу в PHP, чтобы только запустить скрипт, без обратной отправки результата?

385
.htaccess для ЧПУ в подпапке

.htaccess для ЧПУ в подпапке

Представим, что есть сайт domenru

193