2014-03-06 108 views
0

我已成功設置的nginx +乘客上我的EC2盒(亞馬遜的Linux)無法在EC2啓動nginx +乘客上啓動Rails服務器。 (Linux的CentOS的)

我必須在每次啓動rails服務器的EC2實例啓動(通過啓動我的意思是,stop然後start

我可以通過進入應用程序目錄,並做passenger start -e p -p 80

啓動服務器但我不能每次啓動時,啓動它。

我試圖把它/etc/rc.local看起來像:

cd /home/ec2-user/myapp 
rvmsudo passenger start -e p -p 80 

但是,這並不工作。甚至嘗試寫一個bash腳本並將其放入/etc/init.d/。它有chmod +x就可以了。但仍然無效。如果我手動運行腳本,如bash start_script.sh。它工作正常。

此外,如果我把東西像mkdir tempfolder它的作品。

爲什麼不啓動rails服務器?

nginx.conf

server { 
     listen  80; 
     server_name localhost; 

     #charset koi8-r; 

     #access_log logs/host.access.log main; 

     location/{ 
      root /home/ec2-user/myapp/public; 
      passenger_enabled on; 
     } 

     #error_page 404    /404.html; 

     # redirect server error pages to the static page /50x.html 
     # 
     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root /home/ec2-user/myapp/public; 
     } 
} 
+0

會發生什麼你的服務器? –

+0

它正常工作。該應用服務正常 – mrudult

+0

所以......一切都很好? –

回答

1

nginx開始,它需要這需要照顧railspassenger照顧AFAIK。

nginx應該在機器啓動時啓動。如果不嘗試運行

sudo update-rc.d nginx defaults 

在更廣泛的注意,不是每一個bash腳本只是init.d下工作。它需要一個an Init Script LSB

我相信這是一個模板,以幫助您創建一個(我從來沒有嘗試過,但 - 所以它是你...):當您瀏覽到https://gist.github.com/naholyr/4275302

+0

我在說如何啓動rails服務器。 ngix確實在啓動時啓動。 – mrudult

+0

乘客是啓動鐵路服務器的人,它由nginx啓動。如果情況並非如此,那麼'nginx.conf'中可能存在問題 - 將其添加到您的問題中。 –

+0

對不起。我的意思是乘客。但我不認爲在系統啓動時應用程序服務器默認啓動。一個人需要手動啓動它們,如果我沒有錯。 – mrudult