我正在开发一个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>
现在我该怎么办才能让乘客工作?
答案 0 :(得分:1)
我决定重新安装Ruby和所有其他东西并转移到nginx。 最后现在我已经全部工作了(在ngnix和apache中)。 如果有人关心的话,这就是我所做的:
通过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和乘客模块
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
你想要的其他一件事是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文件中。这是控制器中的语法错误。您应该查看乘客日志文件