AWS

Amazon EC2(Amazon Linux)のNginxサーバにphpMyAdminを設定

nginx_phpmyadmin
o_wani
この記事は作成から8年以上経過しているため、内容が古くなっている可能性があります。

Amazon Linuxの環境にPHPとMySQLを前回インストールしました。
今回はウェブベースでデータベースの管理ができるphpMyAdminをインストールします。

1. EPELリポジトリの有効化

EPELリポジトリを有効化する。

1.$ sudo yum-config-manager --enable epel

2. yumでインストール

phpMyAdminをインストールする。

1.$ sudo yum install phpMyAdmin

ここで[y]を入力し、[Enter]

1....
2.Install  1 Package (+13 Dependent packages)
3.
4.Total download size: 9.7 M
5.Installed size: 37 M
6.Is this ok [y/d/N]: y
7.Downloading packages:
8....

ここで[y]を入力し、[Enter]
EPEL リポジトリの GPG キーをインポートします。

1....
2.Importing GPG key 0x0608B895:
3. Userid     : "EPEL (6) <epel@fedoraproject.org>"
4. Fingerprint: 8c3b e96a f230 9184 da5c 0dae 3b49 df2a 0608 b895
5. Package    : epel-release-6-8.9.amzn1.noarch (installed)
6. From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
7.Is this ok [y/N]: y
8....
9....
10.Complete!

3. Nginxの設定

/etc/nginx/nginx.confの修正(以下の内容を追記)

  • server {の中に記載
  • location ~ \.php$ {より前に記載
1.        ....
2.        ....
3.
4.        location /phpMyAdmin {
5.            alias /usr/share/phpMyAdmin;
6.            index index.php index.html;
7.            #allow 127.0.0.1;
8.            #deny  all;
9.        }
10.        location ~ /phpMyAdmin/.*\.php$ {
11.            fastcgi_pass  unix:/var/run/php-fpm/php-fpm.sock;
12.            fastcgi_index index.php;
13.            #fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$fastcgi_script_name;
14.            fastcgi_param SCRIPT_FILENAME /usr/share/$uri;
15.            include fastcgi_params;
16.        }
17.
18.        location ~ \.php$ {
19.        ....
20.        ....

設定反映をします。

  • Nginxの再起動
1.$ sudo /etc/init.d/nginx restart

表示されないですね。。
悩むこと2時間。。

  • php-fpmの再起動
1.$ sudo /etc/init.d/php-fpm restart

apacheに慣れている私は、php-fpmこの存在が頭にありませんでした。
ありがとうQiita

4. phpMyAdminの表示

http://ドメインまたはパブリックIP/phpMyAdmin/
にアクセス。

phpmyadmin

5. phpMyAdminへのログイン

さて、あとは設定しているアカウントでのログインだけです。
….
ログインできない!!ChromeではphpMyAdminへのログインページが表示できているが
IEでは、Cannot start session without errors...こんなエラーが出てます。

sessionの設定がうまくできてないようです。

そこで、 NginxがPHPのセッションディレクトリにアクセスできる
ようにする必要があります。

PHPのセッション用ディレクトリのグループ変更

/var/lib/php/5.6/session/最初はapacheグループになっています。

1.drwxrwx--- 2 root apache  4096 Dec 11 02:59 session

今回はapacheではなく、Nginxを設定します。

1.$ sudo chown -R root:nginx /var/lib/php/5.6/session/

php-fpmの再起動

1.$ sudo /etc/init.d/php-fpm restart

ログインできました。。

セキュリティ

  1. アクセス制限
    Nginxの設定で、コメントアウトしていますが、phpMyAdminのアクセスを許可する
    IPアドレスを指定するとセキュリティ上安心です。
1.    #allow 127.0.0.1;
2.    #deny  all;

IPが絞れない場合は、Bascic認証を使用すると良いかと思います。

  1. ディレクトリ名
    /phpMyAdmin/これでアクセスしていますが、デフォルトの設定のままなので、
    推測されやすいと思います。このディレクトリ名は変えた方がセキュリティ上良いかと思います。

別の記事でphpMyAdminのセキュリティに関してまとめたいと思います。

参考:
チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール

STAFF
o_wani
o_wani
スタッフ
大学卒業後、15年間WEB業界で働く。現在はマネジメントに従事していますが、ChatGPTの登場に触発され、このブログを再開。AIをパートナーに、自分で手を動かして実装する楽しさと喜びを再発見中。時代が変わりつつある中でも、陳腐化しない情報発信も目指しています。
記事URLをコピーしました