Для програми необхідна базова структура директорій:
APP_DIRECTORY/
|-- app.rb <-- безпосередньо додаток
|-- config.ru <-- Rackup файл для запуску
|-- public/ <-- директорія для статичних файлів (зображення, css, javascript)
|-- tmp/ <-- тимчасова директорія
Встановлюємо Apache2:
$ sudo apt-get install apache2-mpm-prefork apache2-prefork-dev libapr1-dev libaprutil1-dev
Встановлюємо Phusion Passenger:
$ sudo gem1.9.1 install passenger
Налаштування модуля для Apache:
$ sudo /opt/ruby191/bin/passenger-install-apache2-module
Далі слідуємо інструкції.
Створюємо файл /etc/apache2/mods-available/passenger.load і додаємо наступні рядки:
LoadModule passenger_module /opt/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.11/ext/apache2/mod_passenger.so
PassengerRoot /opt/ruby191/lib/ruby/gems/1.9.1/gems/passenger-2.2.11
PassengerRuby /opt/ruby191/bin/ruby
Застосовуємо зміни і перезапускаємо сервіс:
$ sudo a2enmod passenger
$ sudo service apache2 restart
Припустимо наш додаток Sinatra знаходиться у /somewhere. Додамо віртуальний хост до конфігурації Apache і встановимо DocumentRoot у /somewhere/public
# /etc/apache2/sites-enabled/000-default
<VirtualHost *:80>
ServerName www.yourhost.com
DocumentRoot /somewhere/public
<Directory /somewhere/public>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
Для запуску додатку із статті Привіт, Sinatra! створимо Rackup файл config.ru:
require 'sinatra'
require 'app.rb'
run Sinatra::Application
# app.rb
require 'rubygems'
require 'sinatra'
get '/' do
"Привіт, Sinatra!"
end
Немає коментарів:
Дописати коментар