У меня есть следующие тестовой страницыPHP нет прав для управления файлами
mkdir('test');
$f = fopen('test.txt', 'w+');
fwrite($f, 'gibberish');
fclose($f);
unlink('test2.txt');
Ничто из этого не происходит, и я получаю следующее сообщение об ошибке на erro.log
PHP Warning: mkdir(): Permission denied in /var/www/html/test.php on line 5
PHP Warning: fopen(test.txt): failed to open stream: Permission denied in /var/www/html/test.php on line 7
PHP Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/html/test.php on line 8
PHP Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/html/test.php on line 9
PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/html/test.php on line 10
PHP Warning: unlink(teste2.txt): Permission denied in /var/www/html/test.php on line 12
я могу ясно видеть, что я у меня есть разрешения, но у меня нет идей, какое это разрешение и как я могу установить такое разрешение.
Использование git или терминала Я могу создать/удалить/chmod все файлы и каталоги без проблем. Это просто PHP, который не может.
Вы используете его через веб-сервер? При запуске PHP через веб-сервер пользователь использует веб-сервер, которому необходимы разрешения. Для Apache это обычно 'www-data'. –
ну, в первую очередь: какой пользователь * владеет * файлами/папками? если это не тот же пользователь, что и ваш веб-сервер, у вас есть свои проблемы. прочитайте о том, как работают файловые системы unix. –
Обратите внимание: использование chmod 777 всегда плохое, даже для тестирования, оно создает ложное ощущение наличия решения и часто забывается при введении потенциальных рисков безопасности. –