EC2 LAMP環境 phpMyAdmin導入


AWSのEC2に構築したLAMP環境に「phpMyAdmin」を入れて、DBを操作していきます

前提条件

  • EC2にLAMP環境の構築が出来ている
    (まだの方はこちら
  • ドライバのインストールも済んでいる

インストール

[ec2-user@ip-・・・・・・・・~]$cd /var/www/html
       #ディレクトリを「/var/www/html」に移動
[ec2-user@ip-・・・・・・・・html]$ sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.6.6/phpMyAdmin-4.6.6-all-languages.tar.gz
[ec2-user@ip-・・・・・・・・html]$sudo tar xzvf phpMyAdmin-4.6.6-all-languages.tar.gz
[ec2-user@ip-・・・・・・・・htnl]$sudo mv phpMyAdmin-4.6.6-all-languages phpMyAdmin
[ec2-user@ip-・・・・・・・・html]$sudo rm phpMyAdmin-4.6.6-all-languages.tar.gz
        #ファイルをインストールから解凍、名前の変更
[ec2-user@ip-・・・・・・・・html]$cd phpMyAdmin
       #ディレクトリを「/var/www/html/phpMyAdmin」に移動
[ec2-user@ip-・・・・・・・・phpMyAdmin]$sudo cp config.sample.inc.php config.inc.php
       #「config.sample.inc.php」の内容を「config.inc.php」にコピー
[ec2-user@ip-・・・・・・・・phpMyAdmin]$cd
       #ディレクトリを「/home/ec2-user」に移動
[ec2-user@ip-・・・・・・・・~]$sudo yum install -y php70-mbstring
       #PHPの拡張子「mbstring」をインストール
[ec2-user@ip-・・・・・・・・~]$ sudo service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
       #Apacheを再起動

以上でインストールは終了

ブラウザでEC2のIPアドレス/phpMyAdminにアクセスして、ログイン画面が表示され、ログインできることを確認
     

phpMyAdminの環境保護領域設定

ブラウザでphpMyAdminにアクセスした際に、画面下に「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。」と、メッセージが表示されていた場合、初期設定をしていきます。

初期設定

phpMyAdmin

  • 必ず「root」で行うこと
  • 「var/www/html/phpMyAdmin/sql」のディレクトリ内にある 「create_tables.sql」ファイルを自身のPCにダウンロード

- ブラウザから自身の「phpMyAdmin」にアクセスして、ログイン

  • 画面上部のインポートをクリック

  •  「File to import」内のアップロードファイルに先ほどダウンロードした「create_tables.sql」ファイルをアップロード
  •  下部にある実行をクリック

※ここまでの動作でも解除される事もありますので、ご自身の環境で確認をお願いします

MySQL

  • ターミナルもしくは、teratarmで、SSH接続した状態で、「MySQL」にrootでログイン
[ec2-user@ip-・・・・・・ ~]$ mysql -u root -p
mysql> create database 任意のDB名 character set utf8;

DBの作成

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| 任意のDB名          |
+--------------------+

作成したDBの確認

mysql> create user '任意のユーザー名' identified by  '任意のパスワード';

ログインできるユーザーの追加

mysql> grant ALL on 任意のDB名.* to '任意のユーザー名';

作成したユーザーのアクセスの設定
※上記は先ほど作成したDBにしかアクセスできない
※ここの設定はしなくても可

grant select, insert, update, delete on phpmyadmin.* to '任意のユーザー名';

作成したユーザーにselect, insert, update, deleteの権限を付与

mysql> flush privileges;

設定を反映

mysql> show grants for '任意のユーザー名';
+--------------------------------------------------------------------------------------------------------------------+
| Grants for 任意のユーザー名                                                                                   |
+--------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO '任意のユーザー名' IDENTIFIED BY PASSWORD '*ABCDEFGHIJ0987654321KLMNOPQRST1234567890' |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO '任意のユーザー名'                                |
| GRANT ALL PRIVILEGES ON `任意のDB名`.* TO '任意のユーザー名'                                         |
+--------------------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)

設定の確認

config.inc.php

[ec2-user@ip-・・・・・・ ~]$ sudo vi /var/www/html/phpMyAdmin/config.inc.php

config.inc.phpを編集

// $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]['userconfig'] = 'pma__userconfig';
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
// $cfg['Servers'][$i]['users'] = 'pma__users';
// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

上記のコメントを外す

設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定

[ec2-user@ip-・・・・・・ ~]$ sudo vi /var/www/html/phpMyAdmin/config.inc.php

config.inc.php内にパスワードの設定をする

$cfg['blowfish_secret'] = 'ここに32文字以上のパスワードを設定する'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

ファイル上部の$cfg['blowfish_secret']にパスワードを設定

以上で、phpMyAdminの設定は終了