I followed this process to installing nginx on my Ubuntu 10.04 Lucid Server http://library.linode.com/web-servers/nginx/installation/ubuntu-10.04-lucid
I got lost after the point of creating an init script to start nginx, and then calling /etc/init.d/nginx start. When I did that, I got the following error:
Starting nginx_main: Starting /opt/nginx/sbin/nginx...
nginx: [alert] could not open error log file: open() "/opt/nginx/logs/error.log" failed (13: Permission denied)
2012/03/16 18:17:27 [emerg] 859#0: open() "/opt/nginx/logs/access.log" failed (13: Permission denied)
The only way I can run it is if I use sudo
and it runs the process as root
, which is what I don't want.
I've chown
'd the entire directory (chown -R nginx:nginx /opt/nginx
) and I've also chmod -R 755
the directory as well.
Adding the user
directive as suggested by CS3 also gives me this error, but with an additional line.
Starting nginx_main: Starting /opt/nginx/sbin/nginx...
nginx: [alert] could not open error log file: open() "/opt/nginx/logs/error.log" failed (13: Permission denied)
2012/03/16 18:48:34 [warn] 1606#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /opt/nginx/conf/nginx.conf:2
2012/03/16 18:48:34 [emerg] 1606#0: open() "/opt/nginx/logs/access.log" failed (13: Permission denied)
Any ideas?
Best Answer
First of all, init scripts are supposed to be run
when you are not logged in as root( when logged-in user is sudo enabled)
Secondly, when you run sudo /etc/init.d/nginx start ==> it fires the master nginx process as root and worker processes as the user you specified in your nginx.conf user directive(eg. www-data)
Can you confirm if all your process under nginx as being run by root when issuing sudo /etc/init.d/nginx start ?
with
eg.
Suggestion: Ubuntu 10.04 LTS has excellent ubuntu package support from nginx team. So, why bother installing from source if you do not have requirement for custom module inside nginx ?
Consult here
The binary package already comes with pretty much needed modules