相変わらず下記の本を読みながらCI環境構築を進めてるんだけどnginxがうまく起動しなかった。
CakePHPで学ぶ継続的インテグレーション 渡辺 一宏,吉羽 龍太郎,岸田 健一郎,穴澤 康裕,丸山 弘詩 |
エラー
本では vagrant provision するとChefがnginxの設定や起動までやってくれてすぐにindex.phpに繋がるよ!って書いてあるんだけどどうにもこうにも繋がらない。vagrant sshで対象の仮想マシンに繋いでnginxの状態を調べてみると…
vagrant@develop:~$ service nginx status * nginx is not runningnginx起動してないじゃん…
あと良くわからないのが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に慣れた気がするしいいか。