新人Railsエンジニアの備忘録

忘れやすい性格なので、ハマったところとか、日々学んだことをメモとして残します。他の方が参照したときに少しでも役立てれば、うれしいです。

【Rails4】railsとapacheとの連携でエラー(cannot open shared object file: No such file or directory) その①

f:id:fairemygeneration:20181210142227j:plain:w300

railsとapacheとの連携でpassengerが原因のエラーが発生し、ハマったのでメモです。 対象のファイル(mod_passenger.so)が無いというエラーだったので、確認したところ、確かに無かったです。

【原因】
インストールに一部が失敗していたため、正常にファイルが作成されなかったため、エラーが発生したようです。

【対処】
passengerを再インストールし、ファイルが正常に作成されたことを確認し、apacheテストコマンド(apachectl configtest)が成功

【エラーメッセージ】

httpd: Syntax error on line 1040 of /etc/httpd/conf/httpd.conf: Cannot load /usr/local/lib/ruby/gems/2.3.0/gems/pasenger-5.3.3/buildout/apache2/mod_passenger.so into server: /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.3.3/builout/apache2/mod_passenger.so: cannot open shared object file: No such file or directory

【反省】
最初はパスが間違っている観点で調査しました。
ですが、ファイルが実際に存在しなかったこと、エラーのパスがpassengerインストール時に出力されたものであることからパスの間違えの可能性は低いこと、その2点からインストール失敗が原因という観点で調査すれば、時間が短縮できたかと思いました。

※1 エラーメッセージに出力されたパスはpassengerインストール時に/etc/httpd/conf/httpd.confに記載するために出力された下記です。

LoadModule passenger_module /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.3.3/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.3.3
PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>

※環境情報
OS:Centos6.9
フレームワーク : Rails 4.2.9
Web:apache 2.2
DB : MySQL 5.6
ruby:2.3.7