Apache with Passenger不加载Rails应用程序

时间:2012-09-08 09:10:18

标签: ruby-on-rails ruby linux apache passenger

我正在开发一个Rails应用程序,我正在尝试配置它部署的Web服务器。 我的问题是页面没有加载。

在Apache的error.log中,没有错误,在我的应用log/production.log中,只显示了Connecting to database specified by database.yml行。

我在app的公共文件夹中没有index.html,并且该应用程序在开发环境中运行良好。

我正在使用Ubuntu 12.04的Amazon实例,我已经通过RVM安装了ruby。 在我的httpd.conf中,我有:

LoadModule passenger_module /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerRoot /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17
PassengerRuby /home/ubuntu/.rvm/wrappers/ruby-1.9.3-p194/ruby

Apache启动没有错误。

下面是我的sites-available/default

# other virtualhosts
#

<VirtualHost *:80>
    ServerName my_app.mydomain.com
    ServerAdmin mail@mail.com

    DocumentRoot /home/ubuntu/public_html/my_app/current/public

    <Directory /home/ubuntu/public_html/my_app/current/public>
        Allow from all
        Options -MultiViews
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
</VirtualHost>

现在我该怎么办才能让乘客工作?

2 个答案:

答案 0 :(得分:1)

我决定重新安装Ruby和所有其他东西并转移到nginx。 最后现在我已经全部工作了(在ngnix和apache中)。 如果有人关心的话,这就是我所做的:

Ruby + Rails

通过RVM安装ruby + rails

curl -L https://get.rvm.io | bash -s stable --rails

在所有打开的shell中加载rvm

source ~/.rvm/scripts/rvm

安装宝石

gem install passenger

阿帕奇

安装apache和乘客模块

rvmsudo passenger-install-apache2-module

将这些行复制到/etc/apache2/httpd.conf

LoadModule passenger_module /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerRoot /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17
PassengerRuby /home/ubuntu/.rvm/wrappers/ruby-1.9.3-p194/ruby

nginx的

安装nginx和乘客模块

rvmsudo passenger-install-nginx-module

将这些行复制到/opt/nginx/conf/nginx.conf

passenger_root /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17;
passenger_ruby /home/ubuntu/.rvm/wrappers/ruby-1.9.3-p194/ruby;

设置脚本以允许您控制Nginx

wget -O init-deb.sh http://library.linode.com/assets/660-init-deb.sh
sudo mv init-deb.sh /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
sudo /usr/sbin/update-rc.d -f nginx defaults

您现在可以使用此脚本控制Nginx

sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx start

使用nodejs进行最终设置

你想要的其他一件事是Node.js.这将有助于您在部署中编译资产

sudo apt-add-repository ppa:chris-lea/node.js
sudo apt-get -y update
sudo apt-get -y install nodejs

答案 1 :(得分:0)

我遇到了同样的问题,答案是在unicorn.log文件中。这是控制器中的语法错误。您应该查看乘客日志文件