Mac OS X Server 10.4.4: Apache/PHP/MySQL の相互動作の機能強化

Mac OS X Server 10.4.4 では、Mac OS X Server にプリインストールされている PHP と MySQL が情報をやり取りするときのデフォルトの動作に関連した 2 つの問題が解決されました。

  • PHP の MySQL クライアントライブラリがアップデートされ、MySQL の最新バージョンで利用可能な、より安全性の高い認証メカニズムを認識できるようになった。したがって、以前の形式のパスワードも引き続き正しく認識されるが、今後は、--old-passwordsオプションを使って MySQL を起動したり、MySQL のパスワードをわざわざ以前の形式に戻す必要がない。
  • PHP と MySQL が使うデフォルトのソケットの場所が同じになった (/var/mysql/mysql.sock)。MySQL の構成を変更し、“/tmp/mysql.sock”を使うように設定を元に戻していたとしても、アップデートプロセスがその条件を検出し、“/var/mysql”内にシンボリックリンクを作成するため、PHP は正常にソケットにアクセスすることができる。ただし、これは混乱を避けるために加えられた、あくまでも一時的な対策であるため、なるべく早めに MySQL 構成ファイルの [mysqld]および [client] セクションからすべてのソケットディレクティブを削除し、MySQL がデフォルトのソケットの場所を利用できるようにする必要がある。この後で MySQL を再起動すると、“/var/mysql”からシンボリックリンクが削除されてソケットと置き換えられ、PHP はアクセスを続けることができる。

さらに、障害なく Apache Web サーバとシームレスに情報をやり取りできるように、以下の変更が加えられました。


  • 「MySQL マネージャ」は Web サーバからのアクセスを許可するアクセス権が設定された“/var/mysql”ディレクトリ(MySQL ソケットのあるディレクトリ)を作成するようになった。
  • そのディレクトリがすでに存在する場合、アップデートプロセスが正しいアクセス権を設定する。
この記事はアーカイブ済みで、これ以上更新されることはありません。

自分で別にインストールした MySQL の場合
MySQL を自分でダウンロードしてインストールし、PHP はプリインストールバージョンを使っている場合、MySQL のカスタムバージョンが“/tmp/mysql.sock”という以前の MySQL ソケットの場所を使うように構成されている可能性があります。今回のソフトウェアアップデートに含まれている PHP のバージョンは、デフォルトで“/var/mysql/mysql.sock”という新しい場所を使います。

したがって、PHP スクリプトがカスタムインストールした MySQL にうまく接続できない場合、このことが原因になっている可能性があります。この問題を解決するには、以下の手順に従って、以前の MySQL ソケットの場所を使うように PHP 構成ファイルを修正します。

  1. もしなければ、“/etc/php.ini”を作成します(このためには、“/etc/php.ini.default”を“/etc/php.ini”にコピーします)。
  2. /etc/phi.ini”構成ファイルをエディタで開き、[MySQL] セクションにある以下の行、

    mysql.default_socket = /var/mysql/mysql.sock

    これを、以下のように変更します。

    mysql.default_socket = /tmp/mysql.sock
  3. Web サーバを再起動し、新しい PHP の設定を有効にします。このとき、MySQL を再起動する必要はありません。

その後、Mac OS X Server にプリインストールされている“

/var/mysql/mysql.sock

”を利用する MySQL のバージョンを使いたくなった場合は、“

/etc/php.ini

”ファイルから上の行を削除するか、または行の内容を元に戻してください。

公開日: