Mac OS Snow Leopard: phpinfo() ページで mysql.default_socket の値が変更されないのはなぜですか?

Mac OS Snow Leopard: phpinfo() ページで mysql.default_socket の値が変更されないのはなぜですか?

Mac OS Snow Leopard 10.6.4 でローカルに mySQL に接続しようとすると、エラーが発生します。mySQL 5.1.46 を実行しています。コンソールを使用してログインできます。PHP 5.3.2 を実行しており、ページはphpinfo()正常に動作しています。PHP は実行されているので、コンソールと Sequel Pro の両方を使用して mySQL サーバーにログインできます。

そこで、ソケットの問題ではないかと考えました。/etc ディレクトリには php.ini はなく、php.ini.default があります。そこで、そこに入って、"default_socket" があるすべての場所を次のように変更しました。

/var/mysql/mysql.sock

に:

/tmp/mysql.sock

以下の場所で見かけます:

pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock

phpMyAdmin に接続しようとすると、次のエラーが表示されます: エラーなしでセッションを開始できません。PHP および/または Web サーバーのログ ファイルに示されているエラーを確認し、PHP インストールを適切に構成してください。

ファイルを確認するとphpinfo()、mySQL の下に次の内容が表示されます。

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

Apache を再起動します...いや、コンピュータ全体を再起動します。それでも何も起こりません。mySQL が動作していることはわかっています。PHP が動作していることはわかっていますが、通信できません。

何か助けて?

答え1

PHPはphp.iniファイル(php.ini.defaultではない)を探してロードする必要があるので、php.ini.defaultをphp.iniに名前変更してみてください。Snow Leopard に Apache/PHP/MySQL をインストールする

答え2

mysql または php の設定をいじりたくない場合は、次のハックを設定してください。

mkdir /var/mysql

sock は、mysql.sock の次の行に格納されます。

これにより、PHP が探している場所に、実際の mysql.sock に接続するエイリアスが作成されます。

答え3

mysql.sock を PHP に導入する

MySQL と Leopard で発生した問題の 1 つは、mysql.sock ファイルの場所にあります。以前は、このファイルのデフォルトの場所は /tmp ディレクトリでした。その場所は、現在 /var/mysql ディレクトリに移動されています。PHP はそこでファイルを探します。残念ながら、MySQL のデフォルトの場所により、ファイルは依然として古い場所に置かれます。/etc ディレクトリに my.cnf 構成ファイルを作成することで、この問題を解決できます。次の内容のファイルを /etc/my.cnf に保存します。

[クライアント] ソケット = /var/mysql/mysql.sock

[mysqld] ソケット = /var/mysql/mysql.sock

ターミナル ウィンドウで次のコマンドを入力して、sock ファイルのディレクトリを作成します。

sudo mkdir /var/mysql sudo chown _mysql /var/mysql

ソース:http://www.procata.com/blog/archives/2007/10/28/working-with-php-5-in-mac-os-x-105/

答え4

この問題を解決するために、次の操作を実行しました (Mac OS x) -

1.) まずApacheのWebルートに移動します(/etc/apache2/httpd.conf から利用可能なパス -> DocumentRoot私の場合は/Library/WebServer/Documents/でした。

1.1) その場所にshowphpconfig.phpを作成します。

2.) ブラウザでこのファイルにアクセスします:http://127.0.0.1/showphpconfig.php

これにより、Apacheサーバーが使用している設定ファイルが表示されます。

私の場合は/private/etc/php.ini

また、phpがmysqlのsockファイルを使用していることもわかりました。/var/mysql/mysql.sock

3.) php.ini ファイルのコピーを作成しました。それを開いて、mysql.sock が含まれる行をすべて見つけます。

これらの行をコピーして、以下のように新しいエントリを作成します。

;pdo_mysql.default_socket=/var/mysql/mysql.sock
pdo_mysql.default_socket=/tmp/mysql.sock

インプ最初の行の前の「;」は最初の行をコメントアウトします。
このような行が4行ほどあるはずです。

これで、mysqlソケットファイルが実際には/tmpフォルダに存在することをphpに伝えました。

4.) Apacheサーバーを再起動します -apachectl restart

そしてWordPressの設定画面が表示されます

関連情報