こういう設定で家庭内で食材検索のWebアプリを動かしていたが、動作させていたMac miniをYosemiteにアップデートしたらアプリのサイトにアクセスできなくなってしまった。
で、調べようとする過程でbrew doctorしようとしたらbrewコマンドも使えなくなってた。
$ brew doctor
/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 26: /usr/local/Library/brew.rb: Undefined error: 0
ので、まずこちらを解決する。
Yosemiteの/System/Library/Frameworks/Ruby.framework/Versionsの下はCurrent と 2.0になっていて、Currentは2.0のシンボリックリンクになっている。
brew.rbを編集。
$ vi /usr/local/Library/brew.rb
#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0 <- これを
#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0 <-こう変える
これでbrew updateとかdoctorとかしようとすると当然怒られるので以下のように。
$ cd /user/local
$ git commit -a -m "ruby version 2.0"
$ brew update
OK.
本題のnginxとunicornの確認。
まず、unicornのポート5000番にブラウザからアクセスしてみると、こちらはアクセス出来ている。
nginxがダメなようだ。
plistをunloadしてnginxを手動で起動して確認してみる。
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
$ nginx
nginx: [warn] the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /usr/local/etc/nginx/nginx.conf:2
nginx: [emerg] mkdir() "/usr/local/var/run/nginx/client_body_temp" failed (2: No such file or directory)
ディレクトリ作成に失敗というメッセージが出たので、手動で作ってみた
$ mkdir -p /usr/local/var/run/nginx/client_body_temp
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
OK.ブラウザから8080番にアクセスしたところ無事アクセス出来た。
###参考