前提・実現したいこと
OS:CentOS7.2
Webサーバ:Apache2.4.6
開発環境:Tomcat9/OpenJDK8
プロジェクト管理:Redmine4.0.1
上記のサーバでTomcat上で動くJavaのシステムとRedmineを並行して稼働したい。
発生している問題・エラーメッセージ
Redmineが404エラーで正しく動きません。
httpd/logs/error_logを見るとApache起動直後になぜか
PhusionPassengerがシャットダウンしてしまっているようでした。
エラー内容を見ると「終了時刻は開始時刻よりも前ではいけません」という
旨のエラーが出ています。(ログの下から3行目)
~~Redmine設定後、Tomcatを導入しました。
その後しばらく並行稼働はできていました。
しかしJavaのシステム側の動作確認のためにJavaのシステムが
格納されている階層の権限や所有者を変更したりしていたら
Redmine側が404エラー表示されるようになってしまいました。
(Javaのシステム側はJavaMailがなぜか使えないものの他機能は問題なく
動いています。)
~~エラー画面は以下の通りです。
また、/etc/httpd/error_logと、[redmineフォルダ]/log/production.logも
見たのですが通常のワーニング以外は特に目立ったログはありませんでした。
(production.logは更新すらされていない)
↑2019/08/09追記
上記間違いでした。/etc/httpd/logs/error_logを確認するとPhusionPassengerが
起動されていないようでした。以下ログ
[ N 2019-08-09 10:56:40.5382 22907/T6 age/Cor/CoreMain.cpp:671 ]: Signal received. Gracefully shutting down... (send signal 2 more time(s) to force shutdown) [ N 2019-08-09 10:56:40.5382 22907/T1 age/Cor/CoreMain.cpp:1245 ]: Received command to shutdown gracefully. Waiting until all clients have disconnected... [ N 2019-08-09 10:56:40.5383 22907/T6 Ser/Server.h:902 ]: [ServerThr.1] Freed 0 spare client objects [ N 2019-08-09 10:56:40.5383 22907/T6 Ser/Server.h:558 ]: [ServerThr.1] Shutdown finished [ N 2019-08-09 10:56:40.5383 22907/Ta Ser/Server.h:902 ]: [ApiServer] Freed 0 spare client objects [ N 2019-08-09 10:56:40.5383 22907/Ta Ser/Server.h:558 ]: [ApiServer] Shutdown finished [Fri Aug 09 10:56:40.539698 2019] [lbmethod_heartbeat:notice] [pid 22901] AH02282: No slotmem from mod_heartmonitor [ N 2019-08-09 10:56:40.5656 22924/T1 age/Wat/WatchdogMain.cpp:1366 ]: Starting Passenger watchdog... [ N 2019-08-09 10:56:40.5903 22928/T1 age/Cor/CoreMain.cpp:1339 ]: Starting Passenger core... [ N 2019-08-09 10:56:40.5905 22928/T1 age/Cor/CoreMain.cpp:256 ]: Passenger core running in multi-application mode. [ N 2019-08-09 10:56:40.6002 22928/T1 age/Cor/CoreMain.cpp:1014 ]: Passenger core online, PID 22928 [Fri Aug 09 10:56:40.607301 2019] [mpm_prefork:notice] [pid 22901] AH00163: Apache/2.4.6 (CentOS) SVN/1.7.14 Phusion_Passenger/6.0.2 configured -- resuming normal operations [Fri Aug 09 10:56:40.607347 2019] [core:notice] [pid 22901] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND' [ N 2019-08-09 10:56:41.7887 22907/T1 age/Cor/TelemetryCollector.h:531 ]: Message from Phusion: End time can not be before or equal to begin time [ N 2019-08-09 10:56:41.8101 22907/T1 age/Cor/CoreMain.cpp:1324 ]: Passenger core shutdown finished [ N 2019-08-09 10:56:44.3862 22928/T4 age/Cor/SecurityUpdateChecker.h:519 ]: Security update check: no update found (next check in 24 hours)
試したこと
~~・Javaのシステムが格納されているフォルダごと所有者を「root」→「tomcat:tomcat」に変更
・Javaのシステムが格納されているフォルダごと権限を「o+rx」とした
~~
↑2019/08/09追記
PhusionPassengerが起動されていないため、
passenger-install-apache2-moduleをやり直しましたが、httpd起動時にどうやら
passengerがシャットダウンされているようです。
以下設定の内容を転載します。
httpd.conf
ServerRoot "/etc/httpd" DocumentRoot "/var/rails/redmine-4.0.1/public" <Directory "/var/rails/redmine-4.0.1/public"> AllowOverride None Options FollowSymLinks Require all granted </Directory> # # Relax access to content within /var/www. # <Directory "/var/www"> Options FollowSymlinks Includes AllowOverride None # Allow open access: Require all granted </Directory> ##<Directory "/www/tomcat/apache-tomcat-9.0.21/webapps/pier"> <Directory "/www/tomcat/apache-tomcat-9.0.21/webapps/pier/"> Options FollowSymlinks Includes AllowOverride None Require all granted </Directory> Alias /example /www/tomcat/apache-tomcat-9.0.21/webapps/example/ <Directory "/www/tomcat/apache-tomcat-9.0.21/webapps/example/"> Options FollowSymlinks Includes AllowOverride None Require all granted </Directory> Alias /docs /www/tomcat/apache-tomcat-9.0.21/webapps/docs/ <Directory "/www/tomcat/apache-tomcat-9.0.21/webapps/docs/"> Options FollowSymlinks Includes AllowOverride None Require all granted </Directory> <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> <IfModule dir_module> DirectoryIndex index.html login.jsp login-action.jsp </IfModule> <Files ".ht*"> Require all denied </Files> #Passenger LoadModule passenger_module /root/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerEnabled on RailsEnv production RailsBaseURI / PassengerRoot /root/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/passenger-6.0.2 PassengerDefaultRuby /root/.rbenv/versions/2.6.3/bin/ruby </IfModule> LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so <Location /> ProxyPass ajp://サーバIPアドレス:8009/ </Location> Include /etc/httpd/conf/extra/httpd-proxy.conf PassengerInstanceRegistryDir /var/run/passenger-instreg
httpd-proxy.conf
ProxyPass /hoge/ ajp://サーバIPアドレス:8009/hoge/
passenger.conf
LoadModule passenger_module /root/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /root/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/passenger-6.0.2 PassengerDefaultRuby /root/.rbenv/versions/2.6.3/bin/ruby </IfModule>
proxy-ajp.conf
<Location /docs > ProxyPass ajp://サーバIPアドレス/docs AllowOverride none Require all denied </Location> <Location /hoge/> ProxyPass ajp://サーバIPアドレス:8009/hoge/ AllowOverride none Require all granted </Location>
proxy.conf
ProxyPass / ajp://サーバIPアドレス:8009/
redmine.conf
LoadModule passenger_module /root/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /root/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/passenger-6.0.2 PassengerDefaultRuby /root/.rbenv/versions/2.6.3/bin/ruby </IfModule> LoadModule passenger_module /root/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /root/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/passenger-6.0.2 PassengerDefaultRuby /root/.rbenv/versions/2.6.3/bin/ruby </IfModule> <Directory "/var/rails/redmine-4.0.1/public"> Require all granted </Directory> Alias /redmine /var/rails/redmine-4.0.1/public <Location /redmine> PassengerBaseURI /redmine PassengerAppRoot /var/rails/redmine-4.0.1 </Location>
00-proxy.conf
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so ProxyPass /tomcat9/ ajp://サーバIPアドレス:8009/
補足情報(FW/ツールのバージョンなど)
Javaのシステムが格納されているフォルダ
/www/tomcat/apache/webapps/
Redmineが格納されているフォルダ
/var/rails/redmine/
上記少しぼやかして書いていますがルートから全く異なる階層に
Java環境、Redmine環境をそれぞれ格納しております。
そしてそれぞれ所有者をApacheにし、Java環境側については「o+rx」と
権限をつけました。
