AWS EC2のBitnamiでphpMyAdminにアクセスできない!設定変更すればOK

2019年8月21日好き好きIT

AWS EC2のBitnamiでphpMyAdminにアクセスできないんだけど…

EC2でWordPressやLAMPスタックを動かすためにBitnamiのAMIを使うことが多いと思います。

BitnamiのAMIでphpMyAdminにアクセスしようとすると、セキュリティの問題でブロックされてしまいます。これは不便です。

でもちょっとした設定変更でアクセスできるようになります。

スポンサーリンク

ブロックされたときのメッセージ

▼ブロックされるとこんなメッセージが表示されます。

For security reasons, this URL is only accessible using localhost (127.0.0.1) as the hostname.

要するにphpMyAdminはEC2自身からのアクセスしか許可されていません。ログインが必要とはいえ、どこからでもアクセスできるのは危険すぎますからね。

設定を変更することで許可の範囲を拡げ、EC2以外からもアクセスできるようにします。

もちろんどこからでもアクセスできるようにはせず、特定のIPアドレスからのみアクセス可能にします。必要最小限の穴を空ける感じですね。

まえがき

こちらで検証できているAMIは以下の2つです。よく使うやつです。

  • WordPress Certified by Bitnami and Automattic
  • LAMP Certified by Bitnami

phpMyAdminのURLのホストはこれにしよう

ELB(ロードバランサー)やCloudFront(キャッシュサーバー)を使用している場合は、URLのホストをEC2の「パブリックDNS」か「パブリックIP」にしましょう。

▼赤枠のことです
ホスト

▼URLはこうなります

https://赤枠の値/phpmyadmin/

POINT

SSL未対応の場合はhttpです。

ここの設定を変更しよう

まずはアクセス許可するIPアドレスをメモる

会社だったり自宅だったり、アクセスを許可したい場所があると思います。そこのIPアドレスをメモります。

▼許可したい場所からここにアクセスするとIPアドレスが分かります

会社や自宅のIPアドレスからのアクセスのみを許可するという訳です。なんでも来い!よりもずっと安全です。

POINT

ELBやCloudFrontを使うとアクセス元がELBやCloudFrontのIPアドレスになってしまうので、アクセス許可されないのです。

変更するファイル

/opt/bitnami/apps/phpmyadmin/conf/httpd-app.conf

viでもvimでも好きなエディタで編集しましょう。

このように変更しよう

Before

<IfVersion < 2.3 >
Order allow,deny
Allow from 127.0.0.1
Satisfy all
</IfVersion>
<IfVersion >= 2.3>
Require local
</IfVersion>

After

<IfVersion < 2.3 >
Order allow,deny
Allow from 127.0.0.1
Allow from 許可したいIPアドレスその1
Allow from 許可したいIPアドレスその2
Satisfy all
</IfVersion>
<IfVersion >= 2.3>
<RequireAny>
  Require local
  Require ip 許可したいIPアドレスその1
  Require ip 許可したいIPアドレスその2
</RequireAny>
</IfVersion>
POINT

許可したいIPアドレスはいくつ並べてもOKです。

POINT

phpMyAdminのバージョンに依存しますが、大抵は「Require ip」の方だけでOKです。

【おまけ】どこからでも許可する

本番環境ではない場合はこれでOKです。

<IfVersion < 2.3 >
Order allow,deny
Allow from all
Satisfy all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>

修正が終わったら

設定を反映するためにApacheを再起動します。

sudo /opt/bitnami/ctlscript.sh restart apache

これでアクセスできるはずです。

phpMyAdminのユーザーとパスワード

ユーザーID:root
パスワード:EC2インスタンスのシステムログに載っているいつものアレです

▼分からなかったらこれを

スポンサーリンク