月別アーカイブ: 2015年12月

今年最後の仕事はWordPressをレンタルサーバーからローカル環境へ

思いがけず時間がかかってしまいました。
WordPressで作ったサイトをクライアントさんのレンタルサーバーからローカル(InstantWordPress)にコピーし、バックアップを取ろうというものです。

プラグインを使うと簡単にできるだろうとたかをくくっていたのですが、かえって苦労する結果になりました。
レンタルサーバーはロリポップ、WordPressは4.4、試したプラグインは以下のとおり。
UpdraftPlus Backup and Restoration
Duplicator
All-in-One WP Migration

どのプラグインもエラーが出て中断。その都度、対処法を調べて少し進んだと思っても、結局ダメでした。
最後のAll-in-One WP Migrationに至っては、かなり順調に進んでいて、なんだ、最初からこれにすれば良かったと思っていたのに、データベースのインポート段階になったら何時間経っても終わらず…。

そこでシンプルにファイルをコピー、phpMyAdminでデータベースをエクスポート>インポートする方法に切り替えました。

それでも何度も壁に突き当たり、悩んだので、次回のために記録を取っておこうと思います。

まずInstantWordPressのphpMyAdminでインポートができないという壁。
これはエクスポートの仕方が悪かったようで、エクスポートをやり直して解決しました。


やった~

そして options というテーブルを選択して、siteurl とhomeをローカル用に書き換え。

2015123102

2015123103

特殊なケースですが、このデータベースにはWordPressが2つ自動インストールされていて、 wp1_ とwp2_ と接頭辞が付いているので注意。

wp-config.phpはここを書き換える。

/** The name of the database for WordPress */
define(‘DB_NAME’, ‘データベース名’);
/** MySQL database username */
define(‘DB_USER’, ‘root’);
/** MySQL database password */
define(‘DB_PASSWORD’, ‘’);
/** MySQL hostname */
define(‘DB_HOST’, ‘localhost’);

次なる壁はPHPのエラー。
Warning: Cannot modify header information – headers already sent (output started at script:line)

header関数より先に何かを出力しているということですか?
心当たりなし。
echo も空白も改行もありません。
問題のファイルをUTF-8 BOMなしで保存し直したり、InstantWordPressのphp.iniの設定を変えてみたり…。
いろいろやっているうちに、今度は真っ白になってしまいお手上げ状態。

ファイルを入れ替えたりしているうちになんとか解消して、次の壁はログインしようとするとレンタルサーバーにリダイレクトされる問題。

wp-config.phpにこんなのを加えてみる。
define (‘WP_SITEURL’, ‘http://localhost:ポート番号/フォルダ名/’);
define (‘WP_HOME’, ‘http://localhost:ポート番号/フォルダ名/’);

そうこうするうちになんとか管理画面にも入れたし、サイトの表示も正常?と思った矢先、なんか違う!?
プラグインが不足していたり、テーマが壊れていると言ってきたり。
ウィジェットやメニューの設定は一からやり直しでした。(なぜだろう?)

すっきりしないところはあるものの、とりあえず無事に複製できたようなので今年の仕事納めです。