MAMPのphpMyAdminバージョンアップ

# 背景
ある友人がMAMPを使用していてphpMyAdminをバージョンアップしたところ、
「環境補間領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。」
と表示がされちゃうので、これを解消する方法を教えて！
とHelpあり。友人のスキルから、なるべくブラウザでの操作とテキスト編集だけで設定できるよう手順書を作成しました。

# 前提

* Apache, PHP, MySQL, phpMyAdminのディレクトリ構成はMAMPをインストールした状態のままであること。
* Swekey認証機能については触れません。
* SQLが分かる人は、/Applications/MAMP/bin/phpMyAdmin/examples/create_tables.sql にて直接pma用のユーザを作成する事により、5.の行程を飛ばせます。

# 手順

## 1. phpMyAdminバックアップ
phpMyAdminのディレクトリ（/Applecations/MAMP/bin/phpMyAdmin）を別名保存するなりして、バックアップしておく。

## 2. 新しいphpMyAdminのインストール

1. [phpMyAdminのサイト](http://www.phpmyadmin.net/home_page/index.php) からダウンロードする。
2. ダウンロードしたphpMyAdmin-(バージョン番号)-all-languages.zipを解凍する。
3. 解凍して出来たphpMyAdmin-(バージョン番号)-all-languagesディレクトリ名をphpMyAdminに変更する。
4. 3.のphpMyAdminを /Applications/MAMP/bin の下にコピーする。

## 3. phpMyAdmin画面表示
Webブラウザから http://localhost:8888/phpMyAdmin/ にアクセスする。
![phpMyAdminログイン画面.png](https://qiita-image-store.s3.amazonaws.com/0/3397/aa9f328f-0971-20aa-e336-95f86ee67bd0.png)

ユーザ名／パスワードにはMySQLのログイン名／パスワードを使用してログインする。

* phpMyAdmin(4.1.7)ではX-Frame-OptionsにDENYが設定されているため、MAMPのスタートページからphpMyAdminのリンククリックで表示しようとすると、フレーム内に表示できない。

## 4. phpMyAdminデータベース作成

インポートをクリックする。

![インポート画面.png](https://qiita-image-store.s3.amazonaws.com/0/3397/d349e158-d279-2d26-7745-bf3215833ad3.png)

アップロードファイル「選択」ボタンをクリック

![選択.png](https://qiita-image-store.s3.amazonaws.com/0/3397/a25cb033-fd5f-e8b3-59eb-43c07b36876f.png)

/Applications/MAMP/bin/phpMyAdmin/examples/create_tables.sql を選択する。

実行ボタンを押す。

![実行.png](https://qiita-image-store.s3.amazonaws.com/0/3397/cfd09e98-fd7f-fbc9-d643-79685a3d622a.png)

「インポートは正常に終了しました。17個のクエリを実行しました。」が表示されるはず。

![実行結果.png](https://qiita-image-store.s3.amazonaws.com/0/3397/27eaaa92-8b2c-5681-f380-5d0fb6964146.png)

## 5. phpMyAdminデータベース用特権ユーザ作成

左ペインのphpMyAdminをクリックし、データベース: phpMyAdminを表示する。

![phpmyadminテーブル.png](https://qiita-image-store.s3.amazonaws.com/0/3397/43cb38e2-f7b2-da2e-a819-35bee47e3346.png)

特権画面を表示する。

![特権ボタン.png](https://qiita-image-store.s3.amazonaws.com/0/3397/b5964544-7415-a9cc-7c46-80fb7c73042e.png)

![特権画面.png](https://qiita-image-store.s3.amazonaws.com/0/3397/394f6ec7-253d-4781-3ea6-182362eea18a.png)

Newカテゴリの「ユーザを追加する」ボタンをクリックする。

![ユーザ追加.png](https://qiita-image-store.s3.amazonaws.com/0/3397/0981cf0b-c4bc-0077-c560-b9210624a12b.png)

ログイン情報カテゴリの以下の項目を入力する。

* User name: 適当な新規のユーザ名 例: pma
* Host: プルダウンメニューから「ローカル」を選択
* パスワード: 適当なパスワード
* Re-type: パスワードを再入力

　※ここで入力したユーザ名／パスワードは後で使用するので覚えておくこと

ユーザ専用データベースカテゴリの以下の項目をチェックする。
	「データベース"phpMyAdmin"への全ての特権を与える」

![ユーザ追加画面.png](https://qiita-image-store.s3.amazonaws.com/0/3397/8657fedc-1785-ec20-994d-046281f499b3.png)

実行ボタンを押す。

![特権実行ボタン.png](https://qiita-image-store.s3.amazonaws.com/0/3397/251c7a57-87a8-ed01-59e5-f6d3855d50b8.png)

左ペインのログアウトボタン(左から2番目のアイコン)をクリックして、ログアウトする。

![ログアウトボタン.png](https://qiita-image-store.s3.amazonaws.com/0/3397/e47f3986-5815-82e9-30ee-d8ce3fc1ddb3.png)

![ログアウト画面.png](https://qiita-image-store.s3.amazonaws.com/0/3397/d6facf10-9571-0662-3e30-1001a3ae922b.png)

## 6. config.inc.php作成

/Applications/MAMP/bin/phpMyAdmin にあるconfig.sample.inc.phpをテキストエディットで開く。

以下に「<-----(*)」で示す項目の行先頭にある「// 」を削除する

* 編集前

```
/*
 * phpMyAdmin configuration storage settings.
 */

/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';                           <-----(*)
// $cfg['Servers'][$i]['controlport'] = '';                           <-----(*)
// $cfg['Servers'][$i]['controluser'] = 'pma';                        <-----(*)
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';                    <-----(*)

/* Storage database and tables */
// $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]['designer_coords'] = 'pma__designer_coords';   <-----(*)
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';             <-----(*)
// $cfg['Servers'][$i]['recent'] = 'pma__recent';                     <-----(*)
// $cfg['Servers'][$i]['users'] = 'pma__users';                       <-----(*)
// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';             <-----(*)
// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; <-----(*)
/* Contrib / Swekey authentication */
// $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';

```

* 編集後

```
/*
 * phpMyAdmin configuration storage settings.
 */

/* User used to manipulate with storage */
$cfg['Servers'][$i]['controlhost'] = '';
$cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';

/* Storage database and tables */
$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]['designer_coords'] = 'pma__designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
/* Contrib / Swekey authentication */
// $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';

```

さらに以下の項目を編集する。

```
$cfg['Servers'][$i]['controluser'] = '「5. phpMyAdminデータベース用特権ユーザ作成」のUser nameで入力した文字列'; 
$cfg['Servers'][$i]['controlpass'] = '「5. phpMyAdminデータベース用特権ユーザ作成」のパスワードで入力した文字列';
```

編集したconfig.sample.inc.phpをconfig.inc.phpとして /Applications/MAMP/bin/phpMyAdmin に保存する。

## 7. phpMyAdmin画面表示
Webブラウザから http://localhost:8888/phpMyAdmin/ にアクセスする。

![phpMyAdminログイン画面.png](https://qiita-image-store.s3.amazonaws.com/0/3397/275b3231-87a3-0bc7-f88e-98c577e9ad7e.png)

ユーザ名／パスワードにはMySQLのログイン名／パスワードを使用してログインする。

![phpMyAdmin画面.png](https://qiita-image-store.s3.amazonaws.com/0/3397/9f1b242d-8283-f4ff-7abc-fbb31e0ff4e7.png)

「環境補間領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。」の表示が消えてればOK。


# 参考リンク
[phpMyAdmin の設定保存場所の設定 - phpMyAdminの使い方](http://www.dbonline.jp/phpmyadmin/setting/index1.html)
[phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。 - プログラムと絵と写真](http://www.kakashi.biz/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0/phpmyadmin-%E7%92%B0%E5%A2%83%E4%BF%9D%E7%AE%A1%E9%A0%98%E5%9F%9F%E3%81%8C%E5%AE%8C%E5%85%A8%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%80%81/)