EC2 (Amazon Linux AMI) + Aurora (MySQL) + phpMyAdmin を用いて環境をセットアップした手順メモ。
忘れて後々面倒なことになったら嫌なので…。
EC2 インスタンス / DB インスタンス起動
コンソールより EC2 インスタンスと DB インスタンスを起動する。
今回は、Amazon Linux AMI (ami-9c9443e3, ap-northeast-1) 及び RDS Aurora (MySQL 5.6 互換) を使用した。
インスタンス上の基本的なセットアップ
まずは最新のパッケージ更新を適用する。
[phpMyAdmin@10.1.11.119]:~ $ sudo yum update -y
次に、必要なパッケージをインストールする。Apache 、MySQL 、PHP のインストールが必要となる。
[phpMyAdmin@10.1.11.119]:~ $ sudo yum install -y httpd24 php56 mysql55-server php56-mysqlnd
終わったら Apache 起動。
[phpMyAdmin@10.1.11.119]:~ $ sudo service httpd start
Starting httpd: [ OK ]
ドキュメントルートの所有者が root なので、ec2-user を apache グループに追加し、/var/www の所有権を apache グループに付与、さらにグループへの書き込み権限を与える。
[phpMyAdmin@10.1.11.119]:~ $ ls -l /var/www/
total 20
drwxr-xr-x 2 root root 4096 Jul 11 22:20 cgi-bin
drwxr-xr-x 3 root root 4096 Jul 30 19:54 error
drwxr-xr-x 2 root root 4096 Jul 11 22:20 html
drwxr-xr-x 3 root root 4096 Jul 30 19:54 icons
drwxr-xr-x 2 root root 4096 Jul 30 19:54 noindex
[phpMyAdmin@10.1.11.119]:~ $ sudo usermod -a -G apache ec2-user
[phpMyAdmin@10.1.11.119]:~ $ exit
(再ログイン)
[phpMyAdmin@10.1.11.119]:~ $ groups
ec2-user wheel apache
[phpMyAdmin@10.1.11.119]:~ $ sudo chown -R ec2-user:apache /var/www
[phpMyAdmin@10.1.11.119]:~ $ sudo chmod 2775 /var/www
[phpMyAdmin@10.1.11.119]:~ $ find /var/www -type d -exec sudo chmod 2775 {} \;
[phpMyAdmin@10.1.11.119]:~ $ find /var/www -type f -exec sudo chmod 0664 {} \;
[phpMyAdmin@10.1.11.119]:~ $ ls -l /var/www/
total 20
drwxrwsr-x 2 ec2-user apache 4096 Jul 11 22:20 cgi-bin
drwxrwsr-x 3 ec2-user apache 4096 Jul 30 19:54 error
drwxrwsr-x 2 ec2-user apache 4096 Jul 11 22:20 html
drwxrwsr-x 3 ec2-user apache 4096 Jul 30 19:54 icons
drwxrwsr-x 2 ec2-user apache 4096 Jul 30 19:54 noindex
phpMyAdmin のインストール
今回はソースからビルドするのではなく、epel レポジトリを有効化し、yum によりインストールする。
[phpMyAdmin@10.1.11.119]:~ $ sudo yum-config-manager --enable epel
[phpMyAdmin@10.1.11.119]:~ $ sudo yum install -y phpMyAdmin
で、設定ファイルを色々いじる。
[phpMyAdmin@10.1.11.119]:~ $ sudo sed -i -e 's/127.0.0.1/[アクセス元 Global IP]/g' /etc/httpd/conf.d/phpMyAdmin.conf
[phpMyAdmin@10.1.11.119]:~ $ sudo emacs /etc/phpMyAdmin/config.inc.php
$cfg['Servers'][$i]['host'] = 'rds-endpoint.cluster-xxxxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'user';
$cfg['Servers'][$i]['password'] = 'P@ssword';
Apache 再起動。
[phpMyAdmin@10.1.11.119]:~ $ sudo service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
データベースにデータを突っ込む
今回はこのスクリプトを用いて、サンプルデータを挿入したいと思います。
まずは clone しましょう。
[phpMyAdmin@10.1.11.119]:~ $ git clone https://gist.github.com/jaconza/1309302
Cloning into '1309302'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Unpacking objects: 100% (3/3), done.
[phpMyAdmin@10.1.11.119]:~ $ cd 1309302/
[phpMyAdmin@10.1.11.119]:~/1309302 $ ls -l
total 392
-rw-rw-r-- 1 ec2-user ec2-user 397853 Jul 30 20:06 word_country_data.sql
あらかじめ World というデータベースを作成しておき、以下のようにデータを Insert する。
[phpMyAdmin@10.1.11.119]:~ $ mysql -u user -p -h rds-endpoint.cluster-xxxxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -D world < word_country_data.sql
実際に phpMyAdmin にアクセスしてみる
http://[Instance の Public IP]/phpMyAdmin にアクセスし、以下のように実際にテーブルの内容まで見えていたら成功。