Vagrantの中でUnicornを動かそうとしたときにハマったこと
Vagrantの開発環境の中では、たぶんNginx+Unicornとかを動かすことはそんなに無いと思うのですが、とりあえず勉強のために、素人はそんな環境でも動かしてみたくなります。
その際にハマりましたので、listenの書き方についてのメモです。
まず、Unicornだけで動かす場合は以下でよいと思います。
# Unicornだけを使うなら8080でもよいかもしれない。これで十分動きます。
listen 8080
続いて、Nginxをつかいたかったのでソケットを指定します。
# これはNGです。
# listen File.expand_path('../../tmp/sockets/unicorn.sock', __FILE__)
# 上はつまり下と同じです。
# listen '/vagrant/{project}/tmp/sockets/unicorn.sock'
# これはOKでした。いや、これもちょっと不都合かも...
# listen '/tmp/sockets/unicorn.sock'
# これにしておこう。
listen '/tmp/unicorn.sock'
メモ
- vagrantのSharedFolderの中にソケットは指定しちゃダメとのことです。
- (http://stackoverflow.com/questions/16388342/unicorn-fails-to-start-on-vagrant-box-due-to-errnoeperm) これの正確な根拠まで追えてないので、悲しいです。
- すでにunicorn.sockとか存在してるとエラーになるので、そのような場合は削除しておいてからrails_unicornする。
- ソケット指定のパスは絶対パスで書いておく必要ありらしい。。
- /tmp/socketsというディレクトリは作ったのですが、vagrant reloadするとなんかそのディレクトリは消えちゃいましたので、tmp真下にソケットを用意しておきました..
根拠弱いことばかりですみませんが、自分用メモですので。
なんで、vagrantのShared Folderの中だとだめなんでしょうか?Unicornのソースを読まないとなぁ。。
Author And Source
この問題について(Vagrantの中でUnicornを動かそうとしたときにハマったこと), 我々は、より多くの情報をここで見つけました https://qiita.com/mochizukikotaro/items/a43589795659f689541d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .