この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
お疲れ様です。株式会社協栄情報クラウド事業本部のショウジです。
今回はAurora MySQLでWordPresサイトの設定まで構築したので、備忘録も兼ねてその内容を記事にします。
本記事の内容
本記事は以下の内容となります。
・Linux上でのLAMP環境の設定手順(手順と説明)
・WordPressファイルの設定手順と説明
・EC2とRDSの連携確認
前提条件
ワードプレスとEC2インスタンス詳細設定の流れ中心に書くため、AWS上でのVPC設定等はできている状態とします。
Amazon Aurora MySQLについて
サクッと概要
Aurora MySQLの特徴を以下できるだけ簡単にまとめました。
・RDSの1つのDBサービスで、AuroraのMySQL互換版。
・通常のMySQLと比べ、最大5倍の処理能力(スループット)がある。
・データベースに最大 15 個の Amazon Aurora レプリカを作成できる→10mm秒以下まで読み取り処理能力アップ
・Auto Scalingをサポートしており、ユーザの指定するメトリクスの変化に応じて自動でリードレプリカを追加・削除する。→急激な接続やワークロードの増加に対して読み取り処理を維持できる
・クラスタ構成は2層で、SQL処理を行うインスタンス層とデータを管理するストレージ層に分離されている。→障害時の可用性UP、処理の高速化。
・共有分散(クラスター)ストレージボリュームを構成している。
(各AZに2個ずつ、3AZで合計6つ複製される(S3ストレージ))
・ストレージは10GB毎のProtection Groupsに分かれていて、並列処理の実行ができる→処理の高速化。
・Back Track機能。バックアップからのデータ復元ではない→迅速なデータの巻き戻しができ、最大72時間までデータベースの巻き戻し設定ができる。
・Global Database(オプション)。1つのプライマリAWSリージョンと最大5つのセカンダリAWSリージョンで構築する。RTOが1分未満、RPOが5秒未満。
簡単にとは言いつつも、調べると機能盛りだくさんですね。他の機能などより細かい部分は公式サイト等で確認をお願いいたしします。
構成図・実施環境
構成図
前回のAurora PostgreSQLの利用について執筆した記事と同じ構成になります。
実施環境
・自身の利用端末のOSエディション:Windows10
・SSH接続に利用するエミュレータ:TeraTerm
・AWS上で使うEC2インスタンス:無料枠のAmazon Linux2
・設定するAurora MySQLのバージョン:5.7MySQL
設定値情報
設定作業前に、前提であるEC2インスタンスとRDSインスタンス作成時に行った設定を以下記載します。
EC2
設定項目 | 設定値 | 備考 |
---|---|---|
名前 | EC2-WP-test-sh | 任意で設定 |
Key Pair | WP_test_shoji | 作成したものを選択 |
VPC選択 | WP-test-vpc-sh | 作成したものを選択 |
パブリックIPの自動割り当て | 有効化 | VPC外部からSSH接続するため |
セキュリティグループ | SG-WP-EC2-sh | インバウンドでSSHとHTTP経由を許可 |
EBSボリュームタイプ | gp3 | 規定値は"gp2" |
※記載していない項目は、デフォルト値で設定しました。
EBSボリュームタイプでgp3を選択したのは、ほぼ全ての範囲の容量設定で規定値のgp2と比べgp3の方が処理能力(IOPS)が優れており、料金も割安なためgp3としました。
また、弊社ブログで他のメンバーが執筆したgp2とgp3について比較した記事がありますので、そちらもご参照ください。
EBSのタイプはgp2からgp3に変更する
実際のブログサイトを運用する場合は、ALBを設定したりHTTPSのインバウンド設定をする等セキュリティを考慮する必要があるかと思いますが、今回はその辺りは検討はなしで進めます。
RDSの設定内容
DBサブネットグループ
前回のPostgreSQLの記事と同様、規定値のままのところは省略し、変更した設定値等を載せます。
DBサブネットグループの設定
設定項目 | 設定値 | 備考 |
---|---|---|
名前 | "WP-DBsubnet-sh" | 任意で設定 |
説明 | "DBsubnet GRP for WP" | 分かる内容で記載 |
VPC | "WP-test-vpc-sh" | 作成したものを選択 |
アベイラビリティーゾーン | [eu-west-1a]と[eu-west-1b] | サブネットを作成したゾーンを選択 |
サブネット | [10.0.2.0/24]と[10.0.3.0/24] | 作成したプライベートサブネットを選択 |
今回もEC2インスタンス1つ、RDS Aurora DBクラスター1つの構成ですが、RDSインスタンスの利用にはサブネットグループの設定が必須のため、プライベートサブネットを2つ用意し、サブネットグループを設定しています。
RDS(Aurora MySQL)
こちらもDBサブネットグループと同様に、規定値から変更した設定値等を載せておきます。
Amazon Auroraの設定
設定項目 | 設定値 | 理由 |
---|---|---|
エディション | Amazon Aurora MySQL 互換エディション | デフォルト値 |
テンプレート | 開発/テスト | デフォルト値(本番稼働用)から変更 |
DBクラスター識別子 | "database-1-instance-1" | 任意で設定 |
マスターユーザー名 | "WPadmin" | 任意で設定 |
マスターパスワード | …… | 任意で設定 |
DBインスタンスクラス | バースト可能クラス(db.t3.smallを選択) | 安いものを選択 |
マルチAZ配置 | Auroraレプリカを作成しない | 運用利用しないため |
VPC | "WP-test-vpc-sh" | 作成したものを選択 |
データベース名 | "WordPressDB" | 任意で設定 |
マスターユーザ名やパスワードは、MySQLログインや操作の際に必要になるので、忘れないようにします。データベース名はAWSコンソール画面から確認が可能です。
LAMP環境の設定手順
WordPress推奨環境
WordPressの公式ホームページに推奨環境が記載されていたので、執筆時点のものを引用します。
WordPress について
要件
WordPress を実行するには、以下のホスティング環境を推奨します。
PHP バージョン 7.4 以上。
MySQL バージョン 5.7 以上、または MariaDB バージョン 10.3 以上。
HTTPS 対応HTTPS 対応
今回HTTPSまでの設定はしないですが、ソフトウェアのバージョンは、基本的には推奨環境に沿ったもので、インストールしていきます。
以下、コマンドを実際の画面と併せて載せていきます。時々補足を付け足します。
Apacheのインストール
コマンド
sudo yum install -y httpd
アウトプット
[ec2-user@ip-10-0-1-167 ~]$ sudo yum install -y httpd
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00
(中略)
mod_http2.x86_64 0:1.15.19-1.amzn2.0.1
Complete!
[ec2-user@ip-10-0-1-167 ~]$
説明:スーパユーザ(sudo)でapache(httpd)をインストールしました。
コマンド
sudo systemctl enable httpd.service
アウトプット
[ec2-user@ip-10-0-1-167 ~]$ sudo systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
説明:サーバを立ち上げた時に、指定したサービスを自動で有効化する設定をしました。
コマンド
sudo systemctl status httpd
アウトプット
[ec2-user@ip-10-0-1-167 ~]$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: inactive (dead)
説明:指定したサービスの状態を確認しています。アウトプットのActiveの部分で確認ができ、inactive状態となっています。
apacheを起動します。
コマンド
sudo systemctl start httpd
アウトプット
[ec2-user@ip-10-0-1-167 ~]$ sudo systemctl start httpdtus
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2023-01-25 03:40:29 UTC; 5s ago
説明:起動(start)させたので、ステータス状態を示す部分がactiveに変わりました。
phpのインストールをしていきます
コマンド
sudo amazon-linux-extras install -y php7.4
アウトプット
[ec2-user@ip-10-0-1-167 ~]$ sudo amazon-linux-extras install -y php7.4
Topic php7.4 has end-of-support date of 2022-11-03
Installing php-pdo, php-fpm, php-mysqlnd, php-cli, php-json
(中略)
41 postgresql11 available [ =11 =stable ]
42 *php7.4=latest enabled [ =stable ]
43 livepatch available [ =stable ]
(中略)
65 lustre available [ =stable ]
_ php8.1 available [ =stable ]
67 awscli1 available [ =stable ]
* Extra topic has reached end of support.
[ec2-user@ip-10-0-1-167 ~]$
説明:インストール完了です。WordPress推奨であるphp7.4のバージョンが"enabled"となっているのでOKです。
phpインストールの他の確認方法
以下の方法でも確認を行うことができます。
viコマンドで新規ファイルの作成も行うので、実施前後での状況確認も含めて確認していきます。
①cdコマンド
cd /var/www/html cd /var/www/html
アウトプット
[ec2-user@ip-10-0-1-167 ~]$ cd /var/www/html cd /var/www/html
[ec2-user@ip-10-0-1-167 html]$
②lsコマンド
ls
アウトプット
[ec2-user@ip-10-0-1-167 html]$ ls
[ec2-user@ip-10-0-1-167 html]$
lsコマンド(ファイル情報出力)でhtmlディレクトリには、1つもファイルがないことが確認できました。
viコマンドでファイルを作成し、ファイルを開きます。
②viコマンド
sudo vi phpinfo.php
アウトプット(ファイルを開いた画面)
説明:cd(change directory)で、絶対パスを指定して、htmlディレクトリへ移動します。
(htmlディレクトリは、公開するためのファイルを格納するディレクトリとなります)
編集コマンド「vi」を使い、"phpinfo.php"というファイルをhtmlディレクトリ配下に作成しファイルを編集します。アウトプットは、viコマンドで開かれた画面です。
③i(挿入)コマンド
i
アウトプット
説明:[i]キーで編集(insert)モードへ切り替わっています。
以下を挿入します。
<?php
phpinfo();
?>
挿入出来たら、[Esc]キーで編集モードを終了します。
その後「:w」で上書き保存、「:q」でファイルを閉じます(viコマンドの終了)。
このコマンドは一緒にできるので、同時に実行します。
コマンド
:wq
アウトプット(ファイルを閉じた状態)
[ec2-user@ip-10-0-1-167 html]$ sudo vi phpinfo.php
[ec2-user@ip-10-0-1-167 html]$
lsコマンドでファイルが作成されていることを確認します。
[ec2-user@ip-10-0-1-167 html]$ ls
phpinfo.php
[ec2-user@ip-10-0-1-167 html]$
作成されていることが確認できました。
ついでに、catコマンドでファイルの編集した中身も確認します。
コマンド
cat ファイル名
アウトプット
[ec2-user@ip-10-0-1-167 html]$ cat phpinfo.php
<?php
phpinfo( );
?>
[ec2-user@ip-10-0-1-167 html]$
ファイルの内容を確認することができました。
apacheを再起動させてから、
http:// [EC2のパブリックIPv4 アドレス] /phpinfo.phpへアクセスします。
コマンド
sudo systemctl restart httpd
アウトプット
[ec2-user@ip-10-0-1-167 html]$ sudo systemctl restart httpd
[ec2-user@ip-10-0-1-167 html]$
ブラウザでアクセスし、以下の画面が表示されればOKです。
mySQL(コマンドツール)のインストール
コマンド
sudo yum install -y mysql
アウトプット
[ec2-user@ip-10-0-1-167 html]$ yum install -y mysql
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00:00
(中略)
Installed:
mariadb.x86_64 1:5.5.68-1.amzn2
Complete!
[ec2-user@ip-10-0-1-167 html]$
説明:AWS上で、立ち上げたRDSインスタンスへ接続するために、エディタ上でもインストールする必要があるので、上記コマンドでインストールしました。
Aurora MySQLへ接続
MySQLへ接続していきます。
事前に接続するDBのエンドポイントを以下のところで確認しておきましょう。
以下のコマンドで接続していきます。(ここでの注意事項で、実際のパスワードの入力は、オプションの-pの直後にスペースを入れずに入力します。)
コマンド
sudo mysql -u "マスターユーザ名" -p"パスワード" -h "作成したRDSのエンドポイント"
アウトプット
[ec2-user@ip-10-0-1-167 html]$ sudo mysql -u admin -p"パスワード" -h database-2-instan ce-1.c4nczayson1y.eu-west-1.rds.amazonaws.com
Welcome to the MariaDB monitor. Commands end with ; or \g.
ログイン(接続)の確認ができたので、"\q"でログアウトします。
コマンド
\q
アウトプット
MySQL [(none)]> \q
Bye
[ec2-user@ip-10-0-1-167 html]$
WordPressのダウンロード
コマンド
cd ディレクトリ(パス)
アウトプット
[ec2-user@ip-10-0-1-167 html]$ cd /temp/
[ec2-user@ip-10-0-1-167 tmp]$
説明:cdコマンドで、一時的にファイルを保存するtmpディレクトリ配下へ移動しました。
コマンド
sudo wget "インストール先のURL"
アウトプット
[ec2-user@ip-10-0-1-167 tmp]$ sudo wget https://wordpress.org/latest.zip
--2023-01-25 05:29:52-- https://wordpress.org/latest.zip
Resolving wordpress.org (wordpress.org)... 198.143.164.252
Connecting to wordpress.org (wordpress.org)|198.143.164.252|:443...
(中略)
2023-01-25 05:29:55 (10.2 MB/s) - ‘latest.zip’ saved [24369959/24369959]
[ec2-user@ip-10-0-1-167 tmp]$
説明:WordPressのzipファイルダウンロードができました。
DLしたzipファイルを解凍していきます。
コマンド
unzip [解凍する対象ファイル]
アウトプット
[ec2-user@ip-10-0-1-167 tmp]$ unzip latest.zip
Archive: latest.zip
creating: wordpress/
(中略)
inflating: wordpress/wp-trackback.php
inflating: wordpress/wp-comments-post.php
[ec2-user@ip-10-0-1-167 tmp]$
DL終了後は、mvコマンドで、解凍(unzip)した全てのファイルをhtmlディレクトリ配下へ移動します。
コマンド
sudo mv "ファイル名" 移動先のパス
アウトプット
[ec2-user@ip-10-0-1-167 tmp]$ sudo mv wordpress/* /var/www/html/
[ec2-user@ip-10-0-1-167 tmp]$
zipファイルの削除
コマンド
sudo rm -オプション パス ファイル名
アウトプット
[ec2-user@ip-10-0-1-167 tmp]$ sudo rm -rf wordpress/ latest.zip
[ec2-user@ip-10-0-1-167 tmp]$
説明:「-r」は再帰的に、「-f」は強制的にコマンドを実行するオプションです。
所有権・所有グループの設定変更
ファイル・ディレクトリの所有権・権限の設定変更をしていきます。
事前に、llコマンド(ls -lの略式。正確にはコマンドではないとされている)でファイルの詳細を確認しておきます。
コマンド
ll
アウトプット
[ec2-user@ip-10-0-1-167 html]$ ll
total 224
-rw-r--r-- 1 ec2-user ec2-user 405 Feb 6 2020 index.php
-rw-r--r-- 1 ec2-user ec2-user 19915 Jan 1 2022 license.txt
(中略)
-rw-r--r-- 1 ec2-user ec2-user 4914 Oct 17 11:22 wp-trackback.php
-rw-r--r-- 1 ec2-user ec2-user 3236 Jun 8 2020 xmlrpc.php
[ec2-user@ip-10-0-1-167 html]$
所有者・所有グループともにec2-userとなっていることがわかります。
また、結果の他の部分の見方を↓の様にindex.phpというファイルを例に、補足を付けます。
アクセス権については、また後で細かく説明しますが、2進数・8進数での表記法もあるので、その表記を下記に載せておきます。
記号表記 | r-- |
-w- |
--x |
---|---|---|---|
2進数 | 100 | 010 | 001 |
8進数 | 4 |
2 |
1 |
さて、所有者を変更していきます。chownコマンドだけでは結果が表示されないので、併せて"ll"を入力した結果もアウトプットとして載せます。
コマンド①
sudo chown [オプション] 所有者 ディレクトリ名/ファイル名
コマンド②
ll
アウトプット
[ec2-user@ip-10-0-1-167 html]$ sudo chown -R apache /var/www
[ec2-user@ip-10-0-1-167 html]$ ll
total 224
-rw-r--r-- 1 apache ec2-user 405 Feb 6 2020 index.php
-rw-r--r-- 1 apache ec2-user 19915 Jan 1 2022 license.txt
(中略)
-rw-r--r-- 1 apache ec2-user 4914 Oct 17 11:22 wp-trackback.php
-rw-r--r-- 1 apache ec2-user 3236 Jun 8 2020 xmlrpc.php
[ec2-user@ip-10-0-1-167 html]$
所有者のところが、"ec2-user"から"apache"へ変更されていることがわかります。
所有グループの変更にはchgrpコマンドを使います。
コマンド
sudo chgrp [オプション] ディレクトリ名/ファイル名
所有グループのとこもchownコマンドの時と同様の方法で、ec2-userからapache
へ変更しますが、確認方法も同様のため記載は省略します。
アクセス権限の設定方法
アクセス権限の設定は、以下で設定をします。
①wwwディレクトリとその配下の全てのディレクトリに数値モードで2775の権限設定をする。
②wwwディレクトリ配下の全てのファイルに数値モードで664の権限設定をする。
所有権の設定のところでは、4桁目の表示がなかったため、4桁目について説明します。
4桁目の特殊な権限設定
・「2」:setgid。そのファイルの所有グループの権限で動く。
・「4」:setuidを意味する。そのファイルの所有者権限で動く。
なお、↑の権限設定をしない場合は四桁目は「0」か表記(入力)は省略となります。
事前に権限状態の確認をします。
ll入力後のアウトプット
[ec2-user@ip-10-0-1-167 var]$ ll
total 4
drwxr-xr-x 2 root root 19 Jan 24 23:05 account
drwxr-xr-x 2 root root 6 Apr 9 2019 adm
(中略)
drwxr-xr-x 4 root root 33 Jan 27 07:13 www
drwxr-xr-x 2 root root 6 Apr 9 2019 yp
[ec2-user@ip-10-0-1-167 var]$
wwwディレクトリのところはグループ権限はr-xとなっています。
chmodコマンドを4桁目の[2](2000)を含めて実行します。(こちらも結果が分かるよう"ll"インプット結果も併せて記載します)
コマンド
chmod 権限設定 ファイルパス
アウトプット
[ec2-user@ip-10-0-1-167 var]$ sudo chmod 2775 /var/www
[ec2-user@ip-10-0-1-167 var]$ ll
total 4
drwxr-xr-x 2 root root 19 Jan 24 23:05 account
drwxr-xr-x 2 root root 6 Apr 9 2019 adm
(中略)
drwxrwsr-x 4 apache apache 33 Jan 27 07:26 www
drwxr-xr-x 2 root root 6 Apr 9 2019 yp
[ec2-user@ip-10-0-1-167 var]$
wwwディレクトリのグループアクセス権のところが"r-x"から"rws"となりました。
実行権限のところは通常は"x"なのですが、setgid(2000を足す)を付ける場合は、その部分が"s"と表記されます。
また、先ほどのchmodコマンドではwwwディレクトリのみ指定実行となっています(その配下のディレクトリには設定は適用されません)。
また数値モードの権限設定の見方の補足ですが、書き込み権限が「4」、読み込み権限が「2」、実行権限が「1」となっており、例えば、「7(=4+2+1)」の場合は、全ての権限を持っていることになります。
今回のchmodコマンドで設定した数字「2775」は、オーナーとグループは全権限、その他ユーザは書き込み権限・実行権限を持つ設定となり、4桁目(2000)のsergidの設定をしているので、グループユーザがファイル実行をするときは実行ファイルの所有者権限で実行することができます。
今度はfindコマンドで配下のディレクトリ・ファイルに権限設定をしていきます。
事前にhtmlにあるファイル・ディレクトリの権限状態を確認します。
ll入力後のアウトプット(wp-adminディレクトリの権限を確認)
[ec2-user@ip-10-0-1-167 html]$ ll
total 224
-rw-r--r-- 1 apache apache 405 Feb 6 2020 index.php
-rw-r--r-- 1 apache apache 19915 Jan 1 2022 license.txt
-rw-r--r-- 1 apache apache 7389 Sep 16 22:27 readme.html
-rw-r--r-- 1 apache apache 7205 Sep 16 23:13 wp-activate.php
drwxr-x--x 9 apache apache 4096 Nov 15 19:03 wp-admin
(中略)
-rw-r--r-- 1 apache apache 4914 Oct 17 11:22 wp-trackback.php
-rw-r--r-- 1 apache apache 3236 Jun 8 2020 xmlrpc.php
[ec2-user@ip-10-0-1-167 html]$
wwwディレクトリ配下の全てのディレクトリに対して、findコマンドを実行します。
コマンド
[ec2-user@ip-10-0-1-167 html]$ find /var/www -type d -exec sudo chmod 2775 {} \; ;
total 224
-rw-r--r-- 1 apache apache 405 Feb 6 2020 index.php
-rw-r--r-- 1 apache apache 19915 Jan 1 2022 license.txt
-rw-r--r-- 1 apache apache 7389 Sep 16 22:27 readme.html
-rw-r--r-- 1 apache apache 7205 Sep 16 23:13 wp-activate.php
drwxrwsr-x 9 apache apache 4096 Nov 15 19:03 wp-admin
(中略)
-rw-r--r-- 1 apache apache 4914 Oct 17 11:22 wp-trackback.php
-rw-r--r-- 1 apache apache 3236 Jun 8 2020 xmlrpc.php
[ec2-user@ip-10-0-1-167 html]$
wp-adminディレクトリのグループが"r-x"から"rws"となっていることが確認できました。
次は、wwwディレクトリ配下の全てのファイルに対して、findコマンドを実行します。事前確認は、↑のindex.phpなどのファイルから確認ができます。
find ディレクトリ/ファイル名 オプション
実行後のアウトプット
[ec2-user@ip-10-0-1-167 html]$ find /var/www -type f -exec sudo chmod 0664 {} \;
total 224
-rw-rw-r-- 1 ec2-user ec2-user 405 Feb 6 2020 index.php
-rw-rw-r-- 1 ec2-user ec2-user 19915 Jan 1 2022 license.txt
(中略)
-rw-rw-r-- 1 ec2-user ec2-user 4914 Oct 17 11:22 wp-trackback.php
-rw-rw-r-- 1 ec2-user ec2-user 3236 Jun 8 2020 xmlrpc.php
[ec2-user@ip-10-0-1-167 html]$
ファイルのグループ権限がr‐‐からrw‐に変更されています。
findは、検索コマンドで、-typeはディレクトリかファイルを指定するオプションす。
-execは、追加でコマンドを実行するオプションで、今回の場合は、検索したディレクトリやファイルに対して権限変更を実行しています。
wp-config.phpファイルの編集
コマンド
mv ファイル名1 ファイル名2
アウトプット
[ec2-user@ip-10-0-1-167 html]$ sudo mv wp-config-sample.php wp-config.php
[ec2-user@ip-10-0-1-167 html]$
説明:「wp-config-sample.php」を 「wp-config.php」へ名前変更しました。
viコマンドで、wp-config.phpのファイルの以下の部分を編集します。
を編集します。
sudo vi wp-config.php
対象の部分をRDSインスタンスを作成した時の設定値に修正します。
define( 'DB_NAME', '[データベース名]' );
define( 'DB_USER', '[マスターユーザー名]' );
define( 'DB_PASSWORD', '[マスターパスワード]' );
define( 'DB_HOST', '[エンドポイント]');
下のように修正しました。(パスワードは伏せています。)
WordPressサイトのセットアップ
wp-config.phpの設定が完了したら、ブラウザからhttp://[EC2のpublicIPアドレス]/wp-adminへアクセスします。
言語を選択し、任意で入力していくと、
成功しました!と表示されました。
その後、先ほど設定したユーザ名・パスワード入力すると、
ログインすることができました。
データベース動作確認
作成したWordPressサイトがRDS連携できているか確認のため、何か投稿をして確認してみます。
設定したワードプレスサイトには、初期の状態で、コメントが1ついた記事が1つあります。
その記事に追加でコメントをしてデータベースの反映を確認します。
コメント前にMySQLでコメント数を確認します。
まずは、前述の手順でMySQLへログインした状態で、WordPressのデータベースを改めて確認します。
コマンド
show databases;
アウトプット
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| WordPressDB |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
データベース名が「WordPressDB」と確認できたので、
データベース名を指定します。
コマンド
use データベース名;
アウトプット
MySQL [(none)]> use WordPressDB;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MySQL [WordPressDB]>
MySQL [(none)]のところが、MySQL [WordPressDB]に変わりました。
次は、table構成を確認します。
コマンド
show tables;
アウトプット
MySQL [WordPressDB]> show tables;
+-----------------------+
| Tables_in_WordPressDB |
+-----------------------+
| wp_commentmeta |
| wp_comments |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
+-----------------------+
12 rows in set (0.00 sec)
wp_commentsテーブルの中から全てのデータを抽出すると見にくくなるので、属性情報を絞ってデータを抽出します。今回は事前に確認した[ID]、[post_date]、[comment_count]で抽出します。
コマンド
select キー名1, キー名2,... FROM テーブル名;
アウトプット
MySQL [WordPressDB]> select ID, post_date, comment_count FROM wp_posts;
+----+---------------------+---------------+
| ID | post_date | comment_count |
+----+---------------------+---------------+
| 1 | 2023-01-25 15:28:47 | 1 |
| 2 | 2023-01-25 15:28:47 | 0 |
| 3 | 2023-01-25 15:28:47 | 0 |
| 4 | 2023-01-25 15:29:07 | 0 |
| 5 | 2023-01-25 16:27:49 | 0 |
| 6 | 2023-01-25 16:18:45 | 0 |
| 7 | 2023-01-25 16:21:35 | 0 |
| 8 | 2023-01-25 16:24:35 | 0 |
| 9 | 2023-01-25 16:25:19 | 0 |
| 10 | 2023-01-25 16:25:19 | 0 |
+----+---------------------+---------------+
comment_countの部分が"1"となっています。
ブラウザへ戻り、「Hello world!」とコメントを投稿しました。
MySQLの方で、先ほどと同じコマンドで、テーブルを確認します。
MySQL [WordPressDB]> select ID, post_date, comment_count FROM wp_posts;
comment_countno部分が"2"となっており、EC2で立ち上げているWebサーバ(Wordpress)とRDS上のデータベースが連携されていることが確認できました。
今回の構築作業はここまでとします。
終わりに
構築作業にあたり、エディターの扱いやWordPressの基盤についてよく理解できていなかったため、理解して設定作業を行うのに物凄く時間がかかっていました。phpにはたくさんの拡張モジュールがあり、「実際に何が必要なのか」ということは、セキュリティなどを考慮しつつ、利用方法によって選んでいく必要があること、WordPressは推奨環境を整えれば、最低限の基盤は構築できるということが理解できてよかったです。またブログ記事作成に当たり、追加で調べることもあり、構築に関係するコマンドについても理解を深めることができました。Inputがまだまだ足りないですが、Outputの作業効率も上げていきたいと思います。
参考文献・URL
・[AWS公式ページ Amazon Aurora の特徴](Amazon Aurora の特徴 "AWS公式ページ Amazon Aurora の特徴")
・株式会社スタイルズ AWS Auroraとは?その特徴とは?
・WordPress について
・【PHP】現在の設定内容を確認する[phpinfo()]関数の使い方。
・今さら聞きづらい「ファイルパーミッション」について
・【Linuxパーミッション】SGIDとは?と設定方法
・【Linuxコマンド】chmodでパーミッションを設定する方法
・Linux入門 chgrp – ファイルのグループを変更 – Linuxコマンド
・Qiita mvコマンドでファイル(ディレクトリ)名の変更、移動
・エンジニアの入り口 【初心者にもわかる】rpmとyumの違いと使い分け一通り
・ラクス エンジニアブログ yum installで学ぶ! yum の仕組み
・ProEngineer LAMP環境は古い?AWSでのLAMP環境構築方法と今後のトレンドを解説