Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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
Ruby on rails Apache乘客配置问题_Ruby On Rails_Configuration_Passenger_Phusion - Fatal编程技术网

Ruby on rails Apache乘客配置问题

Ruby on rails Apache乘客配置问题,ruby-on-rails,configuration,passenger,phusion,Ruby On Rails,Configuration,Passenger,Phusion,几天来,我一直在尝试让rails应用程序在Bluehost上的乘客模式下运行,但没有成功。转到我的子域,我希望它能运行,我只得到一个目录列表,其中包含CGIBIN和public子目录。不执行rails应用程序 httpd.conf包括: LoadModule passenger_module /usr/local/rvm/gems/ruby-2.2.1/gems/passenger-5.0.6/buildout/apache2/mod_passenger.so <IfModule mod_

几天来,我一直在尝试让rails应用程序在Bluehost上的乘客模式下运行,但没有成功。转到我的子域,我希望它能运行,我只得到一个目录列表,其中包含CGIBIN和public子目录。不执行rails应用程序

httpd.conf包括:

LoadModule passenger_module /usr/local/rvm/gems/ruby-2.2.1/gems/passenger-5.0.6/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/rvm/gems/ruby-2.2.1/gems/passenger-5.0.6
  PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.2.1/wrappers/ruby
</IfModule>
LoadModule乘客舱/usr/local/rvm/gems/ruby-2.2.1/gems/passenger-5.0.6/buildout/apache2/mod乘客舱
PassengerRoot/usr/local/rvm/gems/ruby-2.2.1/gems/passenger-5.0.6
PassengerDefaultRuby/usr/local/rvm/gems/ruby-2.2.1/wrappers/ruby


ServerName secure.xxxxx.com
ServerAlias www.secure.xxxxx.com
DocumentRoot/home/diamoou1/public_html/securefinance
服务器管理员webmaster@secure.xxxxx.com
UseCononicalName关闭
CustomLog/usr/local/apache/domlogs/secure.xxxxx.com组合
CustomLog/usr/local/apache/domlogs/secure.xxxxx.com-bytes_log“%{%s}t%I。\n%{%s}t%O。”
##Cpanel::ApacheConf需要用户diamoou1
已启用UserDir的diamoou1
suPHP_用户组diamoou1 diamoou1
SuexecUserGroup diamoou1 diamoou1
RUidGid diamou1 diamou1
ScriptAlias/cgi-bin//home/diamoou1/public_html/securefinance/cgi-bin/
选项-多视图
允许超越所有
在/home/diamoou1/public_html/securefinance/public中,我有.htaccess文件:

<IfModule mod_passenger.c>
  Allow from all
  Order Deny,Allow
  Options +FollowSymLinks -SymLinksIfOwnerMatch -MultiViews
  PassengerResolveSymlinksInDocumentRoot on
  #Set this to whatever environment you'll be running in
  RailsEnv production
  RackBaseURI /
  SetEnv GEM_HOME /home/diamoou1/ruby/gems
</IfModule>

通融
命令拒绝,允许
选项+以下符号链接-符号链接所有者匹配-多视图
PassengerResolveSymlinksInDocumentRoot打开
#将此设置为要在其中运行的任何环境
RailsEnv生产
RackBaseURI/
SetEnv GEM_HOME/HOME/diamoou1/ruby/gems
在.htaccess文件中临时放置一个错误行将在日志中给出预期的错误,因此显然apache正在读取.htaccess文件

我怀疑问题可能在RackBaseURI中。我将Passenger安装为root。RackBaseURI解析为/root,并且有一个/root/public_html目录,尽管apache提供了/home/diamoou1/public_html/securefinance目录(rails应用程序实际驻留的地方)。我不知道如何改变这个变量,或者这才是真正的问题。PassengerBaseURI也是这样

我该怎么做才能解决这个问题?

这可能会帮助您:

以下是Phusion Passenger提供的示例配置:

<VirtualHost *:80>
    ServerName www.rackexample.com
    DocumentRoot /webapps/rack_example/public
    <Directory /webapps/rack_example/public>
        Allow from all
        Options -MultiViews
        # Uncomment this if you're on Apache >= 2.4:
        #Require all granted
    </Directory>
</VirtualHost>

服务器名www.rackexample.com
DocumentRoot/webapps/rack\u示例/公共
通融
选项-多视图
#如果您使用的是Apache>=2.4,请取消对此的注释:
#要求所有授权
DocumentRoot和Directory应该指向rails应用程序的公用文件夹,而不是根目录

您应该更改:

...
DocumentRoot /home/diamoou1/public_html/securefinance
...
<Directory /home/diamoou1/public_html/securefinance>
...
。。。
DocumentRoot/home/diamoou1/public_html/securefinance
...
...
致:

。。。
DocumentRoot/home/diamoou1/public\u html/securefinance/public
...
...

我可以建议一些有用的调试方法,这些方法可能会给出一些提示,说明中间件堆栈中哪些是/不工作的(包括机架)。在生产机器上运行此命令:“rake中间件RAILS_ENV=production”。我发现它有助于追踪我的应用程序没有被加载的原因。谢谢你的建议,但这会产生一个设置列表,我在其中找不到任何提示。该列表与我在另一台正常工作的机器上的另一个应用程序上运行相同命令时的结果几乎相同。唯一的区别是一行:“use Rack::Lock”与“use ActionDispatch::Static”唯一的区别是一行:“use Rack::Lock”与“use ActionDispatch::Static”“现在你有了一个起点。集中注意力。不幸的是,这不是一个很好的起点。use Rack::Lock只需设置多线程标志并将应用程序包装在互斥锁中。ActionDispatch::Static用于提供静态文件。这两种方法都不能解释为什么rails根本没有运行,那么它就不在中间件中了。你可能不会得到一个束手无策的答案,你可能必须一次解决一个潜在的问题源。祝你好运。
...
DocumentRoot /home/diamoou1/public_html/securefinance
...
<Directory /home/diamoou1/public_html/securefinance>
...
...
DocumentRoot /home/diamoou1/public_html/securefinance/public
...
<Directory /home/diamoou1/public_html/securefinance/public>
...