2013-05-05 21 views
7

私はベイグラントボックス(Ubuntuの-12.04.2-サーバー-I386)にシナトラアプリのユニコーンを開始するには、次のコマンドを実行しますユニコーンが原因errnoにベイグラントボックスに起動に失敗:: EPERM

sudo unicorn -c unicorn.rb -E development -D -l 0.0.0.0:8080 

Unicornのログに次のエラーが表示されます。

I, [2013-05-05T19:15:15.538805 #2357] INFO -- : listening on addr=0.0.0.0:8080 fd=5 
F, [2013-05-05T19:15:15.541673 #2357] FATAL -- : error adding listener addr=/home/vagrant/tmp/myapp/sockets/unicorn.sock 
/home/vagrant/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/unicorn-4.3.1/lib/unicorn/socket_helper.rb:140:in `initialize': Operation not permitted - "/home/vagrant/tmp/myapp/sockets/unicorn.sock" (Errno::EPERM) 

私は浮浪者ユーザーとしてログインしていると私はコードを見ているhttp://recipes.sinatrarb.com/p/deployment/nginx_proxied_to_unicorn

@dir = '/home/vagrant/myapp/' 

worker_processes 4 
working_directory @dir 

timeout 30 

listen "#{@dir}tmp/sockets/unicorn.sock", :backlog => 64 
pid "#{@dir}tmp/pids/unicorn.pid" 

stderr_path "#{@dir}log/unicorn.stderr.log" 
stdout_path "#{@dir}log/unicorn.stdout.log" 

ごとにunicorn.rbを設定しているし、それが初期化に失敗し、次の

Kgio::UNIXServer.new('0.0.0.0:8080') 
+1

私はRailsアプリケーションでまったく同じ問題を抱え始めました。あなたが持っているものと非常に似た構成です。 –

答えて

16

Unicornはバーチャルボックス共有フォルダに.sockファイルを保存できませんので、ソケットの変更は次のようにしてください:

VBoxの共有フォルダの外

listen "/tmp/sockets/unicorn.sock", :backlog => 64 

またはいくつかの他の場所:これに

listen "#{@dir}tmp/sockets/unicorn.sock", :backlog => 64 

+0

ありがとう問題が解決しました! – jamesshipton

+0

何らかの理由でこのオプションを実行できない場合はどうなりますか?この問題を解決できるVagrantの構成はありませんか?さらに、なぜ ".sockファイルをバーチャルボックス共有フォルダに保存"できないのですか? – Agis

+0

これは、共有フォルダを使用しようとしているときに、迷惑メールのソケット関連の問題の大半に役立つと思います。誰かが@Agisに答えるための回避策を与えることができれば素晴らしいだろう。 – jonnybazookatone

関連する問題