日本語関連の動作設定
出典: 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以降となりますのでご注意下さい。