BLOGスタッフブログ

インソースマーケティングデザイン

2012.04.23 システム

XOOPSのサーバー移行のポイント

最近古いサーバーから、新しいサーバーにXOOPSを引越しする案件がありました。

旧サーバーではEUC-JPでphpやmysqlがセットアップされていましたが、新サーバーでは今後の事も考えUTF-8で各サービスを動かすようにセットアップしました。XOOPS自体はEUC-JPで安定稼動しているので、UTF8に変換等の対処は行わず、小手先だけの対応で移行が可能でしたので、困っている人は参考にしてください。

<ポイント① MySQLの復元>

1.EUC-JPのDBはEUCで取得する。

 

    mysqldump -u admin -pPASSWORD DBNAME --default-character-set=ujis --opt > /home/marineroad/DUMPNAME

 

 

2.移行先となるDBはEUC-JP(ujis)で作成する。

 

    create database DBNAME default character set ujis;

 

 

3.後はそのまま復元する。

 

    mysql -u admin -pPASSWORD DBNAME < /home/marineroad/DUMPNAME

 

※もしうっかりデフォルトの文字コードでダンプを取ってしまっても「SET NAMES utf8」となっている行を「SET NAMES ujis」にすればOKです。

 

 

<ポイント② .htaccessでの設定変更>

1.下記の設定をドキュメントルートの.htaccessに追加する。

 

    AddDefaultCharset EUC-JP
    AddType "text/html; charset=EUC-JP" .html
        
        php_flag  output_buffering              Off
        php_value output_handler                none
        php_value default_charset               EUC-JP
        php_value mbstring.language             japanese
        php_flag  mbstring.encoding_translation On
        php_value mbstring.http_input           auto
        php_value mbstring.http_output          EUC-JP
        php_value mbstring.internal_encoding    EUC-JP
        php_value mbstring.substitute_character none
    

 

以上で新サーバーの設定はそのままに既存のXOOPSを引越し出来たはずです。上記を実施しても文字化けが出る人はXOOPSとブラウザのキャッシュをクリアして再度アクセスしてみましょう。(私自身細かい検証はこれからですので、参考にした人は各自動作検証を良く行ってください。)

 

【追記】上記の対処でもどうしても動かない場合はこちらのリンクを参考にして、mysqldatabase.phpの236行目にmysql_query(“SET CHARACTER SET ujis”, $this->conn);を追記すると良いみたいです。

 

インソースマーケティングデザインが書いた他の記事

見積もり・ご依頼など、
お気軽にご相談ください

本サイトはユーザーエクスペリエンスの向上などを目的に、Cookieを使用しています。
右記のバナーで「同意する」をクリックする、または本サイトを利用することにより、
お客様は弊社のCookieポリシーに同意したことになります。

同意します