【问题标题】:Phusion passenger - what do I actually do after intsalling it?Phusion 乘客 - 安装后我实际上会做什么?
【发布时间】:2012-04-03 05:56:14
【问题描述】:

我在 linode 上使用 Ubuntu 10.04,并且我已经安装了 apache2 和 Rails 3.2.2。我的应用程序在 example.com:3000 上运行良好

我已按照说明在此处安装 Phusion 乘客:

http://www.modrails.com/install.html

这里:

http://wiki.brightbox.co.uk/docs:rvm

但我不确定如何以生产模式在 example.com 上实际运行我的应用程序。我输入的命令是什么?我做'rails server'还是'rails server -p 80'?我使用的命令是什么?

编辑 1:

我的虚拟主机文件位于

<VirtualHost *:80>
 ServerAdmin webmaster@example.com
 ServerName example.com
 ServerAlias www.example.com
 DocumentRoot /srv/www/example.com/public_html/
 ErrorLog /srv/www/example.com/logs/error.log
 CustomLog /srv/www/example.com/logs/access.log combined

 <Directory /srv/www/example.com/public_html/>
    AllowOverride all
    Options -Multiviews
 </Directory>
</VirtualHost>

我不确定的一件事是我是否应该将目录作为

/srv/www/example.com/public_html/

/srv/www/example.com/public/

linode 安装指南说明了第一种方法(http://library.linode.com/web-servers/apache/installation/ubuntu-10.04-lucid),但Passenger 说明了第二种方法。只要一致就重要吗?

我的乘客模块位在 /etc/apache2/mods-available 中如下:

在passenger.conf中

PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.11
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p125/ruby

在passenger.load中

LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.11/ext/apache2/mod_passenger.so    

编辑 2:我现在已将乘客模块位添加到 apache 配置文件而不是乘客.conf 和乘客.load 文件。我为此设置了以下内容:

config/environments/production.rb ... config.assets.compile = true ...

【问题讨论】:

    标签: ruby-on-rails ubuntu passenger


    【解决方案1】:

    安装过程(例如,passenger-install-apache2-module 部分)在最后给出了您需要做什么的说明。

    要点是为应用程序创建一个虚拟主机,例如,/etc/apache2/sites-available/myapp,看起来像这样:

    <VirtualHost *:80>
      ServerName example.com
      ServerAlias *.example.com
      DocumentRoot /path/to/app/public
    
      PassengerMinInstances 2
      PassengerPoolIdleTime 600
      PassengerUserSwitching on
      PassengerDefaultUser someuser
    
      RailsBaseURI /
    
      <Directory "/path/to/app/public">
        FileETag none
        Options All
        AllowOverride None
        Order allow,deny
        Allow from all
      </Directory>
    </VirtualHost>
    

    确保按照说明将乘客模块钻头放在正确的位置。这是我的样子:

    $ cat /etc/apache2/mods-available/passenger.*
    PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.11
    PassengerRuby /usr/local/bin/ruby
    
    LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
    

    然后你只需做通常的 apache 工作:

    sudo a2ensite myapp
    sudo /etc/init.d/apache2 reload
    

    假设example.com 指向这台机器,你应该可以开始了。

    【讨论】:

    • 好的,谢谢,看来我已经完成了以上所有工作。由于 /public_html 和 /public 之间的差异,我认为它一定是 virtualhost 步骤的问题
    • 我已经更新了指向 myapp/public 文件夹的路径。但是,我在主页上看到的只是rails附带的默认文件,其中包含一条消息,指出index of /,然后是404.html 500.html等列表。我如何做最后一步以确保它能够接收到我的而不是根页面?
    • 你删除了public/index.html吗?
    • 是的,但是我已经在设置为 root_path 的 rails 应用程序中创建了我的静态页面。但它似乎没有显示
    • 好的,那么我建议您使用我提到的各种配置更新您的问题,这样也许我们可以解决它们的问题。另外,您是否查看过您的 Rails 日志,看看是否有任何相关内容?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    相关资源
    最近更新 更多