Debian 8でSinatra, Passenger, Apacheを動かす
RackアプリケーションをApacheにデプロイするのが難しいと感じます。
なぜかというと,色々なブログに違うことが書いてあってどれが正しい方法なのかよく分からないからです。
ここでは公式のマニュアルにそってデプロイしてみます。
みなさまはぜひこのページを参考にしないで,公式マニュアルを参考にしてください。
前提
- Debian 8
パッケージをインストールする
簡単のためgemでなくaptでインストールしています。バージョンの面で不利かもしれません。
$ sudo apt-get install apache2 ruby ruby-sinatra ruby-passenger libapache2-mod-passenger
テストアプリを作る
参考URL: Using a Classic Style Application with a config.ru, http://www.sinatrarb.com/intro.html#Using%20a%20Classic%20Style%20Application%20with%20a%20config.ru
$ cd /var/www $ sudo mkdir testapp $ cd testapp $ sudo mkdir public $ sudo mkdir tmp $ sudo vi config.ru
require './app' run Sinatra::Application
$ sudo vi app.rb
require 'sinatra' get '/' do 'Hello world!' end
設定
参考URL: Deploying an app to a sub-URI or subdirectory, https://www.phusionpassenger.com/library/deploy/apache/deploy/ruby/#deploying-an-app-to-a-sub-uri-or-subdirectory
$ sudo vi /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80> ... Alias /testapp /var/www/testapp/public <Location /testapp> PassengerBaseURI /testapp PassengerAppRoot /var/www/testapp </Location> <Directory /var/www/testapp/public> Allow from all Options -MultiViews Require all granted </Directory> </VirtualHost>
$ sudo systemctl restart apache2