phpMyAdmin を ports からインストールしてみる

作業前に、すでに ApacheMySQL Server、MySQL Client をインストール済みだったが、ports から phpMyAdmin をインストールする場合、依存関係にあるプログラムをインストールしてくれる。

# whereis phpmyadmin
phpmyadmin: /usr/ports/databases/phpmyadmin
# cd /usr/ports/databases/phpmyadmin
# make fetch-recursive
# make install clean
# ls -l  ls -l /usr/local/www/phpMyAdmin/
total 1394
-r--r--r--   1 root  wheel     169 Jan 20 18:52 CREDITS
-r--r--r--   1 root  wheel   14374 Jan 20 18:52 ChangeLog
-r--r--r--   1 root  wheel  235897 Jan 20 18:52 Documentation.html
-r--r--r--   1 root  wheel  167660 Jan 20 18:52 Documentation.txt
-r--r--r--   1 root  wheel     179 Jan 20 18:52 INSTALL
-r--r--r--   1 root  wheel   18011 Jan 20 18:52 LICENSE
-r--r--r--   1 root  wheel    2608 Jan 20 18:52 README
...

Apache から PHP を実行できるようにする

/usr/local/etc/apache22/httpd.conf に下記の一行がない場合は、

LoadModule php5_module libexec/apache/libphp5.so

次の一行を含めて、Apache 用の設定ファイルを作成する。

# vi /usr/local/etc/apache22/Includes/httpd-php.conf
LoadModule php5_module libexec/apache/libphp5.so
AddType application/x-httpd-php .php

その他にも、httpd.conf を更新する。

# vi /usr/local/etc/apache22/httpd.conf
<IfModule dir_module>
    DirectoryIndex index.php index.cgi index.html
</IfModule>
<Directory "/usr/local/www/apache22/data">
    # Indexes が無効化されていない場合は、
    # 下記のようにして無効化する
    Options -Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

php.ini を作成する

# cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

設定ファイルの構文を確認後、Apache を再起動する。Apache が正常に起動したら、下記のファイルを実行する。

# apachectl configtest
Syntax OK
# apachectl -k graceful
# vi /usr/local/www/apache22/data/info.php
<?php
phpinfo();
?>

ブラウザにアクセスを http://localhost/info.php して、正常に PHP の設定情報が表示されたら、とりあえず完了。
(php.ini の設定ファイルの内容を再確認することは忘れずに行う)

Apache の DocumentRoot 下に phpMyAdminディレクトリへシンボリックリンクを作成する

# ln -s /usr/local/www/phpmyadmin /usr/local/www/apache22/data/phpmyadmin

/usr/local/www/apache22/data/phpmyadminphpmyadmin は、他人に推測が難しい名称にすると、第三者がアクセスするのが難しくなるため、セキュリティの向上にも役立つ。
例: /usr/local/www/apache22/data/09kamO-2k_Z

phpMyAdmin の設定をする

http://localhost/phpmyadmin/setup/ にアクセスすると config.inc.php を自動生成するための方法が http://localhost/phpmyadmin/Documentation.html#setup_script 書かれている。
注: 以前の phpMyAdmin の設定ファイルのテンプレートが保存されていたが、現バージョン 3.5.2 では空(説明などが書かれてはいる)となっている。テンプレートは、$PHPMYADMIN/libralies/config.default.php がこれにあたる。これを利用したい場合は、

# cp /usr/local/www/phpMyAdmin/libraries/config.default.php /usr/local/www/phpMyAdmin/

とコピーをして利用する。
設定ファイルを phpmyadmin で生成する場合は、下記の作業が必要。

# cd /usr/local/www/phpMyAdmin
# mkdir config
# chmod o+rw config

として、http://localhost/phpmyadmin/setup/でデータベースのユーザー ID やパスワードなどを設定する。
設定完了後に、

# mv config/config.inc.php ./
# chmod o-r config.inc.php
# rm -rf config

phpMyAdmin のドキュメントでは、chmod o-rw config.inc.php となっているが、この権限設定では、phpMyAdmin が設定ファイル config.inc.php を読み込めない場合がある。なので、最初は、chmod o-rw config.inc.php で設定をして実行してみる。phpMyadmin が設定ファイルを読み込めなかった場合は、chmod o-r config.inc.php で試してみる。
あと、phpMyAdmin の設定をする際に、強制的に https 接続にするかどうか設定する項目があるので、セキュリティ向上のため、SSL 接続(オレオレSSLでも可)で接続するようにする