コンテンツにスキップ

PHP5-MYSQLの設定

Debian lenny
本記事は 2010 年 8 月に旧サイト(オンプレミス環境)で公開した記録の復元です。内容は当時のまま掲載しています。

対象サーバについて

製品名OpenBlockS 600
OS(kernel ver)Debian lenny(2.6.29)
CPU600MHz(AMCC PowerPC 405EX)
メモリ1GB(DDR2 SDRAM)
ストレージ8GB(Compact Flash)

php5-mysqlのインストール

www:~# aptitude install php5-mysql

php5-mysqlの設定

www:~# vi /etc/php5/apache2/php.ini
mysql.default_port = 3306
mysql.default_host = localhost
mysql.default_user = dbadmin
mysql.default_password = abcdefgh

上記箇所のみを修正します。

PHPからMysqlに接続する際の条件として、3306番ポート、デフォルトホストはlocalhost、ユーザとパスワードはMysql5の設定で作成したユーザです。

次に文字化け対策です。PHPからMySQLに接続する際にはかなりの確率で文字化けが発生します。

本サイトでもMysql5の設定及び上記設定だけでは文字化けしました。

yossy.blogさんのサイトMyNA Web Siteさんのサイトによると、文字化け対策の中身はMySQLのバージョンにより以下の通りにパターン訳できるようです。

MySQL v4.1.15以降、MySQL v5.0.13以降

MySQL v4.1.2~4.1.14

MySQL v5.0.0~5.0.12

MySQL v4.1.0~4.1.1

MySQL v4.0系

本サーバ上のMySQLバージョン(5.0.51a-24)は上記、MySQL v4.1.15以降、MySQL v5.0.13以降に当たるため、以下の修正を施してMySQLを再起動したところ、文字化けが無くなりました(環境の異なる方は上記サイトを参照してみて下さい)

www:~# vi /etc/mysql/my.cnf
     (省略)
[mysqld]
#init-connect="SET NAMES utf8"
default-character-set = utf8
skip-character-set-client-handshake
log-bin=mysql-bin
     (省略)

このオプションを指定すると、PHPから接続したときでも自動的にクライアント側の文字コードが「default-character-set」で指定されたものに自動設定されます。

init-connect="SET NAMES utf8"でも文字化けは解消されましたが、強制的にUTF8を使用することで他の文字コードとの混在環境などで問題になると嫌なので、コメントアウトしています。

Amazonアソシエイトリンク