Я удалил файл /var/log/nginx/error.log , а затем создал новый, используя:

sudo nano error.log

Выполнение ls -laпоказывает, что error.log и access.log имеют одинаковые разрешения.

Когда я пытаюсь запустить nginx, я получаю сообщение об ошибке:

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

Обновлять

При попытке запустить nginx я также вижу:

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

answer

Это не решит вашу проблему, но в будущем, если вы решите

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

вы будете копировать содержимое файла ни с чем и сохраните все разрешения в действии.

Не для nginx, но, кроме того, убедитесь, что вы запускаете приложение от имени пользователя, от имени которого оно должно запускаться. Если вы когда-либо запускали его как root, все разрешения будут принадлежать root, поэтому другие пользователи не смогут его запустить.

Обычный способ ротации журналов с помощью NginX - это переименовать файл, а затем /etc/init.d/nginx reload. Сервер запускает новый файл, и вы можете делать со старым все, что хотите.

Вы также можете найти полезным отредактировать конфигурацию, чтобы не регистрироваться так много ....

посмотрите конфигурацию nginx, проверьте, от кого запущен сервер - предположительно, пользователь будет nginx

так :

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

Должен сделать свое дело.

Удалите файл error.log, и nginx сам создаст его.

To re-size the file to 0 bytes, without having to re-load or re-start nginx, use the truncate command:

sudo truncate --size 0 /var/log/nginx/access.log

Следовал указаниям в этом посте из-за моего варианта использования, требующего использования sudo.

Сначала попробуйте удалить файл, если это не сработает, проверьте, что ни один пользователь не имеет необходимых разрешений:
http://derekneely.com/2009/06/nginx-failed-13-permission-denied- while-reading-upstream/