■長い前置き(読み飛ばしてけっこうです)
毎度のことですが、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)
毎度のことですが、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)
※コメント投稿者のブログIDはブログ作成者のみに通知されます