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

Как изменить имя пользователя nginx / PHP создает файлы как

Есть ли способ настроить nginx / php так, чтобы он создавал файлы с конкретным пользователем.

Например, когда сайт drupal / wordpress загружает файл, пользователю назначается следующий вид: john: www-data

У nginx.conf есть пользователь, но насколько я понимаю, это изменяет только пользователя, которого nginx использует в системе.

Нет возможности сделать это. PHP запускается процессом PHP-FPM, который запускается от имени конкретного пользователя. Созданные файлы принадлежат этому пользователю.

Только суперпользователь может изменить владельца файла, и запускать процесс PHP-FPM с привилегиями суперпользователя небезопасно.

Единственный вариант изменения статуса владения файлами, загруженными процессом, - это изменить пользователя, от имени которого вы запускаете PHP-FPM.

Как предложил Теро, вам нужно будет изменить пользователя вашего процесса php-fpm, ответственного за хостинг сайта, на который вы хотите повлиять.

PHP-FPM имеет «пулы», и я думаю, что у большинства администраторов обычно есть один пул на каждый сайт. Итак, если вы размещаете example.com и another-example.com, у вас может быть два пула php-fpm, каждый из которых запускает свой соответствующий сайт. Преимущество разных пулов заключается в том, что вы можете определять конфигурацию для каждого отдельно (и, таким образом, запускать процессы как разные пользователи / группы).

Вы не указали свой дистрибутив / конфигурацию, поэтому я могу только сказать вам, что файлы конфигурации вашего пула наверное расположен в /etc/php-fpm.d/*.conf. Итак, вы могли бы /etc/php-fpm.d/example.com.conf с участием:

[example.com]
user = john
group = www-data
...

А потом еще один бассейн /etc/php-fpm.d/another-example.com.conf с участием:

[another-example.com]
user = sally
group = www-data
...

Конфиги php-fpm находятся в формате INI, и то, что я опубликовал, - это только соответствующие директивы пользователя / группы. Для правильного определения пула необходимы дополнительные параметры конфигурации. См. Раздел «Список директив пула» на эта страница для получения дополнительной информации об этом.

Вам нужно будет перезапустить службу php-fpm, чтобы изменения пула вступили в силу. Вы можете проверить свою конфигурацию перед перезапуском (и таким образом избежать возможного простоя) с помощью php-fpm -t в большинстве систем. Я думаю, что некоторые дистрибутивы используют php5-fpm -t.

Наконец, да, как вы сказали, директивы пользователя / группы nginx.conf влияют только на Nginx. PHP-FPM работает как отдельный процесс, более или менее независимый от Nginx.