Ror app未在CentOS

时间:2015-04-22 11:14:51

标签: ruby-on-rails apache passenger centos6 centos6.5

我第一次使用CentOS 6.6来部署Rails 4应用程序。我已经安装了所有必要的软件,如MySQL,Ruby,Rails,Passenger,Apache2等。我已经在/var/www/html/index.html中为index.html页面测试了它,并将其设置为Apache配置并且工作正常。< / p>

当我部署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 /

中创建了一个文件vhost.conf
<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>

我在命令

下运行命令
service httpd restart 
service httpd reload

Rails应用程序既不在服务器中运行也不显示任何错误。

任何解决方案都将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

首先,始终检查Apache日志。这一步是必不可少的,但往往被忽视。如果这没有帮助,我会尝试一些事情:

仔细检查the documentation并确保您已完全安装了Passenger,并且没有跳过任何步骤。

首先删除IfModule指令。由于您需要Passenger,因此如果未加载,则需要出现错误消息。

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应用程序的root中定义了config/routes.rb路径。

确保您已经chown -R - 编写了apache用户的应用程序路径。这将有助于您进行故障排除和安全性。

完成所有操作后,再次检查日志。进行更改后,再次检查日志。