対象サーバについて
製品名 | OpenBlockS 600 |
OS(kernel ver) | Debian lenny(2.6.29) |
CPU | 600MHz(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を使用することで他の文字コードとの混在環境などで問題になると嫌なので、コメントアウトしています。