- 2010-01-02 (土) 1:03
- 未分類

macport を間違えてupgradeしてしまって、その後動いていたものが動かなかったりとてんやわんや・・・そのひとつに、PHPにてMySQLとの連携ができなくなってしまった。
【結果】
今まで使っていた PHPが 5.2x だったんだけど、今回インストールした 5.3.1x では php.ini の設定が多少異なる?っぽくて、うまく設定が有効になっていなかったみたい。再度雛形を php.ini にリネームして設定し直したところうまくいった。
【詳細】
いつも extension=xxx の部分をコメントアウトしただけで上手くいっていたような気がするのだけど、何回やってもうまくいかない。ぐぐってみたところ、インストール後に以下のメッセージが表示されているらしい。
To use mysqlnd with a local MySQL server, edit /opt/local/etc/php5/php.ini and set
mysql.default_socket, mysqli.default_socket and pdo_mysql.default_socket
to /opt/local/var/run/mysql5/mysqld.sock
/opt/local/etc/php5/ にある php.ini-development を php.ini にリネームし、以下3つをコメントアウト。(ini-development と ini-production があるけれど、ローカルで使うだけなので適当)
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
で、メッセージにあるように
mysql.default_socket, mysqli.default_socket, pdo_mysql.default_socket
の3つに対して以下値を設定。
/opt/local/var/run/mysql5/mysqld.sock
あと、これも必要っぽい? 順番が前後しちゃってるかもだけど。
port でインストール: php5-mysql,
そしたらちゃんと phpinfo() に mysql の設定が表示された。
ついでに、phpmyadmin用も兼ねて以下インストール。
php5-mcrypt, php5-mbstring
[mbstring]は、自分はUTF8を使うように設定。