[AWS]WordPressの構築方法


2020年2月2日現在の内容です。

構成イメージ

用語説明

プロトコル

コンピュータ同士がネットワークを利用して通信するために決められた約束事

メーカーやOSが異なるコンピュータ同士が通信を行うためには同じ仕様でやりとりする必要がある
      ↓
同じプロトコルを使用する決まりを作ることで、様々なコンピュータ同士が通信できる

例:HTTP,TCP,UDP,IP,SMTP,IPX

TCP/IP

TCP・IPを中心として、インターネットを構築する上で必要なプロトコル郡の総称
インターネットを運用するために開発された

  • アプリケーションプロトコル:HTTP,SMTP,FTP
  • トランスポートプロトコル:TCP,UDP
  • 経路制御プロトコル:RIP,OSPF,BGP
  • インターネットプロトコル:IP,ICMP,ARP

TCP/IP階層モデル

インターネットでコンピュータ同士が通信する一連の処理を4階層で表現したもの
通信に必要な機能全体を整理している

階層 役割 プロトコル例
アプリケーション層 アプリケーション同士が会話する HTTP,DNS,SSH,SMTP
トランスポート層 データの転送を制御する
(アプリケーション間のコネクションの確立・切断を担う)
TCP,UDP
ネットワーク層 IPアドレスを管理し、経路選択する
(最終的な宛先のコンピュータにパケットを届ける)
IP,ICMP,ARP
ネットワークインターフェース層 直接接続された機器同士で通信する Ethernet,PPP

HTTP

  • Hyper Text Transfer Protocolの略
  • インターネットでHTMLなどのコンテンツの送受信に用いられる通信の約束事
  • クライアントがHTTPリクエストを送信し、それに対してサーバーがHTTPレスポンスを返す

TCP

  • Transmission Control Protocolの略
  • 信頼性のある通信を提供
  • 信頼性を保つために、送信するパケットの順序制御や再送制御を行う
  • 信頼性のある通信を実現する必要がある場合に使用する

UDP

  • User Datagram Protocolの略
  • 信頼性のない通信を提供
  • 送信するだけで、パケットが届く保証はしない
  • 高速性やリアルタイム性を重視する通信で使用する(電話,動画...)

IP

  • Internet Protocolの略
  • ネットワーク上で通信を行う宛先を識別する(IPアドレス)
  • 宛先IPアドレスのコンピュータまでパケットを届ける(ルーティング)
  • 各ネットワークインタフェースの最大転送単位より小さくなるようにパケットを分割して送信し、終点コンピュータで再構築する

WordPress用のDB作成

ターミナルからEC2へSSHログイン
ssh -i test-ssh-key.pem [email protected]
MySQLへログイン

[ec2-user@ip-10-0-10-10 ~]$ mysql -h test-web.czelx3q0xopr.ap-northeast-1.rds.amazonaws.com -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.16 Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]>

データベースの作成

MySQL [(none)]> CREATE DATABASE test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected, 2 warnings (0.00 sec)

データベースが作成されていることを確認

MySQL [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

WordPeess用のユーザーの作成

MySQL [(none)]> CREATE USER 'test'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)

作成したユーザーにDBを操作するための権限を付与

MySQL [(none)]> GRANT ALL ON test.* TO 'test'@'%';
Query OK, 0 rows affected (0.00 sec)

権限の付与を反映

MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

ユーザーの作成及び権限が付与されていることを確認

MySQL [(none)]> SELECT user, host FROM mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| test             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| rdsadmin         | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)

作成したユーザーでMySQLにログインできることを確認

MySQL [(none)]> exit
Bye
[ec2-user@ip-10-0-10-10 ~]$ mysql -h test-web.czelx3q0xopr.ap-northeast-1.rds.amazonaws.com -u test -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 45
Server version: 8.0.16 Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]>

WordPressのインストール

EC2にSSHログインしておく
WordPressに必要なライブラリをインストール
sudo amazon-linux-extras install -y php7.2
(sudo yum install ではphp5.4がインストールされ、WordPressに必要なphpのバージョンに満たないため使用しない)

sudo yum install -y php php-mbstring

WordPressのダウンロード
wget https://ja.wordpress.org/latest-ja.tar.gz

WordPressがダウンロードされていることを確認

[ec2-user@ip-10-0-10-10 ~]$ ls
latest-ja.tar.gz

ダウンロードファイルを解凍
tar xzvf latest-ja.tar.gz

ダウンロードファイルが解凍されていることを確認

[ec2-user@ip-10-0-10-10 ~]$ ls
latest-ja.tar.gz  wordpress

WordPressをApacheが参照できる場所へ移動

[ec2-user@ip-10-0-10-10 ~]$ cd wordpress/
[ec2-user@ip-10-0-10-10 wordpress]$ sudo cp -r * /var/www/html/

WordPressをApacheが参照できるように権限を変更

[ec2-user@ip-10-0-10-10 wordpress]$ sudo chown apache:apache /var/www/html/ -R

Apacheに設定を反映

[ec2-user@ip-10-0-10-10 wordpress]$ sudo systemctl restart httpd.service

WordPressの設定

Webサーバーにアクセスし、「さぁ、始めましょう!」をクリック

以下の通り設定し、「送信」をクリック

「インストール実行」をクリック

以下の通り設定し、「WordPressをインストール」をクリック

WordPressの設定が完了したことを確認

ドメイン名でWordPressのページが表示されることを確認

参考

AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得