EC2　LAMP環境　phpMyAdmin導入

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

#前提条件
 - EC2にLAMP環境の構築が出来ている
 <br>（まだの方は[こちら]()）
 - ドライバのインストールも済んでいる
 

#インストール
```
[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」にアクセスして、ログイン 
- 
<img width="1426" alt="スクリーンショット 2018-06-24 22.05.43.png" src="https://qiita-image-store.s3.amazonaws.com/0/256775/83162a06-ce2b-e587-e06c-8a81ab28ac6b.png">

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

<img width="1416" alt="スクリーンショット 2018-06-24 22.09.32.png" src="https://qiita-image-store.s3.amazonaws.com/0/256775/d1447ef5-c6d3-85aa-c14d-e69dd0961d7a.png">

- 　「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'] = 'ここに３２文字以上のパスワードを設定する'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
```
ファイル上部の**$cfg['blowfish_secret']**にパスワードを設定




以上で、*phpMyAdmin*の設定は終了