Rails Apache Passenger で RailsEnv 設定が効かない (developmentになってしまう)
FreeBSD ApacheでPassengerを使っています。rails4でrubyはrvm上です。
staging機(RAILS_ENV=staging
)を、FreeBSD 9.3 RELEASEから 10.3 にバージョンアップしたところ、今まで幸せに動いていたRailsアプリがことごとく、RAILS_ENVになぜか指定していないdevelopment
が渡されてしまいアプリのWebページに例の赤い文字で
Migrations are pending; run 'bin/rake db:migrate RAILS_ENV=development' to resolve this issue
と表示されてしまうようになりました。
繰り返しになりますが、RAILS_ENV
は元々staging
で、既にmigrateしているのですが、バージョンアップ後なぜか(サーバーには一切設定していない)development
であるとされてしまっているという状況です。
つまり、httpd-vhost.conf には、RailsEnv staging
を指定しています。ちなみに複数のアプリをサブディレクトリで動かしています。
そのようなわけで、httpd-vhost.confは
RailsEnv staging
RailsBaseURI /app1
RailsBaseURI /app2
RailsBaseURI /app3
のような感じで、いずれのアプリも上記のMigrations are pending
が表示されます(アプリとしては動いている)
関係するかどうか不明ですが、 /var/log/httpd-error.log でエラーの内容を見てみると、
[ 2018-03-26 19:29:07.8404 42653/0x80540a400 age/Cor/CoreMain.cpp:907 ]:
Checking whether to disconnect long-running connections for process 26796,
application /home/staging/www/webapp/app1 (staging)
App 26899 stderr: PassengerAgent: environment corrupt; missing value for SERVER_S
App 26899 stderr: PassengerAgent: environment corrupt; missing value for SERVER_S
のようになっていました。表示のenvironment corrupt
が上記のことを意味しているのかどうかは不明です。なお、 PassengerAgent: environment corrupt
やmissing value for SERVER_S
をググっているのですが、手がかりが見つかりませんでした。
Passengerのバージョンは 5.1.2, 5.1.12, 5.2.1 で試してみましたが、いずれのバージョンでも起きます。Rubyは 2.2.7 です。
どうぞよろしくお願いいたします。