Apache のインストール
% sudo yum -y install httpd
Apache の起動
$ sudo systemctl start httpd.service
Apache の自動起動 ON
$ sudo systemctl enable httpd.service
Apache の自動起動が正しく設定されているか確認
$ systemctl is-enabled httpd.service
rbenv で ruby3.0 にします(下記記事参照)
https://nomad.office-aship.info/amazon-linux2-rbenv-ruby-3
Apache 上で Rails を動かすのに必要な Passenger をインストール
$ gem install passenger -N Successfully installed passenger-6.0.4
Apache に必要な権限を設定
$ sudo chmod o+x "/home/ec2-user"
Passenger のコンパイルに必要なライブラリをインストール
$ sudo yum -y install gcc-c++ $ sudo yum -y install libcurl-devel $ sudo yum -y install httpd-devel $ sudo yum -y install apr-devel $ sudo yum -y install apr-util-devel
Passenger のインストール
$ passenger-install-apache2-module
httpd.conf の編集
$ sudo vi /etc/httpd/conf/httpd.conf
以下を httpd.conf の末尾に追加
(Passenger のインストール時に出てくるテキストをそのままコピペすれば大丈夫です、以下は一例なので、そのままコピペしても動きません)
LoadModule passenger_module /home/ec2-user/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/passenger-6.0.4/buildout/apache2/mod_passenger.so <ifmodule mod_passenger.c=""> PassengerRoot /home/ec2-user/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/passenger-6.0.4 PassengerDefaultRuby /home/ec2-user/.rbenv/versions/3.0.0/bin/ruby </ifmodule>
Passengerを組み込んだApacheではDocumentRootを$RAILS_ROOT/publicに設定すれば、
自動的にRailsアプリケーションが認識されます。
以下のように修正(DocumentRootはあなたの環境に合わせて)
#DocumentRoot "/var/www/html" DocumentRoot "/home/ec2-user/rails_app/public" <directory "/home/ec2-user/rails_app/public"> Options Indexes FollowSymLinks AllowOverride None Require all granted </directory>
apache restart
$ sudo systemctl restart httpd.service
これで rails が PRODUCTION で動きます
コメント