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

  • 5
    いいね
  • 0
    コメント

インフラ初心者がAWSに以下の環境を構築したので、備忘録として残しておこうと思います。

(0)AWSの設定
(1)Apache2.2+PHP7+MySQL5.6+WordPress4.7+phpMyAdmin4.6 ← 本エントリの内容
(2)Nginx+Unicorn+RubyOnRails

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

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

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エラーの原因と解決方法
Apacheのエラー

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にアクセス

スクリーンショット 2017-02-10 20.29.48.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ナレッジセンター
yum が便利になる RPMforge、Remi、EPEL とは一体何なのか
【yum入門】epel, remiなどのレポジトリをyumに追加する方法
libwebp の概要
Amazon LinuxでYUMを使う時に気をつけるポイント
php-opcache
php-devel
この辺はまだまだ勉強中です。

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

wp2.png

項目
データベース名 db_qiita
ユーザー名 db_qiita_user
パスワード ********
ホスト名 db-id-for-qiita.xxxxxxxxx.ap-northeast-1.rds.amazonaws.com(RDSエンドポイント)

※RDSインスタンス生成時に設定した値を入力

wp3.png

[インストール実行]

wp4.png

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

wp5.png

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

wp6.png

ダッシュボード画面

wp7.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 へアクセス

スクリーンショット 2017-02-13 11.05.55.png

項目
ユーザー名 db_qiita_user
パスワード xxxxxxxxx

※RDSインスタンス生成時に設定したユーザ名とパスワード
pma1.png

ログイン成功!

以上です。

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

参考にさせていただきました。
【AWS】WordPressのインストールとRDS、S3の連携
EC2にphpMyAdminを設置しRDSに接続する