How do I change the NGINX user?
Run nginx & php-fpm as www:www
###1. Nginx
Edit nginx.conf and set user to www www;
:
user www www;
If the master process is run as root, then nginx will setuid()/setgid() to USER/GROUP. If GROUP is not specified, then nginx uses the same name as USER. By default it's nobody user and nobody or nogroup group or the --user=USER and --group=GROUP from the ./configure script.
###2. PHP-FPM
Edit php-fpm.conf and set user and group to www
:
[www]
user=www
group=www
user - Unix user of processes. Default "www-data"
group - Unix group of processes. Default "www-data"
In Ubuntu 14.04 the file to change user and group in PHP-FPM is: /etc/php5/fpm/pool.d/www.conf
. In this file change these parameters:
user = www
group = www
listen.owner = www
listen.group = www
To answer your actual question is to just change the user
line in nginx.conf
like so:
user [username];
Example:
user www-data;
The preferred user for Nginx to run as actually differs between operating systems. Sometimes Nginx is supposed to run as www-data
. Other times it is actually supposed to run as nobody
.
On some operating systems (such as Windows), it doesn't even matter, and the user
line in nginx.conf
can be commented out or entirely excluded.
The following solution worked changing the web user with me using Ubuntu 18.04 LTS
, nginx 1.14
and php7.2-fpm
.
1. Nginx
Edit /etc/nginx/nginx.conf
and set the user to webuser;
user webuser;
2. PHP-FPM
Edit /etc/php/7.2/fpm/pool.d/www.conf
.
user = webuser
group = webuser
...
listen.owner = webuser
listen.group = webuser