【问题标题】:Rails app only displaying public directory with passengerRails 应用程序仅显示有乘客的公共目录
【发布时间】:2014-02-08 00:44:36
【问题描述】:

当我转到 url 时,我的 rails 应用程序只会显示公共目录。 我正在使用 apache、passenger 和 ubuntu。 我的 apache virtualhosts 文件是;

<VirtualHost *:80>
    ServerName www.phusion.nl
    DocumentRoot /websites/phusion
    <Directory /websites/phusion>
        Allow from all
    </Directory>

    # These have been added:
    Alias /subapp /websites/rails/public
    <Location /subapp>
        PassengerBaseURI /subapp
        PassengerAppRoot /websites/rails
    </Location>
    <Directory /websites/rails/public>
        Allow from all
        Options -MultiViews
    </Directory>
</VirtualHost>

我认为一切都已正确安装,我的 config.ru 是;

require ::File.expand_path('../config/environment',  __FILE__)
run Rails.application

我在 apache2.conf 中添加了以下内容;

LoadModule passenger_module /home/vps/.rvm/gems/ruby-2.0.0-p353/gems/passenger-4.0.35/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
   PassengerRoot /home/vps/.rvm/gems/ruby-2.0.0-p353/gems/passenger-4.0.35
   PassengerDefaultRuby /home/vps/.rvm/gems/ruby-2.0.0-p353/wrappers/ruby
</IfModule>

apache error.log 给出的;

    All Phusion Passenger agents started!
    [ 2014-01-19 09:05:23.8076 12140/7f1e3695c740 agents/Watchdog/Main.cpp:526 ]: 
Options: { 'analytics_log_user' => 'nobody', 'default_group' => 'nogroup', 'default_python' => 'python', 'default_ruby' => '/home/vps/.rvm/gems/ruby-2.0.0-p353/wrappers/ruby', 'default_user' => 'nobody', 'log_level' => '0', 'max_pool_size' => '6', 'passenger_root' => '/home/vps/.rvm/gems/ruby-2.0.0-p353/gems/passenger-4.0.35', 'passenger_version' => '4.0.35', 'pool_idle_time' => '300', 'temp_dir' => '/tmp', 'union_station_gateway_address' => 'gateway.unionstationapp.com', 'union_station_gateway_port' => '443', 'user_switching' => 'true', 'web_server_passenger_version' => '4.0.35', 'web_server_pid' => '12137', 'web_server_type' => 'apache', 'web_server_worker_gid' => '33', 'web_server_worker_uid' => '33' }

【问题讨论】:

  • 你能给你服务器上的 rails 应用程序的完整路径吗?是否确实要将应用部署到子 URI?
  • 它必须是一个子 uri。完整路径是 /var/www/subapp
  • 如果您的应用位于 /var/www/subapp 中,为什么 Directory 指向 /websites/rails/public
  • 不是,只是一个例子
  • 如果您能给我们您的配置文件的真实内容,那就太好了。

标签: ruby-on-rails apache ruby-on-rails-4 apache2 passenger


【解决方案1】:

呃……

我将PassengerAppRoot 设置为public 文件夹,而不是rails root。

【讨论】:

  • 您好,您能否详细说明您为解决此问题所做的工作?我也有类似情况
  • 仅供参考,我正在使用 AWS + OpsWorks...不确定您使用的是什么
【解决方案2】:

这个问题可能是因为你安装Passenger模块的方式

错误的方式:sudopassenger-install-apache2-module

正确的方式:rvmsudopassenger-install-apache2-module

我只是猜测您使用了导致此问题的第一个,如果我错了,请纠正我。

【讨论】:

  • 我用 rvmsudo 安装
猜你喜欢
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 2016-01-26
  • 2012-04-01
  • 2017-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多