Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I deleted the /var/log/nginx/error.log file, and then created a new one using:

sudo nano error.log

Doinga ls -la shows that the error.log and access.log have the same permissions.

When I try and start nginx I get the error:

alert: could not open error log file: open() "/var/log/nginx/error.log" failed permission denited.

Update WHen trying to start nginx, I am also seeing:

emerg: /var/run/ failed 13: permission denied.

share|improve this question
up vote 10 down vote accepted

This doesn't solve your problem, but in the future, if you do

cat /dev/null > /file/you/want/to/wipe-out

you will copy over the contents of the file with nothing, and keep all permissions in tact.

Not nginx-speicific, but Additionally, make sure you are running the application as the user it is supposed to run as. If you ever ran it as root, all the permissions are going to be owned by root, so other users won't be able to run it.

share|improve this answer
great tip thanks. – Blankman Jun 1 '10 at 1:41

have a look in the nginx config, check who the server is running as - at a guess the user will be nginx

so :

chown nginx: /var/run/ chown -R nginx: /var/log/nginx

Should do the trick.

share|improve this answer
but why was it working before? – Blankman Jun 1 '10 at 1:40
I suspect because you tried to run it as root, and then tried starting it with its init script. – Geraint Jones Jun 1 '10 at 3:21
well I always start it like that, hmm.... – Blankman Jun 1 '10 at 9:51
nginx.conf says: "user www-data" – Blankman Jun 1 '10 at 9:54

Delete the error.log file and nginx will create it itself.

share|improve this answer
i deleted it, then when I try and start nginx is gives me the same permission denied error on the file /var/log/nginx/error.log – Blankman May 31 '10 at 19:45
Delete the Log and restart Nginx. It will automatically create the Log. – WhiteHorse Mar 6 at 18:45

First try deleting the file, if that doesn't work check that the nobody user has the right permissions:

share|improve this answer

The usual way to rotate the logs with NginX is to rename the file, and then /etc/init.d/nginx reload. The server starts a new file, and you can do what you wish with the old.

You may also find it useful to edit the configuration to not log as much....

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.