Debian 8でSinatra, Passenger, Apacheを動かす

RackアプリケーションをApacheにデプロイするのが難しいと感じます。
なぜかというと,色々なブログに違うことが書いてあってどれが正しい方法なのかよく分からないからです。
ここでは公式のマニュアルにそってデプロイしてみます。
みなさまはぜひこのページを参考にしないで,公式マニュアルを参考にしてください。

前提

パッケージをインストールする

簡単のため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