日本語関連の動作設定

出典: SugarForum.jp

PHPの設定

php.iniには日本語(マルチバイト関数)のための設定項目がいくつかあります。これらを下記のように設定してください。

mbstring.language        = Japanese
mbstring.internal_encoding    = UTF-8
mbstring.http_input           = auto
mbstring.http_output          = pass
mbstring.detect_order         = auto
mbstring.substitute_character = none
default_charset = "UTF-8"

サーバの処理速度に問題がないのに、クライアント側のページレンダリングが遅い場合、バッファリングやコンプレッションを有効にすると性能が改善します。

output_buffering = On ; Build entire response before sending to client
zlib.output_compression = On ; Turn on compression of page responses

MySQLの設定

SugarCRM日本語版では、MySQL 4.1以降を使用することを強く推奨します。文字コードがUTF-8ですので、1文字あたりのデータ長が3バイトになります。MySQL 4.1以降では、データベースの文字コードをUTF-8にすることで、文字数にあわせてカラム長が変更されるようになり、3バイト/文字の格納が可能になります。

MySQLサーバの文字コード設定について:日本語の一部が文字化けして読めない場合は、クライアント側の文字コードのどこかにEUC-JPが設定されています。この場合、my.cnfの[mysqld]部分に以下の1文を追加し、MySQLを再起動してください。一度化けた文字は設定を変更しても直らない場合があります。その場合は文字を入れ直してください。

languageの設定は任意です。WindowsサーバでMySQL 4.1以降を使う場合は、language =japanese-sjisにします。languageに日本語を指定すると、MySQL Command Line Client等で表示されるMySQLのメッセージが日本語になります。SugarCRMではlanguageは使いません。

init-connect=SET NAMES utf8
//init-connectは、クライアントが何であっても接続時にSET NAMES utf8を実行するというものです。
//my.cnf設定例:
[client]
default-character-set=utf8

[mysqld]
language = japanese
default-character-set=utf8
init-connect=SET NAMES utf8

PHP5 でのMySQLの設定

PHP5でMySQLを使用する場合、クライアント(PHPアプリケーション)のcollationとMySQLサーバのcollationが一致せずにillegal mix of collationsのエラーが発生する場合があります。その際には、MySQLのmy.ini(もしくはmy.cnf)のmysqldセクションにて、

skip-character-set-client-handshake

を指定し、サーバ側のcollationに合わせるようにします。なお、この設定が可能になるのはMySQL 4.1.15以降となりますのでご注意下さい。


最終更新 05:21, 2008年8月13日 (水)。   このページは 9,079 回アクセスされました。