XAMPPとDuplicator

知識の詰め合わせ

以前、古いバージョンのXAMPPを入れた記事を書いた。
が、最近PHPのバージョンが古すぎて、WordPressのアップデートができなくなってきた。
一度PHPのアップデートを試みてみたものの、XAMPPでは認識してくれずとん挫したのであった。

サイト
XAMPPのPHPをバージョンアップする(5.5→7.2)

結論としては、XAMPPを一度アンインストールして、改めてインストールしなおす方法だった。
通常のソフトならあまり難しくない作業かなと思うのだけど、XAMPPは紐づけされているデータが膨大で、正直想像するだけで眩暈を起こしたくらいです。

でも、ちょっと時間的に余裕ができた今日、一念発起で頑張ってみることにした。

長いから、続きに収納します。
モバイルアクセスだとあまり意味ないかもしれないけど。

1.
XAMPPを一度完全にアンインストールする。
サイト
XAMPPのアップデート

C:\xampp\htdocs のバックアップをとる。
C:\xampp\FileZillaFTP のバックアップをとる。(C:\xampp\licenses\FileZillaFTP)
C:\xampp\MercuryMail のバックアップをとる。
C:\xampp\mysql\data のバックアップをとる。
http://www.apachefriends.org/jp/xampp-windows.html からXAMPPインストーラをダウンロードする。
XAMPPコントロールパネルを開き、「Apache、 MySQL、 FilaZilla、Mercury」を停止し、サービスから削除する。
XAMPPをアンインストールする。
C:\xamppフォルダを削除する。
XAMPPインストーラでXAMPPを新規インストールする。
XAMPPコントロールパネルを開き、「Apache、 MySQL、 FilaZilla、Mercury」を開始し、サービスに登録する。
http://localhost/xampp にアクセスし、Apache XAMPPディレクトリにセキュリティを設定する。
また、同時に MySQLのRootのパスワードを設定する。
XAMPPコントロールパネルを開き、「Apache、 MySQL、 FilaZilla、Mercury」を停止し、サービスから削除する。

バックアップから、C:\xampp\htdocs を上書きする。
バックアップから、C:\xampp\FileZillaFTP を上書きする。
バックアップから、C:\xampp\MercuryMail を上書きする。
バックアップから、C:\xampp\mysql\dataにあるDB名の付いたフォルダをコピーする。(※上書きしないこと)
XAMPPコントロールパネルを開き、「Apache、 MySQL、 FilaZilla、Mercury」を開始し、サービスに登録する。
ホームページが復元されていること確認する。
MySQLのDBが復元されていることを確認する。
FilaZillaの設定が復元されていることを確認する。
Mercuryの設定が復元されていることを確認する。
以上で問題なければ終了。

※MySQL DB は、ファイルでコピーすると失敗することが有るので、テーブル毎にエクスポート&インポートした方が良い。

後半のバックアップから~の記述は私は無視した。
あとで引っ越しプラグインを使ってごっそりやる。

2.
データベースにセキュリティ設定をする。
以前のバージョンではデフォルトでパスワードを求められたのだけど、今は何もしていないとそのままデータベースにアクセスできてしまう。
ローカルだからあまり問題ない?かもしれないけど、不正にアクセスされたらそれこそひとたまりもないかもなので、一応。

サイト
【自宅PCでWeb開発】XAMPP に必要な最低限のセキュリティ設定

私がしたのは、この中でも「データベースの root ユーザのパスワード設定」だけにした。

設定方法としては、エクスプローラーを開き、Windows(C:) > xampp > phpMyAdmin の「config.inc.php」を開いてください(メモ帳で開いてもOKです)。
18行目の記述を下記のように「config」→ 「cookie」に変更します。

XAMPPコントロールパネルを開き、MySQL の 「Admin」ボタンを押す。
ユーザ名 : root  パスワード: 何も無しでログイン
「ユーザアカウント」を選択し、「root」ユーザの「Edit privileges」をクリック
「パスワードを変更する」を選択し好きなパスワードを設定後、「実行」

私はTerapadで編集したけど、きっとメモ帳でも大丈夫。
メモ帳素敵!

3.
WPの引っ越し。プラグイン「Duplicator」を元WPにインストールして、バックアップを作成する。

参考サイト
WordPressプラグイン Duplicatorでサーバー移行する方法

サーバー移行用のパッケージファイル「Installer」と「Archive」ができました。「One-Click Download」で2つとも保存してください。

とあるが、出来るサイトとできないサイトがあった。
その場合は「Installer」と「Archive」をそれぞれクリックで保存したものを使う。

保存した「installer.php」と「アーカイブZIPファイル」をhtdocsの適切なディレクトリにドラッグ&ドロップする。圧縮ファイルはそのままでいい。
データベースも作らなくていいと思う。

で、localhost/(ディレクトリ名)/installer.phpにアクセスして、作業を進める。
Step 2のSetupで
Actionを「Create New Database」に変更する。

あとはサイトの通りに。

1つサイトが文字化け起こしているけど、何とかなりそう。 
文字化けはどうしようもなかった。
サーバーのバックアップから起こしたけれど無理だったので、他と同じくローカルから起こしなおして何とかなった、かな?

RSSフィードを出力表示しているところでエラーがいっぱい出ていたので、これも修正がいりました。

参考サイト
wp-includes/SimplePie/Parse/Date.php on line 694のエラーが表示される
WordPress RSS系エラー「/wp-includes/SimplePie/Parse/Date.php on line 694」が表示される

mod_fcgid: stderr: PHP Warning: A non-numeric value encountered in /home/ユーザーID/exsample.com/public_html/wp-includes/SimplePie/Parse/Date.php on line 694

と表示されるのを修正。

『/wp-includes/SimplePie/Parse/Date.php』 694行目(695行目?)

$second = round($match[6] + $match[7] / pow(10, strlen($match[7])));

$second = round((int)$match[6] + (int)$match[7] / pow(10, strlen((int)$match[7])));
に変更上書きする。
これコアをアップデートするたびに修正しないといけないかも、ですって。
やれやれ。
なんとかXAMPPのアップデートとローカル環境は復元できたかな。