0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS初心者は必ず読むべき!必見!AWSの基本⑥EC2にてWordPress構築構築

Last updated at Posted at 2022-10-09

この記事の続き

この記事の概要

WebサーバーにWordPressをインストールし、WordPressからデータベースへ接続します。
ドメイン名にブラウザからアクセスするとWordPressから表示されるようになります。

WordPressのためのデータベース作成

ドメイン名でWordPressにアクセスできるようにしていきます。

RDSインスタンスの中にWordPress用のデータベース作成

まずはEC2でSSHでログインしていきます。
MySQLに接続します。

# MySQL実行   
#  MySQLは環境によって変わることがあるので上のコマンドで動くとは限りません。

[ec2-user@ip-10-0-7-161 ~]$mysql -h aws-infra-web.cssrje6zwv8w.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 1106
Server version: 8.0.28 Source distribution

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

上のデータと紐付けたMySQLのユーザーを作成

# データベース作成
 MySQL [(none)]> CREATE DATABASE aws_infra DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected, 2 warnings (0.04 sec)

MySQL [(none)]> show databases; #データベース一覧
+--------------------+
| Database           |
+--------------------+
| aws_infra          |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.02 sec)

WordPress用のユーザーに権限を与える

# WordPress用のユーザー作成
MySQL [(none)]> CREATE USER 'aws-infra'@'%' IDENTIFIED BY 'aws-study';
Query OK, 0 rows affected (0.03 sec)

# @以降は接続元のホスト %は接続元のホスト   IDENTIFIED は接続時のパスワードでここではaws-studyにします。
# 今作成したユーザーにデータベースを操作できる権限を与える
MySQL [(none)]> GRANT ALL ON aws_infra.* TO 'aws-infra'@'%';
Query OK, 0 rows affected (0.01 sec)

#MySQLに反映
MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

# ユーザーが作成されたか確認
MySQL [(none)]> SELECT user , host FROM mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| aws-infra        | %         |
| root             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| rdsadmin         | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)

MySQL [(none)]> exit #MySQLを抜ける
Bye

MySQLに入り直す

これでデータベースが作成されたか確認します。

[ec2-user@ip-10-0-7-161 ~]$ mysql -h aws-infra-web.cssrje6zwv8w.ap-northeast-1.rds.amazonaws.com -u aws-infra -p
Enter password:  #さっき決めたやつ
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 1120
Server version: 8.0.28 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の補足

MySQLの画面がいっぱいになってきたら下のコマンドで画面をきれいにします。

MySQL [(none)]> \! clear

WordPressのインストール

まずがSSHでWebサーバーにログインします。

ライブラリのインストール

[ec2-user@ip-10-0-7-161 ~]$ sudo amazon-linux-extras install -y php7.2
Topic php7.2 has end-of-support date of 2020-11-30
Installing php-pdo, php-fpm, php-mysqlnd, php-cli, php-json

# 省略
 64  firefox                  available    [ =stable ]
 65  lustre                   available    [ =stable ]
* Extra topic has reached end of support.
[ec2-user@ip-10-0-7-161 ~]$  sudo yum install -y php php-mbstring
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
依存性の解決をしています
#省略
依存性関連をインストールしました:
  oniguruma.x86_64 0:5.9.6-1.amzn2.0.4                                                            

完了しました!

WordPressのダウンロード

WordPressのダウンロードをしていきます。

[ec2-user@ip-10-0-7-161 ~]$ wget https://ja.wordpress.org/latest-ja.tar.gz  #wgetコマンドはURLを指定してファイルをダウンロードするコマンド
#省略
[ec2-user@ip-10-0-7-161 ~]$ ls
latest-ja.tar.gz  #ファイルがダウンロードされました。
[ec2-user@ip-10-0-7-161 ~]$ tar xzvf latest-ja.tar.gz #tarコマンドは複数のファイルをまとめたり解凍 xは解凍 zはgzipを使う vは圧縮解凍を表示 fが圧縮ファイル名を表示
# 省略
wordpress/wp-signup.php
wordpress/wp-links-opml.php
[ec2-user@ip-10-0-7-161 ~]$ ls
latest-ja.tar.gz  wordpress  #wordpressが入りました。

WordPressのプログラムをApacheから見える場所に配置

[ec2-user@ip-10-0-7-161 ~]$ cd wordpress/
[ec2-user@ip-10-0-7-161 wordpress]$ sudo cp -r * /var/www/html/ # cpはコピー  -r*は全てのファイルかディレクトリを指定する  /var/www/html/はコピー先

WordPressファイルの所有者 ・グループ変更

[ec2-user@ip-10-0-7-161 wordpress]$ sudo chown apache:apache /var/www/html/ -R
# chownはファイルの所有者や所有グループを変更 
# apache:apacheはファイルの所有者と所有しているグループをapacheに変更
# /var/www/html/ -Rは /var/www/html/以下の全てのファイルを変更

