オープンソースこねこね

Webプログラミングなどについてあれこれ。

nginxでerror_log出力先を設定ファイルで指定しても`/var/log/nginx/error.log`を読みにいってしまう件

nginx.conf

error_log  /path/to/error.log;

とか書いて、デフォルトと異なる場所にエラーログを出力するようにしてみたら、起動時に

nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)

とか警告が出てしまってました。なんで出力先変更したのに/var/log/nginx/error.logを読みに行ってしまうのか〜、と調べていたら いつものようにStackOverflowで質問が見つかって、ありがとうございます、と。

なんでも、起動してコンフィグファイルを読みに行くまでの間にnginxはコンパイル時に指定したエラーログ出力先(私の環境の場合(CentOS)は/var/log/nginx/error.log)を使うとのこと。

How to turn off or specify the nginx error log location? - Stack Overflow

上記から、リンクされている公式ドキュメントにもちゃんと記載がありました。

CoreModule - Nginx Community

というわけで、起動時のエラーも/var/log/nginx/error.log以外に向けたい場合はconfigureオプションを指定してソースから入れなおすしかないわけだけど、個人的にやりたくないんですよねソースからのインストール。悩ましいぃぃ。