PHPからMySQLに接続する

Mac OS X にプリインストールされているPHPには、MySQLが利用できるようにコンパイルされています。しかし、プリインストールのPHPがコンパイルされたMySQLの環境と、実際にインストールされたMySQLの環境が一致しないため、MySQLをインストールしただけでは、PHPからMySQLへアクセスすることはできません。

ここでは、プリインストールのPHPから、新たにインストールしたMySQLへ接続できるよう、PHPの環境設定を行います。また、実際にPHPからMySQLへアクセスできるかを確認します。

PHPの環境設定

まずはPHPの環境設定ファイルを用意します。/etc/php.ini.default/etc/php.ini としてコピーします。下記の通り、ターミナルからファイル操作をしてください。そして /etc/php.ini をviで開いてください。もしviの使い方が分からない場合は、「Finderからシステムファイルにアクセスする方法」をご覧ください。

localhost:~ futomi$ sudo cp /etc/php.ini.default /etc/php.ini
localhost:~ futomi$ sudo chmod 644 /etc/php.ini
localhost:~ futomi$ sudo vi /etc/php.ini

/etc/php.ini を開くと、760行目あたりに、次の設定パラメータがあるはずです。デフォルトでは何も設定されていません。

mysql.default_socket =

この mysql.default_socket/tmp/mysql.sock を指定してください。

mysql.default_socket = /tmp/mysql.sock

/etc/php.ini を保存したらApacheを再起動してください。

Macintosh HD・アイコンアプリケーション・アイコンシステム環境設定・アイコン共有・アイコン

Web共有設定画面

「Web共有」のチェックを外してから、再度、チェックを入れてください。これでWebサーバが再起動します。

動作確認

では実際にPHPスクリプトから、先ほど作成したテスト用のテーブルに格納されているレコードを取り出し、ブラウザーに表示してみましょう。ターミナルからviを使って dbtest.php を作成します。

localhost:~ futomi$ vi /Library/WebServer/Documents/dbtest.php

dbtest.php のスクリプトは以下の通りです。赤字の部分は、DBアカウント名、DBパスワード、DB領域名です。ご利用の環境に合わせて書き換えてください。

<?php
header("Content-Type: text/plain");
$db = mysql_connect("localhost", "futomi", "password");
mysql_select_db("futomi");
$sql = "SELECT * FROM test";
$stm = mysql_query($sql);
while( $rec = mysql_fetch_array($stm) ) {
  $id = (string)$rec["id"];
  $name = $rec["name"];
  print("$id:$name\n");
}
mysql_close($db);
?>

Finderを使ってファイルを設置する場合は、以下のフォルダの中に dbtest.php を作成してください。

Macintosh HD・アイコンライブラリ・アイコンWebServer・アイコンDocuments・アイコン

testdb.php を作成したら、ターミナルからパーミッションを変更します。

localhost:~ futomi$ chmod 705 /Library/WebServer/Documents/dbtest.php

ブラウザーから testdb.php にアクセスしてみましょう。ブラウザーのアドレス欄に http://localhost/dbtest.php を入力してenterキーを押してください。

dbtest.phpの画面キャプチャー

上記のようにレコードが表示されればOKです。


以上でPHPからMySQLへアクセスできる環境が構築できまた。phpMyAdminをインストールします。これまでターミナルからコマンドラインでMySQLを操作してきましたが、phpMyAdminをインストールすれば、ブラウザーから操作することができるようになり、とても便利になります。