Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails:Apache和Passenger的Vhost配置_Apache_Ruby On Rails 4_Apache2_Passenger - Fatal编程技术网

Rails:Apache和Passenger的Vhost配置

Rails:Apache和Passenger的Vhost配置,apache,ruby-on-rails-4,apache2,passenger,Apache,Ruby On Rails 4,Apache2,Passenger,我正在尝试在我的服务器上部署一个简单的Rails 4应用程序,该服务器已经有Apache2,并且正在托管其他几个站点和服务(即在启用站点的情况下有几个vhost配置)。我在本地机器和测试服务器上执行此操作时遇到了一些问题,因此我首先尝试让它在AWS t1.micro实例上工作,只使用一个vhost配置。我已经写了一个脚本来为我完成大部分繁重的工作,它位于我的github上 我在repo中有两个vhost配置文件,并试图让其中一个正常工作。该脚本只是复制并一次启用一个脚本 使用my ruby ap

我正在尝试在我的服务器上部署一个简单的Rails 4应用程序,该服务器已经有Apache2,并且正在托管其他几个站点和服务(即在启用站点的情况下有几个vhost配置)。我在本地机器和测试服务器上执行此操作时遇到了一些问题,因此我首先尝试让它在AWS t1.micro实例上工作,只使用一个vhost配置。我已经写了一个脚本来为我完成大部分繁重的工作,它位于我的github上

我在repo中有两个vhost配置文件,并试图让其中一个正常工作。该脚本只是复制并一次启用一个脚本

使用my ruby app basicmy ruby appvhost config,我可以导航到,但我看到的是“您要查找的页面不存在。您可能键入了错误的地址,或者页面可能已移动。”ttp://54.xxx.xxx.xxx/ 我只得到默认的apache2页面(“它工作!”)

My/var/www/My-ruby-app/log/production.log显示

I, [2014-01-24T10:47:36.900542 #9612]  INFO -- : Started GET "/my-ruby-app" for 80.81.17.94 at 2014-01-24 10:47:36 +0000
F, [2014-01-24T10:47:36.902169 #9612] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/my-ruby-app"):
显然,我需要修改routes.rb文件,但我应该更改什么?从git repo中的脚本可以看出,它只是
rails new
中的默认routes.rb。此时我只想看到默认的rails应用程序登录页,因此我不确定如何处理routes.rb文件

这里是vhost配置

我的ruby应用程序basic

#This is the config suggested by the passenger module after it finishes compiling, modified for 'my-ruby-app'
<VirtualHost *:80>
  ServerName www.my-ruby-app-host.com
  # !!! Be sure to point DocumentRoot to 'public'!
  DocumentRoot /var/www/my-ruby-app/public    
  <Directory /var/www/my-ruby-app/public>
     # This relaxes Apache security settings.
     AllowOverride all
     # MultiViews must be turned off.
     Options -MultiViews
  </Directory>
</VirtualHost>
#这是乘客模块编译完成后建议的配置,为“我的ruby应用程序”修改
服务器名www.my-ruby-app-host.com
# !!! 确保将DocumentRoot指向“public”!
DocumentRoot/var/www/my-ruby-app/public
#这放松了Apache的安全设置。
允许超越所有
#必须关闭“多视图”。
选项-多视图
我的ruby应用程序

#Based on Apache section of Passenger documents
<VirtualHost *:80>
  ServerName www.my-ruby-app-host.com
  # !!! Be sure to point DocumentRoot to 'public'!
  DocumentRoot /var/www/
  <Directory /var/www/>
     Allow from all
  </Directory>

  Alias /my-ruby-app /var/www/my-ruby-app/public
  <Location /my-ruby-app>
     PassengerBaseURI /my-ruby-app
     PassengerAppRoot /var/www/my-ruby-app
  </Location>
  <Directory /var/www/my-ruby-app/public>
     # This relaxes Apache security settings.
     AllowOverride all
     # MultiViews must be turned off.
     Options -MultiViews
  </Directory>
</VirtualHost>
#基于乘客文档的Apache部分
服务器名www.my-ruby-app-host.com
# !!! 确保将DocumentRoot指向“public”!
DocumentRoot/var/www/
通融
别名/my-ruby-app/var/www/my-ruby-app/public
PassengerBaseURI/my ruby应用程序
PassengerAppRoot/var/www/myruby应用程序
#这放松了Apache的安全设置。
允许超越所有
#必须关闭“多视图”。
选项-多视图

使用Apache和Passenger是一个短期解决方案,但我想知道如何在任何情况下做到这一点(长期来看,我想保持与Jruby的兼容性,只需通过Tomcat或Glassfish运行我们的应用程序,这无疑将是另一个Apache配置崩溃;-)

你是说你同时拥有两个vHost吗,还是同时只有一个?顺便说一句,Passenger也支持JRuby,如果你想使用JRuby,没有必要使用Tomcat或Glassfish。我的意思是,在这一点上,我只使用vhost配置之一-我的ruby应用程序或ruby应用程序basic,但不能同时使用两者。当它投入生产时,还有其他vhost需要担心(所有vhost目前只提供静态数据),但这将是唯一的rails应用程序。我不知道关于Jruby和乘客,谢谢你的信息!JRuby已经支持了一年多了。看见那么两个虚拟主机都会给你相同的错误信息?连我的ruby应用程序basic都不能用?