CentOS 上的 Ror 应用程序未 运行
Ror app not running on CentOS
我是第一次使用 CentOS 6.6 来部署 Rails 4 应用程序。我已经安装了所有必要的软件,如 MySQL、Ruby、Rails、Passenger、Apache2 等。我已经针对 /var/www/html/index 内的 index.html 页面对其进行了测试。html 并将其设置为 Apache 配置并完美运行。
当我部署 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 应用程序 运行 未在服务器上运行,也未显示任何错误。
任何解决方案将不胜感激。提前致谢。
首先并且始终检查 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
。按照惯例,这些通常在更 public 的地方,例如 /var/lib/gems/
和 /usr/bin/
.
确保您在 Rails 应用程序的 config/routes.rb
中定义了 root
路径。
确保您已经 chown -R
-ed 您的应用程序路径到 apache 用户。这将帮助您解决问题并确保安全。
完成所有操作后,再次检查日志。进行更改后,再次检查日志。
我是第一次使用 CentOS 6.6 来部署 Rails 4 应用程序。我已经安装了所有必要的软件,如 MySQL、Ruby、Rails、Passenger、Apache2 等。我已经针对 /var/www/html/index 内的 index.html 页面对其进行了测试。html 并将其设置为 Apache 配置并完美运行。
当我部署 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 应用程序 运行 未在服务器上运行,也未显示任何错误。
任何解决方案将不胜感激。提前致谢。
首先并且始终检查 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
。按照惯例,这些通常在更 public 的地方,例如 /var/lib/gems/
和 /usr/bin/
.
确保您在 Rails 应用程序的 config/routes.rb
中定义了 root
路径。
确保您已经 chown -R
-ed 您的应用程序路径到 apache 用户。这将帮助您解决问题并确保安全。
完成所有操作后,再次检查日志。进行更改后,再次检查日志。