mac で apache2 + php-5.3 + mysql を動かす

PHPを動かして満足してたけど、MySQLの設定をしていないことに気がついた。
普通に動くかな、と思ったけど、MySQLはMacPortsでセットアップしたので、
全然動かず。

エラーログから、Google先生の力を借りたところ、単純な作業で解決できました。
結論から言うと、php.iniをちょっと書き換えるだけ。
MacPortsでインストールしたmysql5の場合、/opt/local/var/run/mysql5/mysql.sock
にあるので、そこの箇所を以下のように書き換えた。
satoshi-mac-mini% diff -cw /etc/php.ini /etc/php.ini.default
*** /etc/php.ini        2010-05-16 23:43:55.000000000 +0900
--- /etc/php.ini.default        2010-02-11 19:32:50.000000000 +0900
***************
*** 1060,1067 ****
  ; Default socket name for local MySQL connects.  If empty, uses the built-in
  ; MySQL defaults.
  ; http://php.net/pdo_mysql.default-socket
! ;pdo_mysql.default_socket=/var/mysql/mysql.sock
! pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock
 
  [Phar]
  ; http://php.net/phar.readonly
--- 1060,1066 ----
  ; Default socket name for local MySQL connects.  If empty, uses the built-in
  ; MySQL defaults.
  ; http://php.net/pdo_mysql.default-socket
! pdo_mysql.default_socket=/var/mysql/mysql.sock
 
  [Phar]
  ; http://php.net/phar.readonly
***************
*** 1214,1221 ****
  ; Default socket name for local MySQL connects.  If empty, uses the built-in
  ; MySQL defaults.
  ; http://php.net/mysql.default-socket
! ;mysql.default_socket = /var/mysql/mysql.sock
! mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
 
  ; Default host for mysql_connect() (doesn't apply in safe mode).
  ; http://php.net/mysql.default-host
--- 1213,1219 ----
  ; Default socket name for local MySQL connects.  If empty, uses the built-in
  ; MySQL defaults.
  ; http://php.net/mysql.default-socket
! mysql.default_socket = /var/mysql/mysql.sock
 
  ; Default host for mysql_connect() (doesn't apply in safe mode).
  ; http://php.net/mysql.default-host
***************
*** 1274,1281 ****
  ; Default socket name for local MySQL connects.  If empty, uses the built-in
  ; MySQL defaults.
  ; http://php.net/mysqli.default-socket
! ;mysqli.default_socket = /var/mysql/mysql.sock
! mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
 
  ; Default host for mysql_connect() (doesn't apply in safe mode).
  ; http://php.net/mysqli.default-host
--- 1272,1278 ----
  ; Default socket name for local MySQL connects.  If empty, uses the built-in
  ; MySQL defaults.
  ; http://php.net/mysqli.default-socket
! mysqli.default_socket = /var/mysql/mysql.sock
 
  ; Default host for mysql_connect() (doesn't apply in safe mode).
  ; http://php.net/mysqli.default-host
んで、sudo apachectl restart で無事動くことを確認。
完璧だ。


人気の投稿