[Rails]CentOS上のRailsアプリをApacheで動かす。
2016/07/25
Passengerを使ってRailsアプリを80番ポートでApacheで動くようにしました。
基本的な設定コマンドは下記の通りです。
事前い必要なモジュールをインストールし、Passengerをgemを使ってインストールします。
1 2 3 |
$ sudo yum -y install httpd-devel apr-devel apr-util-util-devel $ sudo gem install passenger $ sudo passenger-install-apache2-module |
その後ApacheにRubyとPassengerを組み込み、VirtualHostの設定を行います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# ApacheにPassengerの組み込み # sudo vim /etc/httpd/conf.d/passenger.con LoadModule passenger_module /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.0.29/buildout/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.0.29 PassengerDefaultRuby /usr/local/bin/ruby <VirtualHost *:80> ServerName railsapp.localhost DocumentRoot "/var/www/html/railsapp/public" <Directory "/var/www/html/railsapp/public"> AllowOverride all Options -MultiViews </Directory> </VirtualHost> |
PassengerのPathは各環境ごとに異なります。Passengerインストール時に表示されるのでそれを使うようにしてください。
httpdを再起動し動作を確認します。
1 2 3 |
$ sudo service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] |
で起動すると動かない。。。。
なので、Firewallを切ってみる。
/etc/selinux/configファイルのSELINUX=enforcingの部分をSELINUX=disabledに変更する。
でもまだ動かない。
調べてみるとPassengerではproductionモードで動くようにデフォルト設定されているそうです。
今回はdevelopmentモードしか準備していなかったので、passenger.confのVirtualHostの設定を書き換えます。
1 2 3 4 |
VirtualHost *:80/> RailsEnv development ... </VirtualHost> |
もう一度httpdを再起動して確認。
お〜動いた〜
最後の部分にはまって、途方に暮れていました。。解決してよかった。