【问题标题】:how to easily run a sinatra/padrino application on rails hoster如何在 Rails 主机上轻松运行 sinatra/padrino 应用程序
【发布时间】:2011-07-02 01:13:45
【问题描述】:

是否有一种简单的方法可以将 sinatra(尤其是 padrino)应用程序“作为”rails 应用程序运行? 我想,应该有一些方法可以将“rails server”翻译成“padrino start”之类的...... (我指的主机也使用 mod_rails 托管 rails。)

【问题讨论】:

    标签: ruby-on-rails ruby sinatra padrino


    【解决方案1】:

    如果您使用的是 mod_rails(即,Passenger),您应该不会有任何问题 -Passenger 可以托管任何基于机架的应用程序,我使用它在我的服务器上托管 Sinatra、Padrino 和 Rails 应用程序。 Sinatra 只需要一个非常基本的机架文件,例如:

    require 'sinatra_app'
    set :run, false
    set :environment, ENV['RACK_ENV'] || 'production'
    run Sinatra::Application
    

    padrino 应用所需的基本 config.ru 文件更加简单:

    require ::File.dirname(__FILE__) + '/config/boot.rb'
    run Padrino.application
    

    您还可以做更多事情,例如处理日志记录,但这应该是您开始工作所需的全部内容。 Sinatra 和 Padrino 应用程序的 Apache vhost 配置也很简单,并且与 Rails 使用的非常相似,例如:

    <VirtualHost *:80>
      ServerName my.app.com
      DocumentRoot "/var/www/apps/myapp/current/public"
      RackEnv production
    </VirtualHost>
    

    这应该是您开始所需的全部 - 唯一的主要区别是您使用 RackEnv 而不是 RailsEnv。

    【讨论】:

    • 我知道我遇到了一个老问题,但切换到支持 Phusion Passenger 的 [共享] 主机对我来说是一个改变游戏规则的方法。乘客是一个了不起的产品!
    【解决方案2】:

    【讨论】:

    • 是否可以编写一个 rack-wrapper,以便可以通过 mod_rails 启动任何机架应用程序(例如 sinatra)?不幸的是,我不太了解 mod_rails 的内部结构……我的主人告诉我,他们以某种方式配置了 mod_rails,只有 Rails 应用程序可以用它启动。
    猜你喜欢
    • 1970-01-01
    • 2010-10-04
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多