Joomla!1.5系の構築からWordPressへの記事移行

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

Joomla! 1.5.10で構築されている化石サイトをWordpressに移行するときにしたことメモ。
環境構築から記事移行まで。MAMPを使うのでMac向けです。ハマったところを全部書いてるのでかなり冗長です。

PR

結論だけ知りたい人は最後のまとめへ行ってください。

環境

移転元

  • さくらサーバー レンタルサーバープラン
  • Joomla! 1.5.10
  • Apache/2.2.29
  • MySQL 5.5.28
  • PHP 5.2.17

移転先

  • localhost
  • WordPress 4.4
  • MAMP
  • Apache/2.2.29
  • MySQL 5.5.28
  • PHP 5.6.10

Joomla!からWordpressへの記事移行

今現在(2015/12/11)わりと更新されている「FG Joomla to WordPress」を使うことにしました。

まずはローカルにWordpress環境を構築。構築方法はあちこちのサイトで紹介されているので各自ググってください。

プラグインで「FG Joomla to WordPress」をインストールして有効化、サイドメニューにあるツールのインポートからJoomla!を選択するとインポート画面が出ます。

移転元のサイトにあるconfiguration.phpに書かれている$host, $user, $password, $db, $dbprefixを参考に入力していくのですが、どうやってもテストが通らない・・・。

どうやらさくら側の問題みたいです。

さくらのデータベースは外部からアクセスが出来ない

さくらのサーバーでは、レンタルサーバープランの場合、データベースに外部からアクセスが出来ません。

え、これもう無理じゃね・・・。と思ったのですが、ローカルにJoomlaをインストールしてそこへデータを移せばインストール出来るのでは!!ということを思い立ち、試してみることにしました。

Joomlaのインストール

さて、ローカルにJoomlaをインストールすることとなったのですが、いかんせんドキュメントが少ない・・・。今回は移転元と同じ環境を構築するためにJoomla! 1.5.10をローカルにインストールします。

まずはMAMPのphpMyAdminからjoomla用のデータベースを作成します。ここらへんはWordPressの時と一緒。

Joomla! 1.5.10を以下からダウンロード。

解答して、MAMPのhtdocs/joomla以下にまるっと移動。今回は分かりやすく/joomlaとしましたが別になんでも良いです。ブラウザでアクセスする時のURIが変わるだけです。

http://localhost:8888/joomla/にアクセスすると以下の画面が出てきます。

言語の選択

言語の確認をして次へ。

事前確認

事前確認がすべて「はい」になっていることを確認して次へ。

ライセンス

ライセンスを確認して次へ。

データベースの設定

データベース種類は「mysql」、ホスト名はlocalhost、ユーザーはroot、パスワードはroot、データベース名は先ほど作ったものを入力して次へ。

拡張設定のプレフィックスに注意しましょう。移転元のサイトのプレフィックスと同じにしておかないといけません。configuration.phpの$dbprefixに書かれています。

と、ここで以下のエラーが出ます。

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘TYPE=MyISAM CHARACTER SET utf8‘ at line 29 SQL=CREATE TABLE jos_banner ( bid int(11) NOT NULL auto_increment, cid int(11) NOT NULL default ‘0’, type varchar(30) NOT NULL default ‘banner’, name varchar(255) NOT NULL default ”, alias varchar(255) NOT NULL default ”, imptotal int(11) NOT NULL default ‘0’, impmade int(11) NOT NULL default ‘0’, clicks int(11) NOT NULL default ‘0’, imageurl varchar(100) NOT NULL default ”, clickurl varchar(200) NOT NULL default ”, date datetime default NULL, showBanner tinyint(1) NOT NULL default ‘0’, checked_out tinyint(1) NOT NULL default ‘0’,
checked_out_time datetime NOT NULL default ‘0000-00-00 00:00:00’, editor varchar(50) default NULL, custombannercode text, catid INTEGER UNSIGNED NOT NULL DEFAULT 0, description TEXT NOT NULL DEFAULT ”, sticky TINYINT(1) UNSIGNED NOT NULL DEFAULT 0, ordering INTEGER NOT NULL DEFAULT 0, publish_up datetime NOT NULL default ‘0000-00-00 00:00:00’, publish_down datetime NOT NULL default ‘0000-00-00 00:00:00’, tags TEXT NOT NULL DEFAULT ”, params TEXT NOT NULL DEFAULT ”, PRIMARY KEY (bid), KEY viewbanner (showBanner), INDEX idx_banner_catid(catid) ) TYPE=MyISAM CHARACTER SET utf8

どうやらMySQL4.0.2より後では”TYPE=MyISAM”という書き方が非推奨となり、”ENGINE=MyISAM”と書くようにしなければならないようです。

