WordPressでインポートツール使用時にエラーが発生した際の対処についての備忘録です。
現象
WordPress ME2.2.3で構築しているサイトAからエクスポートにて抽出したデータを、サイトBのWordpressへインポートするとエラーが生じる。
エラーメッセージは以下のとおり。
————————————————————-
アップロードしたファイルを/**hogehoge**/wp-content/uploadsに移動できませんでした。
————————————————————-
環境
■サイトA
サーバ情報の詳細は不明
Wordpress ME2.2.3にて構築
■サイトB
XREAサーバ
Wordpress 4.1.1
ごく簡単に書くと、「Wordpressのインポート機能が正常に動作しない」という現象でした。
サイトAのWordpressはバージョンが大変古く、さらにインポート先のサイトBはクセのあるXREAサーバ、またWordpressのインポートツール「WordPress Importer」はバージョンを下げないと動作しないケースがある……と、不具合の原因になりそうな要素が山の如し。
解決方法
最終的に、解決につながったと思われるのは以下の3点でした。
(1) サイトBの「WordPress Importer」をバージョン 0.2にダウングレード
(2) サイトBの /wp-admin/ へPHPのセーフモード対策の.htaccessをアップロード
(3) サイトBの /wp-content/uploads の作成し直し&パーミッション変更(777)
(1)についてですが、「WordPress Importer」は、どうやらWordpressのバージョンとの互換性がいまひとつらしく、バージョン 0.2にダウングレードすることによってそのあたりの問題が解決することが多いようです。
(※1) ダウングレードと書いてますが、単純に「WordPress Importer」を一度削除してからバージョン 0.2をFTPでアップし直すだけです。
(※2) 記事公開時の2015年2月はプラグイン配布ページからバージョン 0.2のデータがDL可能でしたが、現在は最新版のみDL可能な状態となっているようです。互換性の問題は最新版では解消されている可能性もありますので、そちらを試してみた方が良いかもしれません。
(2)については、以前の記事「WordPressのメディアアップロードでエラーが出る場合」をご参照ください。
(3)も(2)と関連性のある内容なのですが、「WordPressのメディアアップロードでエラーが出る場合」でも触れているとおり、XREAサーバはディレクトリ権限のミスマッチが発生してしまう環境で、wordpressが自動的に生成するディレクトリである /wp-content/uploads の所有者の設定を変更しなければならない場合があるようなのです。
「所有者の設定を変更って、どうやるんだよー」と思いますが、単に、FTPで対象フォルダを削除&再作成するだけでOKでした。
そして、忘れずにパーミッションを777に変更。
これで、なんとかインポートに成功しました。
また、サイトAから /wp-content/uploads 内の画像データをそのままサイトBにコピーすることにより、画像も正しく記事に紐付けされて表示されました。
なんとかなりました!
なお、Wordpressのエクスポート -> インポートは、記事が「追加」となるイメージです。
サイトB上に記事がある場合、サイトAのデータをインポートすると、サイトB上にもともとあった記事とサイトAの記事がすべて保持されている状態になります。
カテゴリも、単純にサイトBの既存カテゴリにサイトAのカテゴリが追加された状態になります。
また、サイトのドメインは影響しないので、例えばhogehoge.comのデータとho-ge.netのデータをそのまま共存させることができます。
未解決の現象
ただし、今回はインポート時に以下のようなワーニングが発生し、記事カテゴリが正しく設定されないという事象が発生しました。
————————————————————-
Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit in safe mode in /**hogehoge**/wp-content/plugins/wordpress-importer/wordpress-importer.php on line 438
————————————————————-
カテゴリやauthor、また記事ごとのauthor設定は正常にインポートされましたが、記事はすべて、投稿時に標準で設定されるカテゴリになってしまっていました。
今回は幸い、記事がすべて「未分類」カテゴリになっても問題ない状況だったのでことなきを得ました……セ、セーフ。
しかし記事数もカテゴリ数も多いサイトだと、このあたりは大きな問題になりそうです。
なお、「WordPress Importer」をバージョンアップしてしまうと、またインポートできない状態になってしまいますのでご注意ください。
今後、XREAサーバで同様の現象が発生した際の参考として、記録した次第です。
今回も大変勉強になりました~……。
参照サイト様、ありがとうございました!