Назад | Перейти на главную страницу

PHP создает файлы как пользователь root вместо nginx

Я установил новый сервер на Debian Stretch.

Пользователь веб-сервера - nginx:

ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1

nginx

Я уже рекурсивно установил путь к веб-серверу 775 и nginx.

chown -R nginx:nginx /var/www/html/
chmod -R 775 /var/www/html 

Когда я создаю файл, пользователь является пользователем root со следующими разрешениями:

<?php file_put_contents ('/var/www/html/settings/test.json', 'Test file'); ?>
php test.php

-rw-r--r-- 1 root root 9 Apr 29 09:19 /var/www/html/settings/test.json

Что еще можно попробовать?

Если вы запустите PHP из командной строки, когда вы вошли в систему как root, то двоичный файл PHP будет выполняться как root. Это означает, что файлы, которые он создает, принадлежат пользователю root.

Чтобы правильно протестировать вашу настройку, вам необходимо выполнить скрипт PHP, вызвав его через http / nginx. Например:

curl http://example.com/test.php