2014年11月29日土曜日

【nginx】nginxがうまく起動しなくてログおっかけて修正するだけで数時間かかった。


相変わらず下記の本を読みながらCI環境構築を進めてるんだけどnginxがうまく起動しなかった。
CakePHPで学ぶ継続的インテグレーションCakePHPで学ぶ継続的インテグレーション
渡辺 一宏,吉羽 龍太郎,岸田 健一郎,穴澤 康裕,丸山 弘詩

エラー

本では vagrant provision するとChefがnginxの設定や起動までやってくれてすぐにindex.phpに繋がるよ!って書いてあるんだけどどうにもこうにも繋がらない。

vagrant sshで対象の仮想マシンに繋いでnginxの状態を調べてみると…
vagrant@develop:~$ service nginx status
 * nginx is not running
nginx起動してないじゃん…
あと良くわからないのがstartしても何も応答がないんだよね・・・
vagrant@develop:~$ service nginx start
vagrant@develop:~$ service nginx start
vagrant@develop:~$ service nginx status
 * nginx is not running
vagrant@develop:~$ 

ログ確認

じゃあnginxの起動ログ見てみようってことで探した。
参考:http://heartbeats.jp/hbblog/2012/02/nginx03.html
エラーログは「/var/log/nginx/error.log」ってとこにあるらしい。

ログを見ると…ファイルはあるけど現在時刻では何も残ってない…
もしかしてssh接続したユーザーって起動コマンド打てない?って思ってsudoで再実行。
vagrant@develop:~$ sudo service nginx start
vagrant@develop:~$ 
そうしたらログに行が増えてた
2014/11/29 09:20:15 [emerg] 12499#0: invalid number of arguments in "root" directive in /etc/nginx/sites-enabled/test:5

testって設定ファイルがおかしーよ!って言われてるっぽいなぁ。

原因

testってファイルは
VagrantからChef経由でサーバーに作ったファイル。
見てみる。

test
server {
        listen 80;

        root /var/www/application/current/app/webroot
        index index.php index.html index.htm;

        server_name test.localhost;

        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
                try_files $uri =404;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_intercept_errors on;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param CAKE_ENV test;
        }
}
4行目…セミコロンないよねorz

修正

ホストマシンのtest.erbを修正し、
「rm -rf cookbooks」でcookbooksフォルダを一旦削除、
「bundle exec berks vendor ./cookbooks」でBerkshelfを使ってcookbookを再作成
「vagrant provision」で仮想マシンへ再度反映

結果

動いたーーーーーーーー
こんな凡ミスで数時間持ってかれた…。
まぁコマンド試行錯誤しててちょっとUNIXに慣れた気がするしいいか。

スポンサーリンク

Related Posts Plugin for WordPress, Blogger...