いままでDebian 7.8 Wheezyを利用していましたが、先月末にDebian 8.0 Jessieの安定板が出たのでアップデートを計画しています。ウチのPCサーバーはSSDを利用しているため、今回のようにカーネルも大きく変わるメジャーバージョンアップのときはSSDを取り外してSecure Eraseをかけてパフォーマンス復旧させつつOSクリーンインストールする計画で進めています。(上のアイキャッチ画像が計画図です。)
そのSSDを取り外している間は、旧PCサーバーとして利用していたThinkPadノートを引っ張り出して代替サーバーにする計画でして、ThinkPadにも8.0 Jessieを入れてテストがてらクローンサーバーとしてWordPressを丸々移動させようと思っていたのですが、うまく動かずハマってしまいました。
apache2のバージョンが2.2.22→2.4.10になり設定方法が少し変わったようですが、それが原因と切り分けるまで一週間近く費やしてしまいました。なにぶん深夜寝る前にサーバーを入れ換えて動かない→戻す→あきらめて寝る→原因切り分け→翌日深夜再挑戦、と繰り返してたら時間がかかりました。
このページの目次
sites-availableの設定ファイルが読み込めない
最初におかしいと気づいたのは、/etc/apache2/site-available/ の中にあるVirtualHostの設定ファイルをそのまま8.0Jessieに持ってきてa2ensiteコマンドで読み込ませようとしても設定ファイルとして読み込んでくれませんでした。
Wheezy時代のデフォルトファイルdefault と default-sslファイルを元にちょこちょこと記述を変えただけのファイルにも関わらずです。よく見るとJessieのデフォルトファイルは000-default.conf と default-ssl.conf というファイル名になっていたので、.conf をファイル名のお尻に付けると a2ensiteで読み込んでくれましたが、WordPressは「403 Forbidden You don’t have permission to access」としか表示されずです。
FollowSymLinksが有効になっていない
どうやらエラーの原因は、apacheのオプションでシンボリックリンクが有効になっていないようです。いままでsites-available内の設定ファイルで指定していたこの部分です。
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
ここが有効になっていないようです。どうやら設定する場所が変わったようです。
設定が書いてある場所が変わっています。シンボリックリンクの記述は/etc/apache2/apache2.conf に直接書いてあります。その他の上図青の部分も/conf-available なるディレクトリが増えていてそっちにファイルを置いてa2enconfコマンドで有効にするように変わったようです。
結局、設定をやり直す
wheezy時代の設定ファイルをそのまま持ってくるのはあきらめて、/etc/apache2内の設定は作り直しました。
apache2.conf の設定
/etc/apache2/apache2.confの設定は164行目からを変更します。
変更前
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
変更後
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
AllowOverride All にしておかないと、WordPressの場合は以前記事にしましたが、パーマリンク変更で表示されなくなるので注意です。
sites-availableとports.confの設定
/etc/apache2/sites-availableディレクトリ内のデフォルトファイル000-default.confを元に自分のサイトに合わせて設定します。複数サイトやSSL通信を有効にする場合は必要な設定をします。
WordPressフォルダそのまま移行が可能になった
これでDebian7.8 Wheezyで稼働中のWordPressディレクトリとデータベースをそのまま右から左に移動するだけでJessie代替サーバーで動くようになりました。これでやっとDebian 8.0 Jessieアップデート計画が次の段階に進みます。