映画とネットのDIARY(tDiary版)
検索エンジンからのアクセスで、お探しのキーワードが見あたらない場合はNamazuで再検索してみてください。
【映画の感想一覧】 2004年7月以降 2005年 2006年 2007年 2008年 2009年
2009年03月14日 [Sat]
■ データベース移行のテスト
ローカルで試してみた。さくらインターネットからエクスポートしたSQLファイルは6.8MB。ローカルのphpMyAdminでは設定で2048KBまでしかインポートできなかったのでphp.iniの以下の部分を16Mに書き換えた。
; Maximum allowed size for uploaded files. upload_max_filesize = 16M
インポートする文字コードをeucjmsに変更。しかし、このままではインポートできなかった。文字コードの混在が影響しているのだろう。データベースを削除してインポートすれば、できるが、レンタルサーバー上でもこれができるのかどうか。とりあえず、その方法でインポートした上で、WordPressのwp-config.phpのデータベース名をさくらインターネットで使っているデータベース名に変更。WordPressにアクセスしてみたら、予想通り、激しく文字化けしている。
続いてCSV形式のファイルをインポートしてみた。そのままではエラー。データの区切りをセミコロンからコロンに変えてやってみると、インポートに時間がかかってエラーで終了する。ダメだ、こりゃ。
XOOPSの方はSQL形式でエクスポート、インポートで難なく終了した。やっぱり優秀だな。といってもローカルにXOOPSはインストールしていないのでちゃんと動くかどうかは分からない。
WordPressのプラグインWordPress Databese Backupでエクスポートしてみると、これ、テーブルが3つしかエクスポートされず、肝心の投稿は含まれていなかった。このプラグインが悪いというよりも文字コードが違うんだからしょうがない。wp-config.phpを削除した上で再インストールし、XMLのエクスポート、インポートで対応するか、テーブルを一つずつ処理していくしかないだろう。
ついでに書いておくと、バックアップのプラグインはwp-dbmanagerの方が優秀。ローカルで試してみたら、WordPressのデータすべてがエクスポートされた。サーバー上でWordPressのデータだけをエクスポートできれば、これが使えるんだけどな。
■ XOOPSをローカルにインストール
というわけでXOOPSを、というかホダ塾ディストリビューション(HD)をWindowsにインストールしてみる。久しぶりにインストーラーに触れたが、これは簡単だなあ。すいすい進んであっという間にインストールが終わる。さて、設定を変えようと思って管理者としてログインしようとすると、エラー。管理者メニューに入れないと、XOOPSは何もできない。エラーメッセージは「Maximum execution time of 30 seconds exceeded」と出る。
これはセッションの設定が悪いのかと思って、php.iniをいろいろいじったが、改善できない。エラーメッセージを見ると、どうもタイムアウトエラーのようなので、max_execution_time = 30とあったのを60にしてみたら、ようやくログインできた。ここまで3時間ほどかかった。やれやれ。php.iniの設定で主なものは以下の通り(PHPをc:\phpにインストールした場合)。これで、WordPressとHDが動いている。
output_buffering = Off output_handler = mb_output_handler max_execution_time = 60 magic_quotes_gpc = On magic_quotes_runtime = Off default_charset = "UTF-8" file_uploads = On upload_tmp_dir = /temp upload_max_filesize = 16M include_path = ".;c:\php\includes" extension_dir = "c:\php\ext" extension=php_gd2.dll extension=php_mbstring.dll extension=php_mcrypt.dll extension=php_mysql.dll extension=php_pdo.dll extension=php_pdo_mysql.dll session.use_cookies = 1 session.use_only_cookies = 0 session.auto_start = 0 session.cookie_lifetime = 0 mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.detect_order = auto mbstring.substitute_character = none;
問題はサーバーからエクスポートしたデータがローカルで使えるかどうかだが、これはなかなか難しい。普通に読み込むと、アクセスログの中にEUC以外の文字コードがあって、そこでインポートが止まってしまう。文字化けしている部分を3カ所ほど削除したら無事読み込めた。それでもサーバーとローカルとでインストールしているモジュールやデザインが違うのでそのままでは何も表示されない。たぶん、サーバーとまったく同じ構成にすれば、正常に表示されるのだろう。ということにしておく。なんだか、MySQLの移行が不安になってくるな。