Mac にphpMyAdmin を入れる手順

MySQL を使って開発している人ならお世話になるであろうphpMyAdmin。なんと、最近まで使っていませんでした。先輩が使っているのを見てとっても便利そうだったので、インストールしました。その手順をメモりります。

phpMyAdmin って何

Wikipedia から引用。

phpMyAdminMySQLをインターネット越しに管理するためのツールで、PHPで実装されている。 phpMyAdminを用いることで、SQL文を記述することなく、MySQLのデータベースに対して様々な操作が行える。 また、ユーザが任意のSQL文を記述して実行することもできる。


要はブラウザからMySQL のDB を操作できるツールです。更新や削除、スキーマ情報の閲覧などもできます。開発者としては、動作確認の際にブラウザでレコードが見られるだけでもかなり助かると思います。
僕はレコードの状態を確認する際に、「mysql」コマンドやrails の「script/console」コマンドをたたいていました。今思うと、とても非効率。phpMyAdmin ありがたやです。
なお、今回試した環境は以下のようになります。

インストール&設定手順

手順は以下のようになります。

1. phpMyAdmin のインストール

  • 2. 展開されてできたディレクトリ「phpMyAdmin-2.11.9.2-all-languages」のを「Library/WebServer/Documents/」に移動
    • 「/Library/WebServer/Documents/」はMacapache のデフォルトのドキュメントルート
$ mv ~/Downloads/phpMyAdmin-2.11.9.2-all-languages /Library/WebServer/Documents/phpmyadmin

2. phpMyAdmin の設定

  • 1. 設定ファイルを作成。設定ファイルのサンプルがあるので、それをコピー
$ cd /Library/WebServer/Documents/phpmyadmin
$ cp config.sample.inc.php config.inc.php   
  • 2. 設定ファイルを編集。編集するのは以下の部分です
/* ランダムな英数字を設定する */
$cfg['blowfish_secret'] = '0433412bkowdbhjqcrcuzelCVdJjCLmI50120502';
  • 3. 権限設定
$ sudo chmod 660 config.inc.php
$ sudo chown -R www:www /Library/WebServer/Documents/phpmyadmin

3. apache の設定(phpMyAdmin へのアクセス制限)

今回はローカルホストからのみphpMyAdmin にアクセスできるようにします。

  • 1. etc/apache2/other/phpmyadmin.conf の作成
    • /etc/apache2/other/*.conf ファイルに書いた設定はapache の設定に読み込まれるようになっている
$ sudo emacs /etc/apache2/other/phpmyadmin.conf
<Location /phpmyadmin>                                                                              
    Order deny,allow                                                                                
    Deny from all                                                                                   
    Allow from localhost                                                                            
</Location>       

Allow from localhost を書かないと、ローカルからもアクセスできなくなります。

  • 2. apache を8081 で起動させるようにする
    • LISTEN の部分を書きかえる
    • apache を80 番で使っている場合は、httpd-phpmyadmin.conf のような設定ファイルを別に作成する必要がある
$ sudo /etc/apache2/httpd.conf
    • /etc/apache2/httpd.conf
#Listen 80  オリジナルをコメントアウト
Listen 8081   

4. php の設定(mysql のソケットの位置を指定)

最後の設定として、php の設定をします。設定の内容としては、「mysql のソケットファイルへのパス」です。php からmysql を操作するモジュールは、mysql のソケットとして「/var/mysql/mysql.sock」を見に行く設定になっています。なので、ソケットファイルが別の位置にある場合、この設定を変更する必要があります。
ちなみに、変更をしないままphpMyAdmin からログインしようとすると、以下のようなエラーがでます。

#2002 - サーバが応答しません (あるいはローカルの MySQL サーバのソケットが正しく設定されていません)
  • 1. php の設定ファイルの作成
    • /etc/php.ini がないので作成
$ sudo cp /etc/php.ini.default /etc/php.ini
$ sudo chmod 644 /etc/php.ini
  • 2. mysql のソケットのパスを確認
$ mysql5 -u root -p
mysql> status
.....
UNIX socket:            /opt/local/var/run/mysql5/mysqld.sock
  • 3. php.ini の設定
; Default socket name for local MySQL connects.  If empty, uses the built-in                        
; MySQL defaults.                                                                                   
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock