当サイトでは、CentOSサーバー内にオープンソースのリレーショナルデータベース管理システム MySQL をインストールして運用しています。
ウェブブラウザから MySQLデータベースの運用・管理を行うために GUIツール phpMyAdmin を CentOSサーバーにインストールします。

事前準備

phpMyAdminは、ウェブブラウザから操作する MySQLサーバー用の GUIツールですので、事前に下記をインストールしておきます。
  1. データベース
    MySQL 5.5以上
    phpMyAdminは MySQLサーバーの GUI操作ツールです
  2. HTTPサーバー
    Apache
    phpMyAdminはウェブブラウザで操作します
  3. 汎用スクリプト言語 PHP
    PHP 5.3以上
    phpMyAdminは汎用スクリプト言語 PHPで記述されています

インストール

phpMyAdminを動作させる HTTPサーバーのディレクトリ(以降、$SERVERDIR と表記します)上で phpMyAdminの公式サイト から phpMyAdminをダウンロードしてインストールします。
※ $SERVERDIRには、インストールするユーザーで書き込み権限を設定しています。
《先頭文字 *:rootユーザー、$:一般ユーザーでの実行になります》
# 2013/12/18時点での最新バージョンをダウンロードしています
$ VER=4.1.1
$ cd $SERVERDIR
$ wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/$VER/phpMyAdmin-$VER-all-languages.tar.xz

# ファイルを展開し、バージョンのないディレクトリ名にします
$ tar Jxvf phpMyAdmin-$VER-all-languages.tar.xz
$ mv phpMyAdmin-$VER-all-languages phpmyadmin

# HTTPサーバーのオーナーに変更します
$ sudo chown -Rv apache.apache phpmyadmin

HTTPサーバー Apacheの設定

HTTPサーバー apacheのホスト設定に phpMyAdminを追加します。
下記の設定は、phpMyAdminを Apacheの仮想ホスト www.system-act.com で動作させています。
また、ダイジェスト認証によるアクセス制限を行っています。
※ ディレクトリや設定は当サイトの環境のもので、Apacheをソースからインストールしています。
《先頭文字 *:rootユーザー、$:一般ユーザーでの実行になります》
# 仮想ホスト www.system-act.com の設定に phpMyAdmin の設定を追加します。
$ sudo vi /usr/local/apache2/conf/extra/vhosts/www.system-act.com.conf
----------(vi ここから)----------
     :
Alias /phpmyadmin "/home/www/vhosts/system-act.com/www/phpmyadmin
<Directory       "/home/www/vhosts/system-act.com/www/phpmyadmin">
  BrowserMatch   "MSIE" AuthDigestEnableQueryStringHack=On
  AuthType        Digest
  AuthName       "phpMyAdmin"
  AuthUserFile    /etc/httpd/.htdigest
  Require         valid-user
</Directory>
----------(vi ここまで)----------

# HTTPサーバー Apache を再起動します
$ sudo service httpd restart

# ダイジェスト認証用ファイルを作成します
# 例では、認証する任意のユーザー名をphpadmin-userにしています 
# "phpMyAdmin"の箇所は HTTPサーバー Apache 設定の AuthNameと同じにします
$ sudo /usr/local/apache2/bin/htdigest -c /etc/httpd/.htdigest "phpMyAdmin" phpadmin-user
Adding password for phpadmin-user in realm phpMyAdmin.
New password: [phpadmin-userのパスワード]
Re-type new password: [phpadmin-userのパスワード再入力]

# 作成されたダイジェスト認証用ファイルのパーミッションを設定します
$ sudo chmod 644 /etc/httpd/.htdigest
21行目:ダイジェスト認証用ファイルが既に存在する場合は -c を付けないでください

phpMyAdminの設定

phpMyAdminのサンプル定義ファイルをコピーして定義ファイルを作成、編集します。
《先頭文字 *:rootユーザー、$:一般ユーザーでの実行になります》
$ cd $SERVERDIR/phpmyadmin
$ sudo mv config.sample.inc.php config.inc.php
$ sudo vi config.inc.php
----------(vi ここから)----------
     :
/*
 * This is needed for cookie based authentication to encrypt password in
 * cookie
 */
/* クッキーを暗号化するためのパスフレーズを任意の英数文字列で設定します */
$cfg['blowfish_secret'] = 'a8b7c6d'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
     :
/* Server parameters */
/* 必要に応じて MySQLサーバーのホスト名に置き換えます */
$cfg['Servers'][$i]['host'] = 'localhost';
     :
/*
 * phpMyAdmin configuration storage settings.
 */
/* phpMyAdminの拡張機能用にデータベース定義を行います */

/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
/* コメントを外します */
$cfg['Servers'][$i]['controluser'] = 'pma';
/* コメントを外し、任意の英数文字列でパスフレーズを設定します */
$cfg['Servers'][$i]['controlpass'] = 'pmapass';

/* Storage database and tables */
/* 拡張機能を有効にします */
/* ここから各行のコメントを外します */
$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]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
/* ここまで各行のコメントを外します */
/* Contrib / Swekey authentication */
     :
----------(vi ここまで)----------

拡張機能用のデータベース/テーブルを作成

phpMyAdminの拡張機能で使用するデータベースおよびテーブルを作成します。
例では MySQLを仮想サーバー actmysql.server.localnet で運用しています。
《先頭文字 *:rootユーザー、$:一般ユーザーでの実行になります》
# 拡張機能用データベース/テーブルを作成します
$ mysql -h actmysql.server.localnet -u root -p < $SERVERDIR/phpmyadmin/examples/create_tables.sql
Enter password: [MySQL rootユーザーのパスワード]

# 拡張機能用データベース/テーブルに権限を設定します
# pmapass は phpMyAdminの定義ファイルで設定した拡張機能用パスワードを指定します
$ mysql -h actmysql.server.localnet -u root -p -e \
>   'GRANT SELECT, INSERT, DELETE, UPDATE ON phpmyadmin.* \
>          TO pma@localhost IDENTIFIED BY "pmapass";'

# 仮想サーバーですので、ホストサーバーからのアクセスにも権限を設定します
$ mysql -h actmysql.server.localnet -u root -p -e \
>   'GRANT SELECT, INSERT, DELETE, UPDATE ON phpmyadmin.* \
>          TO pma@gateway.server.localnet IDENTIFIED BY "pmapass";'

phpMyAdminへのログイン

ブラウザから phpMyAdmin (http://[ホスト名]/phpmyadmin/)にアクセスします。
(※)クリックすると移動可能な拡大画像がポップアップします。画像は Windows8.1 64bitのものです。
phpmyadmin0101.png
ダイジェスト認証を行います。
※Google Chromeでの画像です

ユーザー名とパスワードを入力して『ログイン』で phpMyAdminのログイン画面に進みます。
phpmyadmin0102.png
phpMyAdminのログイン画面です。

MySQLの rootユーザーのパスワードを入力して『実行』で phpMyAdminにログインします。
phpmyadmin0103.png
phpMyAdminの操作画面です。

フィードバック

記事の内容についてのご質問、ご指摘、その他ご意見等は下記にてお願いいたします。
System House ACT公式ブログ内記事 :
サーバー構築・運用 phpMyAdmin

トラックバックまたはコメントにてお寄せください。