3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHPのビルトインサーバとHomebrewでインストールしたMySQLについて

Posted at

PHP5.4.0から簡易的にWEBサーバを立てれる機能が追加されましたね。

PHP公式

この機能、とても使えます。

PHPをにわか程度にしか使っていないので、バリバリ書いている人の感想はわかりません。

僕は、APIを扱う時やajaxでクロスドメイン制約を考慮した時などに使ってきました。

MySQLはHomebrewでインストールしています。

問題

ある日、PHPとMySQLを使って簡易的なシステムを作ることになりビルトインサーバでやれば簡単だし、mysqlへはPDOを使えば楽勝だと。

その日は思っていました........

この機能ほんと便利で、ディレクトリをそのアプリのルートに移動して

php -S localhost:8888

とかしてやれば、localhost:8888にそのディレクトリがルートのwebサーバが立ち上がります。

PDOにも慣れてきて、コードを書き進める手が休むことを知りません。

「さて、見てみるか。」

No such file or directory

は?( ? _ ? )

DB接続に関しては、同じコードなので間違えてはないぞ。。

なぜだ、、、、

調べてみました。

「ビルトインサーバからデータベース接続はエラーが出ます。」

どうやら、超便利なビルドインサーバですが、DB接続は初期のままだとエラーが出るらしい。

では解決法。

解決

いくつか方法はあるようです。

  • php.iniでパスを書き換える
  • MAMPに変える

この2つを僕自身が検証したので、この2つを紹介したいとおもいます。

ではまず、「php.ini」を書き換える方法

php.iniを書き換える

まずmysqlソケットプロセスのパスを確認します。

$ mysql_config --socket
> /tmp/mysql.sock

僕の場合は、/tmp/mysql.sockでした。

ではPHPはどこを目指しているか。

$ php -i | grep socket
> mysql.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock
  mysqli.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock
  pdo_mysql.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock

この3つも見てもらうと分かりますが、

PHPは/var/mysql/mysql.sock
MySQLは/tmp/mysql.sock

になっています。

では、php.iniに変更をかき加えよう。

php.iniを開き

mysql.default_socket,mysqli.default_socket,pdo_mysql.default_socketの3つを、'/tmp/mysql.sock'に合わせてみましょう。

ここまでしたら、

$ php -i | grep socket

先ほどと同じように確認すると同じになっているのが確認できると思う。

MAMPを導入する

正直、これが一番楽だし管理も簡単です。

MAMPというソフトをダウンロードしてきます。

MAMP

インストールしたら開いて設定をしましょう。

スクリーンショット 2016-06-13 11.53.21.png

この設定の上のタブからWEBサーバを選びます。

ApacheとNginxというWEBサーバが用意されていますが、apacheのままで大丈夫です。

ドキュメントルートという文字の横のフォルダのマークをクリックして、

php -S localhost:8888を実行していたディレクトリを選択してください。

そのあとサーバ起動というボタンで、apacheとmysqlが立ち上がります。

mysqlのユーザとパスワードですが、デフォルトでは

user-> root
password-> root

になっています。

サーバ起動ボタンを押すと、webページが開くと思います。

そこからphpmyadminを開けば、視覚的にデータベースを操作できます。

windowsではxampと言われるものがあったりするので、参考程度にしてください!

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?