phpmyadminをsnow leopardにインストール

$ sudo port install phpmyadmin

でいけると思ったけど、「apr-1.4.2.tar.bz2 が見つかりません」的なエラーが出てインストールが止まる。

http://sourceforge.jp/projects/sfnet_buluoos/downloads/0.1/src/apr-1.4.2.tar.bz2/ からapr-1.4.2.tar.bz2をダウンロードし、所定のディレクトリに置いてsudo port install phpmyadminするとphpmyadminがインストールできた。

デフォルトでは、/opt/local/www/phpmyadmin にインストールされるので、snow leopardデフォルトのWeb共有(apache2)を使うなら、/Library/WebServer/Documents 配下にシンボリックリンクを作成すればいい。


で、http://(ホスト)/phpmyadmin にアクセスすると、今度は「mcrypt 拡張をロードできません。PHP の設定を確認してください。」のメッセージが。mcryptをインストールすれば良さそうなので、

$ sudo port install php5-mcrypt

インストールした。


これでmcryptがインストールされたので、再度phpmyadminにアクセスしてみる。すると「mcrypt 拡張をロードできません。PHP の設定を確認してください」との表示が。



まぁいい。どうやらphp.iniを編集する必要がある様子。今まで/etc/php.iniを作っていなかったので、php.iniの作成から。

$ sudo cp /etc/php.ini.default /etc/php.ini

次に、php.iniの編集。「Dynamic Extensions」の項目に追加。

extension_dir="/opt/local/lib/php/extensions/no-debug-non-zts-20090626/"
extension=gd.so
extension=mcrypt.so

portsでインストールしたモジュールとは違うけど、どうやらこれで動くっぽい。で、apacheを再起動すると、phpmyadminから「mcrypt 拡張をロードできません。PHP の設定を確認してください」の表示が消えた。やりぃ。


さっそくログインしてみる。…。できん。ブラウザに以下の表示が。

#2002 MySQL サーバにログインできません

どうやらまだphp.iniに編集が必要らしい。なので、rootユーザでphp.iniを編集。mysql.default_socket の値を /tmp/mysql.sock に変更。

#mysql.default_socket = /var/mysql/mysql.sock
mysql.default_socket = /tmp/mysql.sock

編集したら、apacheを再起動する。よし、ログインでけた。ちなみに、僕はこちらでパッケージ(.dmg)をインストールしていたのでこうなった。portsからMySQLをインストールしていれば、sockファイルのパスが/opt/local/var/run/mysql5/mysqld.sockとかになっているかもしれない


次はログイン後の画面。「設定ファイルが秘密のパスフレーズ (blowfish_secret) を必要とするようになりました」とかいうメッセージが表示されている。myphpadminの/opt/local/www/phpmyadmin/config.inc.php を編集すればよい。

$cfg['blowfish_secret'] = '(ここに適当な文字列を入れる)'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

これでOK。


あとは「リンクテーブルを処理するための追加機能が無効になっています。理由についてはこちらをご覧ください」とかいうメッセージが表示されてる。管理用テーブルが無いからか?ということで /opt/local/www/phpmyadmin/scripts/create_tables.sql を実行。

$ mysql -u root -p < /opt/local/www/phpmyadmin/scripts/create_tables.sql

これで管理用DBであるphpmyadminが作られた。

次に、再びconfig.inc.phpの編集。これで、config.inc.phpの「Advanced phpMyAdmin features」周辺にある項目から、「リンクテーブルを処理するための追加機能が無効になっています。理由についてはこちらをご覧ください」のメッセージのリンク先にある変数のコメントアウトをひたすら外す。

$ sudo vi /opt/local/www/phpmyadmin/config.inc.php
…
/* Advanced phpMyAdmin features */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
…


これで「リンクテーブルを処理するための追加機能が無効になっています。理由についてはこちらをご覧ください」が表示されなくなった。

別に解決しなくて良いのなら、メッセージだけを表示させないようにconfig.inc.phpを編集すればいい。→参考

// リンクテーブルメッセージの抑制
$cfg['PmaNoRelation_DisableWarning'] = true;
// mcryptメッセージの抑制
$cfg['McryptDisableWarning'] = true;