LoginSignup
7

More than 5 years have passed since last update.

OS X YosemiteにアップデートしたらHomebrewでインストールして自動起動設定にしていたnginxのサイトにアクセスできなくなった

Last updated at Posted at 2014-10-29

こういう設定で家庭内で食材検索の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番にアクセスしたところ無事アクセス出来た。

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7