ruby - 如何使用 Passenger 在 Apache 下设置 Sinatra 应用程序?

标签 ruby apache sinatra passenger rack

假设我有最简单的单文件 Sinatra 应用程序。 hello world在他们的主页上就可以了。我想在 Apache 下使用 Phusion Passenger,又名 mod_rails 运行它。

  • 我需要什么样的目录结构?
  • 我必须在 vhost conf 文件中放入什么?
  • 我知道我需要一个 rackup 文件。里面有什么,为什么?

最佳答案

基本目录结构:

app
|-- config.ru         # <- rackup file
|-- hello-app.rb      # <- your application
|-- public/           # <- static public files (passenger needs this)
`-- tmp/              
    `-- restart.txt   # <- touch this file to restart app

虚拟主机文件:

<VirtualHost *:80>
  ServerName    app.example.com
  DocumentRoot  /path/to/app/public
  <Directory    /path/to/app/public>
    Order       allow,deny
    Allow       from all
  </Directory>
</VirtualHost>

配置.ru

# encoding: UTF-8
require './hello-app'
run Sinatra::Application

hello-app.rb(示例应用程序):

#!/usr/bin/env ruby
# encoding: UTF-8
require 'rubygems' # for ruby 1.8
require 'sinatra'

get '/hi' do
  "Hello World!"
end

restart.txt 为空。


稍微有用的链接:

关于ruby - 如何使用 Passenger 在 Apache 下设置 Sinatra 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3371208/

相关文章:

ruby-on-rails - 我怎么知道 Rails 已经加载/缓存了一个 Activerecord 类属性?

mysql - Ruby on Rails where 子句找不到正确的记录

php - Apache 日志行太长

apache - 如何获得gulp + browsersync使apache虚拟主机工作?

ruby - 一个环境。变量不是 nil,但在 ruby​​ 中它是 nil :

ruby-on-rails - ruby 1.8 和 1.9 之间的字符串长度差异

apache - UWP WebView - 显示网络服务器内容时网络服务器登录问题

postgresql - 准备好的语句不存在

ruby - 如果我点击链接,Heroku 上的 Sinatra 应用会以 Forbidden 响应

ruby - Sinatra 局部变量与实例变量