LoginSignup
44
38

More than 5 years have passed since last update.

自分用 Apache+passenger+sinatraの設定方法まとめ

Posted at

なんかまた後で調べるはめになるかもなのでまとめた。

1.passengerをインストール

console
gem install passenger

gemが使えれば普通にインストールされるはず

2.Apache用モジュールのビルド

console
passenger-install-apache2-module

Apacheをソースビルドした場合はなんかPATHの設定が必要らしいがそんな事をする予定はないので省略
色々表示されるが大体無視してEnterを押してOK

最後のほうで、設定用のテキストが表示されるのでコピーする

console
LoadModule passenger_module /usr/local/rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/passenger-4.0.50/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/passenger-4.0.50
  PassengerDefaultRuby /usr/local/rbenv/versions/2.0.0-p247/bin/ruby
</IfModule>

あとで上記のテキストだけ見たい場合は

console
passenger-install-apache2-module --snippet

で見れる

3.passenger.confの設定

Apacheの設定ファイルpassenger.confを作成する(ない場合は新規で)

console
vim /etc/httpd/conf.d/passenger.conf
passenger.conf
# Passenger base config
LoadModule passenger_module /usr/local/rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/passenger-4.0.50/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/passenger-4.0.50
  PassengerDefaultRuby /usr/local/rbenv/versions/2.0.0-p247/bin/ruby
</IfModule>

# Delete Passenger's HTTP Header
Header always unset "X-Powered-By"
Header always unset "X-Rack-Cache"
Header always unset "X-Content-Digest"
Header always unset "X-Runtime"

# Passenger tuning config
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerHighPerformance on
PassengerStatThrottleRate 10
RailsSpawnMethod smart
RailsAppSpawnerIdleTime 86400
PassengerMaxPreloaderIdleTime 0

RailsEnv development  # production か development を設定
RackBaseURI /app1     # DocumentRootからのアプリケーションフォルダ相対位置
RackBaseURI /app2     # 複数設定可能

4.アプリケーションフォルダの配置

sinatraアプリケーションフォルダをどっかに置く(仮にapp1, app2とする)
app1/public へのSymLinkをDocumentRoot(ここでは/var/www/html)に作成する

console
cd /var/www/html
ln -s app1/public app1
ln -s app2/public app2

あと必要に応じてバーチャルホストの設定とかする。

5.Apache再起動

console
service httpd restart

権限周りで動かない時は、PassengerUserSwitching PassengerDefaultUser あたりのオプションを設定するか、ファイルのオーナーを書き換える。

おわり

44
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44
38