これでApacheからWordpressのファイルを参照できるようになりました。

Apacheの再起動

この設定を反映させていきます。

[ec2-user@ip-10-0-7-161 wordpress]$ sudo systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: active (running) since 火 2022-09-13 05:36:02 UTC; 39min ago 
     Docs: man:httpd.service(8)
# 省略
Hint: Some lines were ellipsized, use -l to show in full.

 runningとあるので起動しています。
起動していない場合は以下のコマンドを使います。

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

Apacheの再起動は以下のコマンドです。

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

startがrestartに変わっただけですね。

起動状態を確認します。

[ec2-user@ip-10-0-7-161 wordpress]$ sudo systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: active (running) since 火 2022-09-13 06:25:54 UTC; 1min 14s ago
     Docs: man:httpd.service(8)
# 省略
Hint: Some lines were ellipsized, use -l to show in full.
[ec2-user@ip-10-0-7-161 wordpress]$

runningになっていますので起動しています。

WordPressの設定

WordPressの設定をしていきます。

ドメイン名にアクセスしてWordPressの設定

ドメイン名でブラウザにアクセスします。するとこのようなWordPressの設定画面になります。
スクリーンショット 2022-09-13 15.35.24.png

さあ始めましょうのボタンをクリックしましょう。すると下の画像になります。
その時データベースのホスト名はRDSの接続先を入力します。
RDSの接続先はRDSの中のデータベースの中で今回連携するデータベースのエンドポイントです。
スクリーンショット 2022-09-13 15.42.17.png

スクリーンショット 2022-09-13 15.56.32.png
送信をするとインストールされたことがわかります。
インストール実行をクリックします。

スクリーンショット 2022-09-13 16.03.42.png
WordPressをインストールしていきます。
インストールできたらWordPressにログインしていきます。
このような画面になります。

スクリーンショット 2022-09-13 16.23.16.png

ドメイン名から入ると以下のようなサイトにいきます。

スクリーンショット 2022-09-13 16.29.27.png

WordPress(Webサイト)のサイトはどのように表示されるのか

そのためにはネットワークのことも知っていなければいけないです。

TCP/IPについて

コンピューター同士のネットワークの通信の中ではTCP/IPプロトコルに基づいて通信がされています。

プロトコル

プロトコルとはコンピューター同士が通信するための決まりごとです。
メーカーやOSが違うコンピューター同士で通信するため、
同じプロトコルを使う決まりがあるからいろいろなコンピューター同士で
通信ができます。

ex)
HTTP,TCP,IP,UDPなど

TCP/IPとは

TCP・IPを中心とした、インターネットを構築する上で必要なプロトコル群の総称です。
インターネットを運用するために開発されたみたいです。
階層モデルで4階層で表現したものです。

image.png

引用 https://www.itmanage.co.jp/column/tcp-ip-protocol/

・アプリケーション層はアプリケーション同士で会話します。
ex) HTTP,DNS,SSH,SMTP

・トランスポート層はデータの転送を防御します。
ex) TCP UDP

・IPアドレスを管理し、経路選択します。
ex) IP ICMP ARP

・ネットワーク インターフェース層は直接接続された機器同士で通信します。
ex) Ethernet PPP

HTTPとは

HTTPはTCP/IPの中で大事なプロトコルで、アプリケーション層に該当します。
インターネットネットなどでHTMLなどのコンテンツの送受信に使われる通信の
約束ごとです。クライアントがHTTPリクエストを送り、
サーバーがレスポンスで返す流れです。

TCPとUDPとは

トランスポート層のプロトコルです。
トランスポート層はアプリケーションの間でコネクションの確立、切断をします。
どのアプリケーションと通信するかを指定する(ポート番号)役割があります。

TCP
通信を制御するプロトコルで、データの到達確認や、コネクション管理をします。
通信相手との間で通信を始める準備をしてから通信をします。

UDP
コネクションレスな通信です。
アプリケーションから送信要求があったらデータをそのまま
ネットワークに流します。
動画、電話など即時性が必要な通信です。

ヘッダーのフォーマット

UDPは送信元ポート番号と宛先ポート番号が大事みたいです。
TCPは送信元ポート番号と宛先ポート番号、シーケンス番号、確認応答番号が大事みたいです。

IPとは

ネットワーク層のプロトコルです。
ネットワーク層は最終的な宛先をパケットに届ける重要な役割を担っています。
●役割①IPアドレス
IPアドレス、終点コンピューターまでのパケット配送(ルーティング)、パケット分割、再構築処理の3つになっています。

●役割②ルーティング
宛先IPアドレスのコンピューターまでパケットを届ける役割を担っています。

●役割③ パケットの分割・再構築
ネットワーク インターフェース層によって最大転送単位が異なります。

資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?