ということで該当ファイルを編集します。

installation/sql/mysql/joomla.sqlを開き、”TYPE=MyISAM”を”ENGINE=MyISAM”に書き換えます。36箇所が変更されるはず。

これで先程のインストール作業に戻ります。

PR

データベースの選択画面で次へを押すと以下の画面になります。

全般設定

サイト名と、パスワード、管理者アドレスを入力して次へ。サンプルデータのインストールに失敗しますが、別に必要ないのでそのまま進みます。

完了

これでJoomla! 1.5.10のインストールは完了です。installationディレクトリ以下を削除してhttp://localhost:8888/joomla/administratorにアクセスします。

  • ユーザー名: admin
  • パスワード: さっき設定したもの

で管理者画面にアクセス出来ればOKです!

Joomla間のデータ移行

Joomla間のデータ移行には、データベースのインポート・エクスポートとAkeebaというエクステンションを使うという2つの方法があります。

結論から言うと、Akeebaは使えませんでした。が、色々と試したので記録として残しておきます。

Akeeba Backup Core 4.4.3 for Joomla!

Akeeba Backup Core 4.4.3 for Joomla!はJoomla!用のバックアップエクステンションです。これを入れます。

まずはエクステンションをakeebabackup.comからダウンロード。

管理画面のエクステンション->インストール/アンインストールをクリック。

一番上の「パッケージファイルのアップロード」にダウンロードしたzipファイルを入れてインストール!としたいところですが、
サーバにファイルをアップロード時にエラーが発生しました
との表示。これを回避するためにはアップロードしてからじゃないとダメっぽい。

/home/hogehoge/www/tmp/akeeba以下にzipファイルを解凍した中身を全て放り込むと今度は
ERRORNOTFINDJOOMLAXMLSETUPFILE
というエラー

ググってみると、どうやらakeebaの最新版は1.5をもはやサポートしていないらしい。

ならば、1.5をサポートしている最新版である3.4.6をダウンロードしようじゃないか。akeebabackup.com – 3.4.6の下の方からcoreファイルをダウンロードして、一番上の「パッケージファイルのアップロード」にダウンロードしたzipファイルを入れてインストール。今度はうまくインストールできました。

起動させてみよう。コンポーネント->Akeeba backupとすると403エラー

403 - エラーが発生しました

なんでや!Akeeba backup 3.7.6なら大丈夫らしい。

いやでも、3.7.6はPro版しか無いみたいだぞ・・・。無料版は無いのか!とググッていると以下のページを発見。

行けるのはJoomla! 1.5.15以降だけでそれ以前のは出来ないんだってさ・・・。

Akeebaを使うのを諦めます。

データベースのインポート/エクスポート

データベースのインポート/エクスポートに切り替えます。移転元のサーバーにでphpMyAdminにログインします。該当のデータベースを開き、タブにあるエクスポートを選択。

エクスポート

DROP TABLE・・・にチェックを入れ、右下の実行するを選択。

今度はインポート。MAMPからphpMyAdminを開きます。Joomla!で使っているデータベースを開き、タブにあるインポートを選択。

インポート

ファイルを選択ボタンからダンプしたファイルを選択し、左下の実行ボタンでインポート。

ここで移転元のデータベースの接頭辞に注意しましょう。configuration.phpの$dbprefixに書かれているのですが、これを間違えるとデータベースに違うテーブルとして入ります。Joomla!を再インストールする羽目になるので注意。

インポートが正常終了すれば、もう一度管理画面にアクセスしてみましょう。ユーザー情報もインポートしているので、移転元のユーザ名とパスワードでログインが出来ます。(逆にさっき設定したものは使えません。)

FG Joomla to WordPress

やっと、ここまでたどり着きました。このプラグインを使うだけです。

接続確認

上のようにフォームを埋めてTest the database connection。

接続確認完了

接続が出来ていれば上のようなアラートが出ます。下2つはPro版への告知ですね。今回は記事だけ移行するので無視します。

インポート設定
アーカイブされた記事は公開記事としてインポート
メタキーワードもインポート
投稿ではなく、固定ページとしてインポート
と設定してみました。

これでImport content from Joomla to WordPressボタンを押すとインポートが出来ます!

まとめ

とても長くなりましたが要点は以下の通りです。

  • さくらのレンタルサーバープランではデータベースに外部からアクセス出来ない。
  • その場合は一度ローカルにJoomla!環境を構築し、そこに記事を移す。
  • Joomla!1.5.15以前の記事移行はAkeebaではなく、phpMyAdminのデータベースのエクスポート/インポートから行う。
  • Joomla!からWordPressに記事を移行するのはFG Joomla to WordPressが良い。

PR

この記事が気に入ったら
いいね ! しよう

Twitter で
  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。