我第一次使用CentOS 6.6来部署Rails 4应用程序。我已经安装了所有必要的软件,如MySQL,Ruby,Rails,Passenger,Apache2等。我已经在/var/www/html/index.html中为index.html页面测试了它,并将其设置为Apache配置并且工作正常。< / p>
当我部署Rails应用程序时,它确实在服务器上运行,但它显示如下面的屏幕截图所示。
以下是我迄今为止所做的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应用程序既不在服务器中运行也不显示任何错误。
任何解决方案都将不胜感激。提前谢谢。
答案 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)冲突。否则,您可能只是加载不同的页面/应用程序。
根据您设置的方式,您可能会遇到权限问题,因为您将PassengerDefaultRuby
和PassengerRoot
指向/home/user/.rvm
。按照惯例,这些通常是更公开的地方,例如/var/lib/gems/
和/usr/bin/
。
确保您已在Rails应用程序的root
中定义了config/routes.rb
路径。
确保您已经chown -R
- 编写了apache用户的应用程序路径。这将有助于您进行故障排除和安全性。
完成所有操作后,再次检查日志。进行更改后,再次检查日志。