lest, just lest

Заметки о web-разработке, администрировании Linux и настройке Mac OS X

Запуск web-приложения на Sinatra с Phusion Passenger

без комментариев

На сегодняшний день одним из самых простых способов запуска Rails и Rack web-приложений является Phusion Passenger, представляющий собой модуль для Apache и Nginx. Фреймворк Sinatra базируется на Rack, следовательно, приложения на его основе Passenger способен легко запускать.

Для приложения необходима базовая структура директорий:

APP_DIRECTORY/
  |-- app.rb       <-- непосредственно приложение
  |-- config.ru    <-- Rackup файл для запуска
  |-- public/      <-- директория для статических файлов (картинки, css, javascript)
  |-- tmp/         <-- временная директория

Создаем виртуальный хост (предполагается, что установлен Passenger модуль для Apache):

<VirtualHost *>
  ServerName APP_NAME.dev
  DocumentRoot APP_DIRECTORY/public
</VirtualHost>

Для запуска приложения из предыдущего поста про Sinatra необходим следующий Rackup файл config.ru:

require 'app'

run Sinatra::Application

По-умолчанию Passenger будет передавать в приложение переменную окружения ENV['RACK_ENV'] равную production. Для того, чтобы задать другое окружение (например, development), в VirtualHost можно добавить:

RackEnv development

Если Passenger используется в качестве dev-сервера при разработке, то будет удобно включить автоматическую перезагрузку приложения при каждом запросе. Для этого следует поместить файл always_restart.txt в директорию tmp:

touch tmp/always_restart.txt

Related posts:

  1. Использование Sinatra внутри Rails Metal
  2. Hello world с помощью Ruby, Sinatra и Haml
  3. Sinatra и DataMapper: пример сервиса сокращения ссылок
  4. Cron и Ruby: использование Whenever
  5. CKEditor в Ruby on Rails c загрузкой файлов через SWFUpload

Автор: lest

Январь 17, 2010 в 21:06

Опубликовано в ruby

Метки: , , ,

Leave a Reply