[AWS] EC2+RDS開発環境設定　Apache2.2+PHP+MySQL+WordPress+phpMyAdmin

AWSに以下の環境を構築したので、備忘録として残しておこうと思います。

(0)[AWSの設定] (http://qiita.com/hibriiiiidge/items/aebcd4184c7ab4c83bdf)
(1)Apache2.2+PHP7+MySQL5.6+WordPress4.7+phpMyAdmin4.6　←　本エントリの内容
(2)[Nginx+Unicorn+RubyOnRails](http://qiita.com/hibriiiiidge/items/10311c604bf6bbab22db)

実施事項
◎EC2の設定
◎RDSの設定
◎WordPressの設定
◎phpMyAdminの設定

【ご一読いただくにあたって】
・EC2、RDS等々の設定は済ませておいて下さい。
　まだの方はこちらから　→　[AWSの設定] (http://qiita.com/hibriiiiidge/items/aebcd4184c7ab4c83bdf)
・間違いがありましたらコメントにて教えて下さい。（まだまだ勉強中です。）
・専門用語の深い解説はしておりません。

##EC2の設定
###アップデート、ユーザ追加等の下準備

sshでEC2へアクセスした状態

```

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2016.09-release-notes/
3 package(s) needed for security, out of 6 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-0-1-107 ~]$ sudo yum update

~アップデート~

総ダウンロード容量: 51 M
Is this ok [y/d/N]: y
（途中、確認されますが[y]を入力）

完了しました!
[ec2-user@ip-10-0-1-107 ~]$ sudo su - #スーパーユーザへ切替
[root@ip-10-0-1-107 ~]# useradd myname #ユーザ追加
[root@ip-10-0-1-107 ~]# passwd myname #ユーザパスワード設定
Changing password for user myname.
New password: （パスワード入力）
Retype new password: （再入力）
passwd: all authentication tokens updated successfully. #成功
[root@ip-10-0-1-107 ~]# sudo visudo #追加したユーザに権限付与

=ファイル編集画面=

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
myname  ALL=(ALL)       ALL  (←rootの下に追加)

===============

[root@ip-10-0-1-107 ~]# exit #スーパーユーザ　ログアウト
logout
[ec2-user@ip-10-0-1-107 ~]$ su - myname #追加したユーザに切替
パスワード:
[myname@ip-10-0-1-107 ~]$

```

###Apache2.2 インストール

```
[myname@ip-10-0-1-107 ~]$ sudo yum -y install httpd
[sudo] password for myname: (パスワード入力) 

~インストール~

Complete!
[myname@ip-10-0-1-107 ~]$ httpd -version #バージョン確認
Server version: Apache/2.2.31 (Unix)
[myname@ip-10-0-1-107 ~]$ sudo /sbin/chkconfig httpd on #自動起動をonに変更
[myname@ip-10-0-1-107 ~]$ sudo service httpd start #Apache起動
Starting httpd: httpd: apr_sockaddr_info_get() failed for ip-10-0-1-107
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]
#サーバーは起動しているもエラーが表示

[myname@ip-10-0-1-107 ~]$ sudo service httpd stop #Apache停止
```
エラーをググってみると設定ファイルの修正が必要とのこと。
[Apacheエラーの原因と解決方法](http://nobuneko.com/blog/archives/2014/12/apache_httpd_apr_sockaddr_info_get_could_not_reliably_determine_fqdn.html)
[Apacheのエラー](http://d.hatena.ne.jp/uriyuri/20100511/1273575287)

networkファイルの修正

```
[myname@ip-10-0-1-107 ~]$ sudo vi /etc/sysconfig/network
===
HOSTNAME=localhost.localdomain
      　　⬇︎
#HOSTNAME=localhost.localdomain
HOSTNAME=13.112.XXX.XXX ←　(EC2のパブリックIP)追加
===

```

hostsファイルの修正

```
[myname@ip-10-0-1-107 ~]$ sudo vi /etc/hosts
===
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
       　　　　⬇︎
127.0.0.1   13.112.XXX.XXX localhost localhost.localdomain localhost4 localhost4.localdomain4 ←　(EC2のパブリックIP)追加
===
```

httpd.confファイルの修正

```
[myname@ip-10-0-1-107 ~]$ sudo vi /etc/httpd/conf/httpd.conf
===
#ServerName www.example.com:80
ServerName 13.112.XXX.XXX ←　(EC2のパブリックIP)追加
===
```

再度起動

```
[myname@ip-10-0-1-107 ~]$ sudo service httpd start
Starting httpd:                                            [  OK  ]
```

http://13.112.XXX.XXXにアクセス

<img width="1273" alt="スクリーンショット 2017-02-10 20.29.48.png" src="https://qiita-image-store.s3.amazonaws.com/0/114886/f2121655-bcdc-f91c-9fcf-90c0977c285b.png">

OK!!

###PHP7 インストール

標準リポジトリで利用できないパッケージのインストールを可能にするEPELリポジトリを有効化

``` 
[myname@ip-10-0-1-107 ~]$ sudo vi /etc/yum.repos.d/epel.repo #epel.repoの編集

=ファイルの中=

enabled=0
   ⬇︎
enabled=1 に変更

=ファイルの中終わり=

[myname@ip-10-0-1-107 ~]$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm #Remiレポジトリのインストール
[myname@ip-10-0-1-107 ~]$ sudo yum -y install libwebp --disablerepo=amzn-main --enablerepo=epel　#libwebpのインストール
[myname@ip-10-0-1-107 ~]$ sudo yum -y install libmcrypt libtool-ltdl libtidy libXpm libtiff gd-last autoconf automake #amzn-main.repoから各ライブラリをインストール
[myname@ip-10-0-1-107 ~]$ sudo yum -y install --disablerepo=amzn-main --enablerepo=remi-php70 php php-opcache php-devel php-mbstring php-mcrypt php-phpseclib-crypt-blowfish php-pecl-apc php-gd php-mysqlnd php-xml #phpインストール

Complete!
[myname@ip-10-0-1-107 ~]$ php -v　#バージョン確認
PHP 7.0.15 (cli) (built: Jan 17 2017 17:20:32) ( NTS )
Copyright (c) 1997-2017 The PHP Group

```

[AWSナレッジセンター](https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-enable-epel/)
[yum が便利になる RPMforge、Remi、EPEL とは一体何なのか](http://oki2a24.com/2012/03/13/what-is-rpmforge-remi-epel/)
[【yum入門】epel, remiなどのレポジトリをyumに追加する方法](http://uxmilk.jp/9315)
[libwebp の概要](http://lfsbookja.osdn.jp/BLFS/svn.ja/general/libwebp.html)
[Amazon LinuxでYUMを使う時に気をつけるポイント](http://dev.classmethod.jp/server-side/os/amazonlinux-yum-priority/)
[php-opcache](http://marunouchi-tech.i-studio.co.jp/546/)
[php-devel](http://www.fwoabw.info/entry/2011/12/27/969325)
この辺はまだまだ勉強中です。

###WordPress4.7.2インストール
Apacheのドキュメント・ルートのディレクトリは"/var/www/html"とのこと。
今回は`http://13.112.XXX.XXX/wordpress`でアクセスした時にWordPressのトップ画面が表示されるように設定
(wordpressディレクトリはWP展開時に自動生成)

```
[myname@ip-10-0-1-107 ~]$ cd /var/www/html #htmlへ移動
[myname@ip-10-0-1-107 html]$ sudo wget http://ja.wordpress.org/latest-ja.tar.gz ~/ #最新のWordPressをダウンロード （20170210時点では、4.7.2）
[myname@ip-10-0-1-107 html]$ sudo tar zxvf latest-ja.tar.gz

~インストール~
(wordpressディレクト生成)

[myname@ip-10-0-1-107 html]sudo chown -R apache:apache wordpress #オーナー変更
```

http://13.112.XXX.XXX/wordpress
にアクセスすると
http://13.112.XXX.XXX/wordpress/wp-admin/setup-config.php
にリダイレクトされる

![wp1.png](https://qiita-image-store.s3.amazonaws.com/0/114886/32fb4c1f-aab7-acae-39ae-d3f6f05dee6d.png)

![wp2.png](https://qiita-image-store.s3.amazonaws.com/0/114886/423e8669-8579-d608-691e-35d5ae542536.png)

| 項目 | 値 |
|:-----|:-----|
|データベース名| db_qiita |
|ユーザー名| db_qiita_user |
| パスワード | ******** |
| ホスト名 | db-id-for-qiita.xxxxxxxxx.ap-northeast-1.rds.amazonaws.com(RDSエンドポイント)|
※RDSインスタンス生成時に設定した値を入力

![wp3.png](https://qiita-image-store.s3.amazonaws.com/0/114886/c3c1c0ea-ce13-8b02-dcc7-c0bf71f1dff5.png)

[インストール実行]

![wp4.png](https://qiita-image-store.s3.amazonaws.com/0/114886/484d23ef-37ff-d504-6b5f-e55c261b4453.png)

| 項目 | 値 |
|:-----|:-----|
|サイトのタイトル| wp_site_qiita(任意) |
|ユーザー名| wp_qiita_user(任意) |
| パスワード | ******** |
| メールアドレス |your_mail@address.com(任意) |

![wp5.png](https://qiita-image-store.s3.amazonaws.com/0/114886/3789ff96-c9e5-4b58-a4e1-680fb1a9bf8c.png)

インストール成功　→　ログイン画面

![wp6.png](https://qiita-image-store.s3.amazonaws.com/0/114886/aec562e2-85fd-9ec2-94a7-4c5ac3e1e461.png)

ダッシュボード画面

![wp7.png](https://qiita-image-store.s3.amazonaws.com/0/114886/2e707694-45c8-9b9c-25cb-ec6e11dcfa42.png)

サイトトップ画面(WordPress4.7.2の場合)

###phpMyAdminのインストール
今回は`http://13.112.XXX.XXX/phpMyAdmin`でアクセスした時にphpMyAdminのトップ画面が表示されるように設定

```
[myname@ip-10-0-1-107 html]$ sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.6.6/phpMyAdmin-4.6.6-all-languages.tar.gz #phpMyAdminをダウンロード
[myname@ip-10-0-1-107 html]$ sudo tar xzvf phpMyAdmin-4.6.6-all-languages.tar.gz #展開
[myname@ip-10-0-1-107 html]$ sudo mv phpMyAdmin-4.6.6-all-languages phpMyAdmin #リネーム
[myname@ip-10-0-1-107 html]$ cd phpMyAdmin #移動
[myname@ip-10-0-1-107 phpMyAdmin]$ cp config.sample.inc.php config.inc.php #設定ファイルをコピー
[myname@ip-10-0-1-107 phpMyAdmin]$ sudo vi config.inc.php #設定を編集

=ファイルの中=
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
　　　　　　　　　　　　　　　　　　　⬇︎
$cfg['Servers'][$i]['host'] = 'db-id-for-qiita.xxxxxxxxx.ap-northeast-1.rds.amazonaws.com';
============
```
http://13.112.XXX.XXX/phpMyAdmin　へアクセス

<img width="491" alt="スクリーンショット 2017-02-13 11.05.55.png" src="https://qiita-image-store.s3.amazonaws.com/0/114886/08c3789a-0c1b-bea7-f904-c842056b9ed5.png">

| 項目 | 値 |
|:-----|:-----|
|ユーザー名| db_qiita_user |
|パスワード| xxxxxxxxx |
※RDSインスタンス生成時に設定したユーザ名とパスワード
![pma1.png](https://qiita-image-store.s3.amazonaws.com/0/114886/010fa32c-09de-78a3-229f-b0dc2d7de7d2.png)

ログイン成功！

以上です。

後ほど別のEC2にNginx+Unicorn+RubyOnRailsの開発環境を設定予定です。

参考にさせていただきました。
[【AWS】WordPressのインストールとRDS、S3の連携](http://qiita.com/hisayuki/items/d4bd05fa152b1e54a43d)
[EC2にphpMyAdminを設置しRDSに接続する
](http://butterbull.hatenablog.com/entry/2014/07/09/002523)