「MySQLのDBの中身を簡単に確認したい」
「WordPressをインストールしたけど、DBの値を直接編集したい」
「phpMyAdminの一番簡単なインストール方法を知りたい」
どうも、タカフです。
Web系のシステム開発をしていると MySQLのDBの中身を確認・編集するのってマストな作業として日々発生しますよね。
そんな時に最も簡単にDBの中身を確認・編集するツールと言えば、はい、ご存知phpMyAdminですね。
インストールすると、基本的なSQLの実行や、スキーマの作成・変更等も出来る強力なツールですが、強力なツールが故に使い方やインストール方法は必要以上に気をつけて作業する必要があります。
本日はそのphpMyAdminのインストール方法を記事にしたいと思います。
phpMyAdminの簡単・最速インストール方法
phpMyAdminを取得と展開
まずはphpMyAdminソースを取得しないと話は始まりません。下記サイトにアクセスしましょう。(phpMyAdminでググってもいいです)
アクセスすると下記のようなページが表示されます。
赤枠のDownloadをクリックすればzipファイルをダウンロード出来て、解凍したものをサーバーにアップロードすればいいのですが、最速な方法はサーバー上でダウンロードして解凍する方法です。
サーバーにログインして、wgetでサクッと落として、unzipしちゃいましょう。
$ wget https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zip
$ unzip phpMyAdmin-4.8.5-all-languages.zip
$ mv phpMyAdmin-4.8.5-all-languages [phpmyadminを設置したい場所]/mydb
$ rm phpMyAdmin-4.8.5-all-languages.zip
ダウンロードしたzipファイルは不要なのでrmコマンドで削除しちゃいましょう。
設定ファイルへの記述
phpMyAdminのソースを展開すると、ずらっとファイル一覧が並ぶ中で config.sample.inc.php というファイルがあります。これをコピーして、同じディレクトリにconfig.inc.php というファイル名で設置しましょう。そして config.inc.php を開いて以下の記述を変更します。
$cfg['blowfish_secret'] = '[ここに32文字以上のランダム文字列]';
$cfg['Servers'][$i]['host'] = '[ここにMySQLのhostname]';
blowfish_secretに自分しかわからないランダム文字列を入力することでcookie認証のセキュリティを高めてくれます。
blowfish_secretは短すぎると怒られてしまいますので、長いランダム文字列にしましょう。
ただ、32文字以上のランダム文字列は意外と考えるの面倒なので、最速インストールするためにWordPressをインストールする時に使うあのSALTツールを利用します。下記URLにアクセスして、
https://api.wordpress.org/secret-key/1.1/salt/
AUTH_KEYとかの値をコピペしちゃいます。これだけで小難しい64文字のランダム文字列を設定出来ます。
phpMyAdminへのアクセス
インストールしたディレクトリにブラウザからアクセスしてみましょう。以下のような画面が表示されます。
MySQLのユーザー名とパスワードを入力して実行ボタンを押せばログイン出来ます。ログイン成功すると以下のような画面となります。
phpMyAdminで注意すべきこと
先程も書きましたが、phpMyAdminはその有名さ故に不正アクセスが多いです。
なのでそのセキュリティ対策が必須なツールと言えるのですが、実はwebサーバーにphpMyAdminをインストールしないことが一番良いです(笑)。
とは言えそんなことも言ってられない状況もあるでしょうから、phpMyAdminをインストールする際はhtaccessで以下のどちらか・もしくは両方の設定をしてセキュリティを高めましょう。
phpMyAdminにアクセスするIPアドレスを制限する
大抵の企業ならば固定IPアドレスだと思うので、その企業からのみアクセスできるようにhtaccessを記述します。phpMyAdminのインストールディレクトリに、 .htaccess というファイルを作成して以下の内容を記述します。
apacheのVersionに従ってどちらかを記述してください。
# apache2.2系以前の書き方
Order deny,allow
Deny from all
Allow from [your ip address]
# apache2.4系以降の書き方
Require all denied
Require ip [your ip address]
phpMyAdminのディレクトリにBASIC認証を導入する
phpMyAdminはDBはBASIC認証を常時かけておいてもいいくらいと思うので、BASIC認証も設定しちゃいましょう。
AuthUserfile /[htpasswdファイルまでのフルパス]/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
htpasswdファイルの作成コマンドは、以下の通りです。
htpasswd -c -b /etc/httpd/conf/.htpasswd ユーザ名 パスワード
BASIC認証とIPアドレス制限を両方有効にする記述
上記の両方とも有効にしたい場合は以下のように記述します。ApacheのVersionにしたがってどちらかを記述してください。
# 2.2系以前のApache
AuthUserFile /[htpasswdファイルまでのフルパス]/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
Satisfy All
order deny,allow
deny from all
allow from [あなたのIPアドレス]
# 2.4系以降のApache
<RequireAll>
# BASIC認証
AuthUserFile /[htpasswdファイルまでのフルパス]/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
Require valid-user
<RequireAny>
# IPアドレス制限
Require all denied
Require ip [あなたのIPアドレス]
</RequireAny>
</RequireAll>
まとめ
何度も書きますが、phpMyAdminは強力なツールなのでセキュリティ対策は必須です。
使用上の注意をよく読み、用法・用量を守って正しくお使いください。
現場からは以上です。