Я выполняю версию 14.04 Ubuntu, и мне настраивали apache2 сервер для хостинга некоторых php файлов на localhost, которые хранятся в /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
папка и как я могу зафиксировать это так, чтобы файл был создан?
Я просто протестировал Ваш php файл в своем сервере, и это работает просто великолепно.
Вы проблема должна состоять в том, что у пользователя www-data
нет полномочий записи к той папке.
, Если действительно, что у пользователя нет полномочий записи к той папке, тогда Вы будете видеть сообщения об ошибках в файле /var/log/apache2/error.log
, Чтобы посмотреть на последние ошибки, сделать
tail -n 15 /var/log/apache2/error.log
, Например, если я, вместо "test.txt", помещаю "/test.txt" (пишут в/, был только корень, может), я получить эту ошибку в файле журнала:
[: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 нотацию