現時点ではdevelopment modeだが、production mode ではapacheを使うつもりだ。ただ作っているアプリのカラムが30以上もあり、WEBの表示を画面全体で見たいので、先にapacheで見れるようにするために gemのpassengerを入れて、apacheで表示出きるようにする。(注:railsアプリの公開は社内だけにし、テレワークの社員はVPNで社内ネットワークに入り、ローカルIPアドレス:3000でアクセス出来るようにするので、暗号化はしていない)まずはGemfile にpassengerを入れる
[fuji@rails8 TourData]$ gedit Gemfile
前略
# gem “image_processing”, “~> 1.2”
gem “spring-commands-rspec”
gem “passenger” ← これを追記
group :development, :test do
# See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
gem “debug”, platforms: %i[ mri windows ], require: “debug/prelude”
後略
で、お決まりの
[fuji@rails8 TourData]$ bundle
apacheにpassengerをインストールするがその前にhomeデレクトリーを第三者が実行出来るようにしておく。
[fuji@rails8 TourData]$ chmod o+x/home/fuji
[fuji@rails8 TourData]$ passenger-install-apache2-modules
This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.
Here's what you can expect from the installation process:
1. The Apache 2 module will be installed for you.
2. You'll learn how to configure Apache.
3. You'll learn how to deploy a Ruby on Rails application.
Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.
Press Enter to continue, or Ctrl-C to abort. Enterをオス
Which languages are you interested in?
Use <space> to select.
If the menu doesn't display correctly, press '!'
‣ ⬢ Ruby Rubyに三角が付いているのを確認後 Enter
⬡ Python
⬢ Node.js
色々足りないものが表示されたが記録が無くなっているので、何が不足していたかは思い出せないが、ともかくyum install …….などと言ってくれるのでその通りにインストールし、再度
[fuji@rails8 TourData]$ passenger-install-apache2-modules
で、最後の方で
Almost there!
Please edit your Apache configuration file, and add these lines:
LoadModule passenger_module /home/fuji/.rbenv/versions/3.2.9/lib/ruby/gems/3.2.0/gems/passenger-6.0.27/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/fuji/.rbenv/versions/3.2.9/lib/ruby/gems/3.2.0/gems/passenger-6.0.27
PassengerDefaultRuby /home/fuji/.rbenv/versions/3.2.9/bin/ruby
</IfModule>
After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!
Press ENTER when you are done editing.
——————————————–
Validating installation…
* Checking whether this Passenger install is in PATH… ✓
* Checking whether there are no other Passenger installations… ✓
* Checking whether Apache is installed… ✓
* Checking whether the Passenger module is correctly configured in Apache… (!)
You did not specify ‘LoadModule passenger_module’ in any of your Apache
configuration files. Please paste the configuration snippet that this
installer printed earlier, into one of your Apache configuration files, such
as /etc/httpd/conf/httpd.conf.
Detected 0 error(s), 1 warning(s).
Press ENTER to continue.
——————————————–
Deploying a web application
To learn how to deploy a web app on Passenger, please follow the deployment
guide:
https://www.phusionpassenger.com/library/deploy/apache/deploy/
Enjoy Phusion Passenger, a product of Phusion® (www.phusion.nl) 🙂
https://www.phusionpassenger.com
Passenger® is a registered trademark of Asynchronous B.V.
Checking whether the Passenger module is correctly configured in Apache… (!) だけがエラーになっている。当たり前だ、インストールしただけなので設定は終わっていない。
まずはpassenger module をロードするがこれは
[root@rails8 ~]# gedit /etc/httpd/conf.modules.d/00-rails.conf
LoadModule passenger_module /home/fuji/.rbenv/versions/3.2.9/lib/ruby/gems/3.2.0/gems/passenger-6.0.27/buildout/apache2/mod_passenger.so
PassengerEnabled on
<IfModule mod_passenger.c>
PassengerRoot /home/fuji/.rbenv/versions/3.2.9/lib/ruby/gems/3.2.0/gems/passenger-6.0.27
PassengerDefaultRuby /home/fuji/.rbenv/versions/3.2.9/bin/ruby
</IfModule>
と設定を新規に作った。次はdocument rootなどの設定だが、これは新規に
[root@rails8 ~]# gedit /etc/httpd/conf.d/rails.conf
DocumentRoot “/Rails/TourData/public”
<Directory “/Rails/TourData/public”>
AllowOverride None
# Allow open access:
Require all granted
</Directory>
そしてapacheを再起動
[root@rails8 ~]# systemctl restart httpd
[root@rails8 ~]# systemctl status httpd
で起動を確認
次にpassengerの起動
[fuji@rails8 TourData]$ passenger start –environment development
でpassengerはスタートしたが、その端末に
Started GET “/metrics” for 127.0.0.1 at 2025-08-30 16:49:25 +0900
ActionController::RoutingError (No route matches [GET] “/metrics”):
でもブラウザで http://IP アドレス:3000にアクセスするとapacheでアクセス出来る