2015-04-22 54 views
1

我第一次使用CentOS 6.6來部署Rails 4應用程序。我已經安裝了MySQL,Ruby,Rails,Passenger,Apache2等所有必要的軟件。我已經在/var/www/html/index.html裏面的index.html頁面測試了它,並將它設置在Apache配置上並且工作得很完美。ROR應用程序未在CentOS上運行

當我部署了Rails應用程序時,它確實在服務器上運行,但它顯示如下面的截圖所示。

enter image description here

以下是我迄今所做的我的Apache配置設置。

/etc/httpd/conf/httpd.conf中

LoadModule passenger_module /home/user/.rvm/gems/ruby-2.1.2/gems/passenger-5.0.6/buildout/apache2/mod_passenger.so 
<IfModule mod_passenger.c> 
    PassengerDefaultRuby /home/user/.rvm/wrappers/ruby-2.1.2/ruby 
    PassengerRoot /home/user/.rvm/gems/ruby-2.1.2/gems/passenger-5.0.6 
</IfModule> 

我已經創建了內部/etc/httpd/conf.d/

<VirtualHost *:80> 
    ServerName myipaddress 
    DocumentRoot /var/www/html/projectname/public_html/current/public 
    <Directory /var/www/html/projectname/public_html/current/public> 
    # This relaxes Apache security settings. 
    AllowOverride all 
    # MultiViews must be turned off. 
    Options -MultiViews 
    # Uncomment this if you're on Apache >= 2.4: 
    #Require all granted 
    </Directory> 

文件vhost.conf我運行命令下面的命令

service httpd restart 
service httpd reload 

Rails應用程序在服務器上運行也沒有顯示任何錯誤。

任何解決方案,將不勝感激。提前致謝。

回答

1

首先和總是檢查Apache日誌。這一步是必不可少的,但往往被忽視。如果這沒有幫助,我會嘗試幾件事:

仔細檢查the documentation並確保您已完全安裝乘客,並沒有跳過一步。

從刪除IfModule指令開始。既然你想乘客,你想要一個錯誤信息,如果它沒有加載。

LoadModule passenger_module /home/user/.rvm/gems/ruby-2.1.2/gems/passenger-5.0.6/buildout/apache2/mod_passenger.so 
PassengerDefaultRuby /home/user/.rvm/wrappers/ruby-2.1.2/ruby 
PassengerRoot /home/user/.rvm/gems/ruby-2.1.2/gems/passenger-5.0.6 

你有你的IP地址作爲你的服務器名稱。確保這與其他配置(其他站點或httpd.conf)不衝突。否則,您可能正在加載不同的頁面/應用程序。

根據您的設置,您可能會遇到權限問題,因爲您將PassengerDefaultRubyPassengerRoot指向/home/user/.rvm。按照慣例,這些通常是更公開的地方,如/var/lib/gems//usr/bin/

確保您在Rails應用程序的config/routes.rb中定義了root路徑。

確保您已將chown -R -ed您的應用程序路徑給apache用戶。這將幫助您排除故障和提高安全性。

完成所有操作後,再次檢查日誌。進行更改後,請再次檢查日誌。

+0

感謝您的回答。是的,你是對的一些許可問題在那裏。我以root用戶身份再次安裝了所有內容,併爲我工作。 –

+0

太棒了!很高興爲你工作。祝你好運。 – Travis