Как я настраиваю приложение Sinatra под Apache с Пассажиром?

Скажем, у меня есть самое простое однофайловое приложение Sinatra. Привет мир на их домашней странице сделает. Я хочу выполнить его под Apache с Пассажиром Phusion, иначе mod_rails.

  • В какой структуре каталогов я нуждаюсь?
  • Что я должен вставить vhost conf файл?
  • Я понимаю, что мне нужен rackup файл. Что входит в него и почему?

26
задан Boann 28 July 2019 в 18:23
поделиться

2 ответа

Базовая структура каталогов:

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>

config.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 пуст.


Скорее полезные ссылки:

71
ответ дан 28 November 2019 в 06:24
поделиться

Пример vhost файла для rack app с passenger:

<VirtualHost *:80>
 ServerName   server.local
 ServerAlias  *.server.local
 DocumentRoot /dir/public
 RackEnv      development
 <Directory /dir/public>
 Order allow,deny
  Allow from all
 </Directory>
</VirtualHost>

Пример Config.ru:

require File.expand_path('../boot.rb', __FILE__)
use Rack::Middleware
run Rack::Cascade.new([array])
2
ответ дан 28 November 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: