【问题标题】:Directory Listing shows instead of Rails App - Passenger Apache CentOS 6目录列表显示而不是 Rails 应用程序 - 乘客 Apache CentOS 6
【发布时间】:2016-01-26 01:44:24
【问题描述】:

我有一个 CentOS 6 服务器,安装了 cPanel、Apache、Passenger、Ruby 和 Rails。

我的网站是使用 cPanel 托管的。

当我转到 mysite.org/mysuburi 时,我得到的是 rails 应用程序的公共目录 (/myrailsapp/public) 的目录列表,而不是 rails 应用程序本身。

这是我的/usr/local/apache/conf/httpd.conf

<VirtualHost my.ip.add.ress:80>
  ServerName mysite.org
  ServerAlias www.mysite.org
  DocumentRoot /home/mysite/public_html
  ServerAdmin webmaster@mysite.org
  UseCanonicalName Off
  CustomLog /usr/local/apache/domlogs/mysite.org combined
  <IfModule log_config_module>
    <IfModule logio_module>
      CustomLog /usr/local/apache/domlogs/mysite.org-bytes_log "%{%s}t %I .\n%{%s}t %O ."
    </IfModule>
  </IfModule>
  ## User mysite # Needed for Cpanel::ApacheConf
  <IfModule userdir_module>
    <IfModule !mpm_itk.c>
      <IfModule !ruid2_module>
        UserDir enabled mysite
      </IfModule>
    </IfModule>
  </IfModule>

  # Enable backwards compatible Server Side Include expression parser for Apache versions >= 2.4.
  # To selectively use the newer Apache 2.4 expression parser, disable SSILegacyExprParser in
  # the user's .htaccess file.  For more information, please read:
  #    http://httpd.apache.org/docs/2.4/mod/mod_include.html#ssilegacyexprparser
  <IfModule include_module>
    <Directory "/home/mysite/public_html">
      SSILegacyExprParser On
    </Directory>
  </IfModule>

  <IfModule suphp_module>
    suPHP_UserGroup mysite mysite
  </IfModule>
  <IfModule concurrent_php.c>
    php4_admin_value open_basedir "/home/mysite:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
    php5_admin_value open_basedir "/home/mysite:/usr/lib/php:/usr/local/lib/php:/tmp"
  </IfModule>
  <IfModule !concurrent_php.c>
    <IfModule mod_php4.c>
      php_admin_value open_basedir "/home/mysite:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
    </IfModule>
    <IfModule mod_php5.c>
      php_admin_value open_basedir "/home/mysite:/usr/lib/php:/usr/local/lib/php:/tmp"
    </IfModule>
    <IfModule sapi_apache2.c>
      php_admin_value open_basedir "/home/mysite:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
    </IfModule>
  </IfModule>
  <IfModule !mod_disable_suexec.c>
    <IfModule !mod_ruid2.c>
      SuexecUserGroup mysite mysite
    </IfModule>
  </IfModule>
  <IfModule ruid2_module>
    RMode config
    RUidGid mysite mysite
  </IfModule>
  <IfModule mpm_itk.c>
    # For more information on MPM ITK, please read:
    #   http://mpm-itk.sesse.net/
    AssignUserID mysite mysite
  </IfModule>

  <IfModule alias_module>
    ScriptAlias /cgi-bin/ /home/mysite/public_html/cgi-bin/
  </IfModule>

  Include "/usr/local/apache/conf/userdata/std/2_4/mysite/mysite.org/*.conf"
</VirtualHost>

(注意主块最后一行,表示更多配置)

我的/usr/local/apache/conf/userdata/std/2_4/mysite/mysite.org/rails.conf

RailsEnv development
RackEnv development

<Directory /home/mysite/rails_apps/myrailsapp/public>
        Options -MultiViews +FollowSymLinks
</Directory>

RailsBaseURI /mysuburi

Alias /mysuburi /home/mysite/rails_apps/myrailsapp/public
<Location /mysuburi>
        PassengerBaseURI /mysuburi
        PassengerAppRoot /home/mysite/rails_apps/myrailsapp
</Location>

<Directory /home/mysite/rails_apps/myrailsapp/public>
        Allow from all
        Options -MultiViews
        # Uncomment this if you're on Apache >= 2.4:
        Require all granted
</Directory>

PassengerResolveSymlinksInDocumentRoot on

我的/usr/local/apache/conf/includes/pre_main_global.conf

Include "/usr/local/apache/conf/passenger.conf"

我的/usr/local/apache/conf/passenger.conf

   LoadModule passenger_module /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.21/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.21
     PassengerDefaultRuby /usr/local/bin/ruby
   </IfModule>

ruby -v; rails -v; passenger -v的输出:

ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
Rails 4.2.4
Phusion Passenger version 5.0.21

我还将我的应用程序的公共目录符号链接到我的 public_html 文件夹中的子文件夹,如下所示:

/home/mysite/rails_apps/myrailsapp/public /home/mysite/public_html/mysuburi

passenger-status的输出:

----------- General information -----------
Max pool size : 6
App groups    : 0
Processes     : 0
Requests in top-level queue : 0

----------- Application groups -----------

我束手无策...谁能帮我解决这个令人头疼的问题?

更新:安装了两个版本的乘客。我卸载了两者并重新安装了 5.0.21,然后更新了 Passenger.conf 文件。仍然有同样的问题,同样的配置和输出。

【问题讨论】:

    标签: ruby-on-rails ruby apache centos cpanel


    【解决方案1】:

    我不知道为什么,但它随机开始工作。我已经向 MediaTemple(我的服务器提供商)开了一张支持票,提供了所有这些详细信息,第二天它就开始工作了。我没有收到任何反馈,所以我不知道做了什么。我问他们做了什么来修复它,如果他们告诉我,我会在这里发布。

    【讨论】:

      【解决方案2】:

      我有同样的问题。我在 serverfault 上找到了这个答案,这节省了我的时间: https://serverfault.com/questions/731814/apachepassenger-not-serving-the-root-of-the-sinatra-application

      他建议禁用 autoindex_module 的加载,因为 Apache 2.4.17 中的一个错误与对我有用的Passenger 结合使用。

      【讨论】:

      • 我没有使用那个模块。我什至没有安装它。我可以尝试禁用其他模块...我目前正在使用:httpd.explibphp5.somod_bwlimited.somod_disable_suexec.somod_security2.somod_suphp.so
      • 抱歉,这是不行的……不过,感谢您提请我注意
      猜你喜欢
      • 2013-06-03
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      相关资源
      最近更新 更多