LoginSignup
5
5

More than 5 years have passed since last update.

Apacheを2.2から2.4にアップデートしたら、SubversionとRedmineが動かなくなった時の話

Last updated at Posted at 2015-12-02

いきさつ

aptでアップデートできるからと何も考えずにApacheを2.2から2.4.7にアップデートしたら、Apache経由で運用していたSubversionとRedmineが動かなくなった。
Subversionはすぐに解決できた。
同様の対処をRedmineにも適用したが、Apacheとの連携がうまくいかなかった。
色々試したのでどれが良かったのかわからずじまいだが、やったことをまとめる事にした。

原因

原因その1

私は知らなかった。次のコマンドがあることを。

  • a2ensite
  • a2dissite
  • a2enmod
  • a2dismod

原因その2

Apacheでアクセス制御するディレクティブが変更されていた1
以下の旧ディレクティブをRequireに置き換えた。

  • Allow
  • Deny
  • Order

ちなみにmod_access_compatというディレクティブを使えば旧ディレクティブも使えるらしい。

対処

対処その1

a2en...、a2dis...というコマンドを知らなかった私は、mods-enablesとsite-enableに直接シンボリックリンクを作っていた。
それが2.4.7では機能しなくなったらしい。
その対処方法として次のことをした。

  • 手動で作った/etc/apache2/site-enable配下のシンボリックリンクを削除
  • /etc/apache2/site-available配下のファイルに拡張子.confを追加(ex. 001-redmine → 001-redmine.conf)
  • sudo a2ensite ファイル名を実行

その他の対処

それでもRedmineは動かず、/var/log/apache2/error.logを覗いてみるとRubyの実行でエラーが起きていた。
要は、ApacheとRailsの連携がうまくいっていなかったらしい。

やったこと

  • Rubyのバージョンアップ 2.2.2 → 2.2.3
  • Passenger5.0.21をインストール(旧バージョン5.0.7)
  • passenger-install-apache2-moduleを実行
  • passenger.confファイルを分割、移動
  • Redmineのアップデート(3.0.? → 3.0.6)

passenger.conf

対処その1から推測すると、passenger.confのパスを移動してa2enmodを使用したことが、最も効果があったのではと思う。
apache2.confファイルのコメントを読んでも/etc/apache2/conf.d/に言及していないので、デフォルトではこのディレクトリを読み込まなくなったのだろう。
/etc/apache2/conf.d/passenger.confの中身はpassenger-install-apache2-moduleで出力された内容の通りだったので、以下のようにファイルを分割して、他のモジュールと同様に配置した。

  • /etc/apache2/mods-available/passenger.loadでLoadModule
  • /etc/apache2/mods-available/passenger.confでIfModuleディレクティブの内容記述

分割、配置したらa2enmodコマンドで適用すること。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5