As the title says, I have a server where nginx was originally installed by the root user. I now want to run nginx as a non-root user, a new user that I added to both the sudo
the www-data
groups.
When I try to run nginx from this new user, I get the following message:
nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
2016/08/09 22:07:52 [warn] 17609#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1
2016/08/09 22:07:52 [emerg] 17609#0: open() "/var/log/nginx/access.log" failed (13: Permission denied)
I’m confused why this is an issue—I changed the owner and group of /var/log/nginx/
to www-data
. The nginx master process user is root
, which I believe is correct, and the sub-processes are running (or trying to run) as www-data
. The file permissions for error.log
and 'access.log` are 755. What am I missing?
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
I received some advice that solved my problem and seems to be sound counsel. I’m now starting the server from the non-root account using sudo and all is well. One little trick!
I ran into this exact problem, which had me stumped for a while. The problem is that nginx needs to execute as root and let the user directive in the /etc/nginx/nginx.conf handle running everything as the correct user. For me, I had the sytemd job defining the user to run nginx as.
possible right answer is: sudo nginx -t try nginx self check from sudo user.
Your Nginx web-user isnt permitted to access the logs. Modify the permissions with:
sudo chown -R www-data:www-data /var/log/nginx;
sudo chmod -R 755 /var/log/nginx;
I got it fixed by running this command: sudo /etc/init.d/nginx start
:)
Another bump
Quick bump
Thanks for the suggestion! I tried it out with no luck. I can’t even cd
into the /var/log/nginx/
directory without sudo, an issue I’ve never had before. Permissions are definitely set to 766, though:
drwxrw-rw- 2 www-data www-data 4096 Aug 8 12:15 nginx
Try setting the permissions for /var/log/nginx/
to 766.
sudo chmod -R 766 /var/log/nginx/
Thanks for the suggestion. Here’s what I see after running that command:
Hi! Can you post the output of the following command?