PHP+MySQLでNo such file or directoryエラー

スポンサーリンク

PHP + MySQL でローカルに開発環境を構築していて遭遇したエラーです。自分の Mac ローカル開発環境では、phpenv を使って複数の PHP バージョンを管理しています。

— 環境 —
Mac OS X El Capitan 10.11.3
MySQL 5.6.19
phpenv v0.3.0

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

PHP での MySQL ソケット設定を確認

PHP から MySQL データベースに接続する部分でエラーが発生しており、MySQL のソケットファイル絡みだろうと予測がついたので、まずは PHP の socket 周りの設定を確認。

自分の環境では、以前 MySQL のソケット場所を変更してあったので、MySQL ソケットのパスは /var/lib/mysql/mysql.sock となっています。

MySQLのソケット場所変更、my.cnfでのsocket設定の注意点 | EasyRamble

なので、ソケットのパスを /var/lib/mysql/mysql.sock と指定する必要があります。

php.ini の場所を確認

続いて MySQL ソケットを指定するために、php.ini を確認することにしました。まずは読み込まれている php.ini がどこにあるか確認します。

phpinfo.php

上記ファイルをブラウザで表示して、以下の項目から読み込まれる php.ini のパスが分かります。

Configuration File (php.ini) Path
Loaded Configuration File

Mac の phpenv 環境でデフォルトだと、php.ini のパスはおそらく次のようになっているはずです。

php.ini で MySQL の socket を指定

php.ini を編集して MySQL ソケットのパスを指定します。

php.ini

最後に apache を再起動。

これで表題のエラーメッセージが消えて、無事に PHP から MySQL に接続されるようになりました。

スポンサーリンク
私は Ruby on Rails の前は、PHP & CakePHP を使っていました(今も使いますけど)。PHP についてはオライリーの本を中心に軽く10冊以上は読み込みました。
 
スポンサーリンク

Leave Your Message!