web-dev-qa-db-ja.com

nginxエラーログが巨大だったため、削除して新しいログを作成しましたが、nginxが起動しません

/ var/log/nginx/error.logファイルを削除し、次を使用して新しいファイルを作成しました。

Sudo nano error.log

やっているls -laは、error.logaccess.logが同じ権限を持っていることを示しています。

Nginxを起動しようとすると、エラーが発生します。

アラート:エラーログファイルを開けませんでした:open() "/var/log/nginx/error.log"失敗した権限が拒否されました。

更新

Nginxを起動しようとすると、次も表示されます。

emerg:/var/run/nginx.pid failed 13:権限が拒否されました。

11
Blankman

これはあなたの問題を解決しませんが、将来的には

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

ファイルの内容を何もコピーせずにコピーし、すべての権限をそのまま保持します。

Nginx特有ではありませんが、アプリケーションを実行することになっているユーザーとしてアプリケーションを実行していることを確認してください。これをrootとして実行したことがある場合、すべての権限はrootが所有するため、他のユーザーはそれを実行できません。

25
Alex

NginXでログをローテーションする通常の方法は、ファイルの名前を変更してから/etc/init.d/nginx reload。サーバーは新しいファイルを開始し、古いファイルで希望どおりの操作を実行できます。

あまりログに記録しないように設定を編集すると便利な場合もあります。

5
Alister Bulman

nginxの設定を見て、サーバーが実行されている人を確認してください-ユーザーはnginxになると思います

そう :

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

トリックを行う必要があります。

2
Geraint Jones

Error.logファイルを削除すると、nginxがそれ自体を作成します。

1

最初にファイルを削除してみてください。それが機能しない場合は、nobodyユーザーに適切な権限があることを確認してください。
http://derekneely.com/2009/06/nginx-failed-13-permission-denied-while-reading-upstream/

0
emmanuel