Linux の使い方: MySQL 管理ツール phpMyAdmin をインストールする (CentOS 5.4)


phpMyAdmin

データベースシステム MySQL を管理するツールの一つとして phpMyAdmin というものがあります。

これは php でできているため、使用するには php を実行できる環境 (Apache 等) が必要となります。管理対象のデータベース MySQL と、管理ツールを置くための Apache の設定については完了しているものとして話を進めて行きます。

なお、MySQL のインストールについては データベースシステム MySQL をインストールする (CentOS 5.4) にも記してありますので、必要に応じてそちらもご確認ください。

 

それでは phpMyAdmin のインストールを行って行きます。

phpMyAdmin は "dag" リポジトリからの入手となります。リポジトリの追加方法については CentOS 5.4 のシステムアップデート取得先としてリポジトリを追加する に記してありますので、そちらの方も参考にしてみてください。

次のようにして phpMyAdmin のインストールを行います。

yum install --enablerepo=dag phpmyadmin

このようにすると、平成 22 年 2 月 2 日現在、"phpmyadmin 2.11.10-2.el5.rf" がインストールされました。

また、それと併せて "libmcrypt 2.5.8-4.el5.centos" や "php-mcrypt 5.1.6-15.el5.centos.1"、"php-mysql 5.1.6-24.el5_4.5" や "php-pdo 5.1.6-24.el5_4.5" といった 4 つの依存パッケージもインストールされました。

 

インストールが完了したら、続いて phpMyAdmin の設定調整を行います。

まず "/usr/share/phpmyadmin/config.inc.php" 内の $cfg['blowfish_secret'] の値を調整します。

$cfg['blowfish_secret'] = '********';

ここには Cookie 認証のためのパスワードを設定することになるそうです。任意にパスワードを設定できます。このパスワードは人間が入力することはないそうなので、とりあえず何か複雑なものをつけておけば大丈夫でしょう。

 

そして、Apache の設定ファイルを調整して、phpMyAdmin を参照できるようにします。

CentOS 5.4 の場合は "/etc/httpd/conf.d/" ディレクトリ内に例えば "phpmyadmin.conf" を作成するなり、その他の適切な設定ファイル内などに次の内容を記載します。

<Directory /usr/share/phpmyadmin>

Order Deny,Allow

Deny from all

Allow from 127.0.0.1

Allow from 192.168.0

</Directory>

これで、設定したサイトの /phpmyadmin/ へアクセスすれば、MySQL を管理するページへ接続することができるようになります。

なお、上記の例では接続可能な端末として、IP アドレスが 127.0.0.1 と 192.168.0.0 から 192.168.0.255 までに制限がかけられていますので注意しましょう。この制限は、環境に応じて各自調整する必要があります。

仮想ドメインで phpMyAdmin を利用したい場合には、その <VirtualHost> ディレクティブ内で "Include /etc/httpd/conf.d/phpmyadmin.conf" として設定を取り込んであげる形にすると簡単です。

 

phpMyAdmin へ接続できたら、MySQL に登録されているアカウント情報を入力することで、管理ページにログインすることが可能です。

もしこのとき "#2002 - サーバが応答しません (あるいはローカルの MySQL サーバのソケットが正しく設定されていません)" というエラーが表示されてしまう場合には、PHP 側と MySQL 側とで socket の設定が異なっているかもしれません。

その際は一度、"/etc/my.cnf" 内の "socket" で指定した値と "/etc/php.ini" 内の "mysql.default_socket" で指定した値とが一致することを確認すると良いでしょう。

なお、"mysql.default_socket" が空欄の場合には、それは "/var/lib/mysql/mysql.sock" が指定されたのと同じ意味になるようです。

 

または SELinux によるセキュリティ制御機構が影響している場合もあります。

これについては mysqld_t のみならず httpd_t の方も socket を開く権限がないために発生することがあるので注意が必要です。特に "/etc/my.cnf" の "socket" の値を変更した場合は気をつけましょう。

SELinux の設定方法については Linux のセキュリティ設定 (SELinux) の方に記してありますので、そちらを参考にしてください。