クラウド環境のWordpressをテスト用に手持ちのLINUX環境へ移行した。
トップページは表示されるがサブページを表示できない(404エラー)で苦労したので、備忘として残します。
■基本的な移行について
1. DB
【移行元】
元のDBを丸ごとエクスポート。
phpMyAdminを使う場合、DB一覧から対象DBを選択してエクスポートを実行する。
createとinsertで構成されたsqlを出力することができる。
【移行先】
DBを作成する。移行元と同じ名前でなくてもOK。ユーザも作成するがこちらも元と異なってもOK。
【移行実施】
テーブル内に元サイトのドメインが入っているので、エディタで編集。
例えば元ドメインが「hogehoge.com」でこれを「192.168.1.1」に変更するといったこと。
秀丸やらさくらエディタでsqlファイルを開いて一括変換するのが楽。
移行先DBに対して、エクスポートしたsqlを丸ごと実行。
MySQL Workbenchやmysqlコマンドを使う場合には「use DB名」をまず実行しましょう。
2. 各種ファイル
【移行元】
移行したい対象テーマをディレクトリごと圧縮する。圧縮することで属性もそのまま移行できる。
【移行先】
特に準備なし。
【移行実施】
圧縮したファイルを解凍する。解凍先はWordpressの構成による。
一番シンプルなのはhttpdのホームディレクトリ直下。
/var/www/html といった感じ。
3. 設定などの変更
【ドメイン置換】
DB同様にドメインを編集する。
これも秀丸やさくらエディタのGrep置換を利用すると楽にできる。
【wp-config.php】
新DBの接続情報を書き換える。
プロキシを使っている環境では、それも追記すること。
【パーマネントリンク対応】
ここで見事にはまった。トップページはなんなく表示できるが、内部リンクページが表示できない。
LINUX環境移行前にPC上のWordpressでは何も意識せずに正常動作していたので、個別ファイルではなくLINUXに絡む問題というあたりはついた。
その1:.httaccessの属性変更
乱暴だが「chmod a+w .httaccess」を実行。状況変わらず。
その2:移行先ディレクトリの属性変更
同じく「chmod a+w 移行先ディレクト」を実行。状況変わらず。流石にサブディレクトリにまで書き込み権限を与えるのは怖くて、そこまでは実施せず。
その3:http.conf編集
最終行に以下の設定を追加。wordpress部分は環境にあわせて。
AllowOverride All
状況変わらず。そもそもPCではこの設定を行っていないのであまり期待していなかった。
その4:対象ディレクトリのオーナー変更
ここまでのLINUX上での作業は root で行っていた。普通に考えたら、httpdが参照する場所のオーナーはapacheだよね、ということに気が付く。
chown -R apache.apache /var/www/wordpress
これをやったら見事に成功。
プラグインも引き継がれているらしい。
基本は大切に、という教訓です。