移行だ移行だー
今まで1台のラズパイの上に色んなものを稼働させてたのですが、パフォーマンス不足対策しようとするとキャッシュに頼ったりするのでメモリ使用率が上がる事になりが苦しくなってきました。(1GBしかないんだもの。。。)
そこでWordpressを他のサーバーに移行しましたが、結構てこずったのでメモします。
前提:バックアップデータなどを使って楽に移行する。設定変更しない。
nginx のほうがパフォーマンスが良いという記事を良く見るのでそのままこれを使おうと思ったらはまった。
・nginx は htaccess ではなくconf ファイルにリダイレクト設定を書き込まなければいけない。
WordPress入れると自動的に.htaccessが出来て内容が書き込まれます。パーマリンクとか、プラグイン用とか。
私は管理画面を別URLにしていたりするプラグインを入れていました。
ですので、移行しようとすると”リンク先が真っ白になる”、”管理画面にたどり着けない。入れない。” 等々。
プラグインを探し直せば nginx を使っている人自体は多いので対応できそうですが
時間がかかりそうなのであきらめて Apache を入れなおしました。。。
・Local IP アドレス:変更
・Hostname:変更
・ドメイン:未変更
・フォルダ構成:未変更
・DB名:未変更
で、ラズパイはデフォルトでは eth0 と wlan0 を持っています。
ラズパイ1号機:eth0 をインターネット側セグメントへ割り当て、wlan0を内部向けセグメントへ割り当て
ラズパイ2号機:wlan0 をインターネット側セグメントへ割り当て、eth0 を内部向けセグメントへ割り当て
でインターネット経由で接続できていました。
★移行開始
おおよそ以下のような手順で移行を開始
・Apache、PHP、Mysqlを設定し、mysql 上に1号機と同じDB名でDB作成
・Wordpressインストール
・All in one WP Migration 導入、1号機からエクスポート、2号機へインポート
・LAN側で接続確認 > OK
・ルーターのポートマッピングを2号機向けに変更してアクセス > NG なぬ!?
netstat -nat を見ると
xxx.xxx.xxx.xxx:443 と私の IPhone と思われるIPアドレスでTIME Wait になっている。(つまりコネクションはされている)
なぜだろう?
/etc/hosts や hosts.allow, hosts.deny に問題になる記載なし
Apache の設定でドメイン名:443を明記しても変化なし
なんだろう?
困ってtcpdumpをとってみた。
xxx@xxxx:~# tcpdump dst port 443
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size xxxx bytes
なぬ? eth0 ?
eth0 は内部用セグメント用のyyy.yyy.yyy.yyy が割り当たっている。なんだ?
LANからはwlan0用のアドレスを指定してhttps://xxx.xxx.xxx.xxx/~ のアドレスで問題無くアクセスできる。
試しにケーブルを差し替えて、IPアドレス設定を変えて以下のようにしてみた。
eth0 : xxx.xxx.xxx.xxx
wlan0 : yyy.yyy.yyy.yyy
結果はOK。なんだか eth0 に優先的に443ポートが割り当たってしまっている?
まぁ、最終系はeth0をインターネット向けにしようと思っていたので結果オーライなのですが
どの設定をいじらないとwlan0で443をListenできるようにならないのか、まだ未調査です。(vhost設定にIP指定かな。。。)
eth0を使っておらず、wlan0だけに接続している場合はwlan0でも443でコネクション確立できます。
本当は、wordpressのプラグインで日次バックアップをしているデータか
mysql dump で取得したデータでサイト移行したかったのですが
上述のトラブル対応の過程で”All in one WP Migration”を入れてしまったのでこれを用いて移行しました。
“All in one WP Migration” めっちゃ移行が楽なので移行検討している人にはお勧めです。
