ラブラドールレトリバー「忠太の心の声」

黒ラブ忠太と忠太パパのブログ。
最近は仕事の備忘録としてのエントリーが多いです。

Vine Linux 6.2 EUC-JPの文字化けで苦戦しました

2014-05-30 | Web・PC
■長い前置き(読み飛ばしてけっこうです)

毎度のことですが、Linuxの素人が社内のテストサーバーを Vine Linux 6.2 で構築しました。
なので、正しくないかもしれませんが、参考までに・・・・

今回は64ビットOS、php5.5、MySQL5.1などなど最新?のものを取りれました。
ハードは、何年か前に購入した DELL PowerEdge T410
これに新たにハードディスクを2台購入、交換して使います。(RAIDは組みません)

なんの為に新サーバーを構築するかというと、
お客様を含め、自社のレンタルサーバーのphpが軒並み5.4にバージョンアップするにあたり
現在の5.2で構築したphpの動作確認と、現在稼働中のテストサーバーのリプレースが目的です。

サーバーの構築は、ググればほとんど調べることができるので、スムーズに進みます・・・普通はw
私の場合、稼働中のphp、mysqlともにエンコードがいまだに EUC-JP です。

ネット上の構築レポなどは、ほとんどが UTF-8 なので、最後は設定を一つづつ変えて手探りでなんとか完了しました。
なので、その設定を晒しておきます。

■phpMyAdmin で日本語が表示されたり、されなかったり?

最後まで苦戦したのが phpMyAdmin 4 です。いまの最新バージョンは内部が UTF-8 なんでしょうか、そのような文章を見た気がします。
phpが EUC-JP で書かれていて、mysql が UTF-8 ?、データは EUC-JP だと思うのですが・・・
phpMyAdmin の照合順序を ujis_japanese_ci や eucjpms_japanese_ci にすると、日本語が表示されたりされなかったりします。ほとんど表示されませんが。
php.ini の設定で、すべて UTF-8 にすると、phpMyAdmin は正しく表示されるのですが、そうするとプログラムのphpが文字化けします。
いまこれを書きながらだと、解決した結果は当たり前のように思えますが、その時は全くわからず、すごく悩みました。

大まかに結論をいうと、全体が EUC-JP で、phpMyAdmin だけ UTF-8 にしました。

■各設定項目(追加や変更した箇所)

php.ini
-----------------------------------------------------------------------------------------------------
output_buffering = On
output_handler = mb_output_handler
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
magic_quotes_gpc = Off
default_charset = EUC-JP
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = pass
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;

my.cnf
-----------------------------------------------------------------------------------------------------
default-character-set = ujis
skip-character-set-client-handshake

smb.conf
-----------------------------------------------------------------------------------------------------
[global]
dos charset = cp932
unix charset = UTF-8
display charset = UTF-8

■とどめは.htaccess

.htaccessを下記のように設定して、phpMyAdmin のディレクトリのカレントに置きます。

php_value mbstring.language neutral
php_value mbstring.internal_encoding UTF-8


わたしの Vine Linux は、これで正常に日本語が表示されるようになりました。
参考になれば幸いです。(というか、自分の備忘録ですがw)


最新の画像もっと見る

コメントを投稿