2013-05-05 11 views
7

başlayacak başarısız benim Serseri kutunun üstüne Sinatra uygulamasından (ubuntu-12.04.2-sunucu-i386)Unicorn nedeniyle ErrNo için Serseri kutu :: eper

sudo unicorn -c unicorn.rb -E development -D -l 0.0.0.0:8080 
için Unicorn başlatmak için aşağıdaki komutu çalıştırdığınızda

Unicorn günlüklerinde aşağıdaki hatayı alıyorum.

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) 

ben serseri kullanıcı olarak giriş ediyorum ve kod üzerinden baktım 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" 

uyarınca unicorn.rb yapılandırmış ve başlatmakta başarısız aşağıdaki

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

Sadece Rails uygulamasıyla aynı sorunu yaşamaya başladım. Sahip olduğunuzla çok benzer bir yapılandırma. –

cevap

16

Tekboynuz .sock dosyasını bir Sanal Kutu Paylaşımlı Klasöründe saklayamaz, bu nedenle yapmanız gereken şey şu soket için değiştirmektir:

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

:

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

Veya Vbox dışında bazı diğer konum klasörü paylaştı.

+0

teşekkürler sorun çözüldü! – jamesshipton

+0

Bu seçenek bir nedenden dolayı uygun değilse ne olur? Bunu çözebilecek Vagrant'ta bir konfigürasyon yok mu? Ayrıca, neden bir ".sock dosyasını bir sanal kutu paylaşımlı klasörde saklayamaz"? – Agis

+0

Bu paylaşılan klasörler kullanmaya çalışırken soket ile ilgili sorunların çoğu için yararlı olduğunu söyleyebilirim. Birisi, @Agis cevapları harika olacak bir geçici çözüm verebilecek olsaydı. – jonnybazookatone