AWSのEC2インスタンスにWordPressを導入してブログを作ってみた ~パート2(ミドルウェアインストール・設定~WordPress導入まで)~

AWS

7.ミドルウェアインストール・設定

まずは前回作成したwordpress-serverにミドルウェアパッケージをインストールしていきます。
teratermでwordpress-serverにログインしたら下記でrootユーザにスイッチします。

$ sudo su -

OSのパッケージを最新のバージョンにします。

# yum update -y

OSにApacheをインストールします。

# yum -y install httpd

Apacheを起動します。
また、OS起動時にApacheが自動起動するように設定します。

# systemctl start httpd
# systemctl enable httpd

Apacheのステータスを確認します。

# systemctl status httpd

ステータス結果が下記の通り(enabledとactive(running))となっていればapacheの自動起動設定/起動状態となっています。

Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2021-12-09 03:03:25 UTC; 8s ago

続いてphpをインストールしていきます。

今回使用するphpのバージョンは7.4を使用します。
※wordpressがphpの対応バージョンとして7.4以上を推奨しているためです。

インストールするphpのバージョンを7.4にするため下記を実行します。

# amazon-linux-extras enable php7.4

php関連のパッケージをインストールします。

# yum install php php-gd php-mysqlnd php-xmlrpc -y

後に作成するデータベースと接続するためにMySQLをインストールします。

# yum install mysql -y

これで一通りミドルウェアのインストールが完了しました。
次にちょっとした設定変更を実施します。

WordPressでパーマリンク機能を使用するための設定をします。

# vi /etc/httpd/conf/httpd.conf

<Directory “/var/www/html”>セクション内の下記の行を変更し保存します。
【変更前】
AllowOverride None

【変更後】
AllowOverride ALL

WordPressの機能でサーバに画像データやプラグインなどをアップロードする際にファイルの容量制限が掛かっているためその上限を変更します。

# vi /etc/php.ini

post_max_sizeとupload_max_filesizeの値を(デフォルトだと小さいため)大きくします。
【変更前】
post_max_size = 8M
upload_max_filesize = 2M

【変更後】
post_max_size = 50M
upload_max_filesize = 50M

変更後、ファイルを保存します。

変更を反映するためにApacheを再起動します。

# systemctl restart httpd

これでミドルウェアインストール&設定は完了です。
次はRoute53に自分のドメインを登録していきます。

8.Route53の設定

事前に取得しておいた独自ドメインをRoute53に設定して、インターネット上からドメイン指定でアクセスできるようにします。

サービスの検索欄から「Route53」と入力してRoute53サービスが表示されるので選択します。

Route53の画面に遷移したら画面左のツリーから「ホストゾーン」を選択し、「ホストゾーンの作成」を押下します。

ドメイン名に事前に取得しておいた独自ドメイン名を入力します。
タイプはパブリックホストゾーンを指定します。
上記入力後、「ホストゾーンの作成」を押下します。

ホストゾーン作成後、独自ドメインのメニューから「レコードを作成」を押下します。

ステップ1としてルーティングポリシーを選択する画面が表示されるので、今回は「シンプルルーティングポリシー」を選択し、「次へ」を押下します。

ステップ2としてレコードを設定します。
「シンプルなレコード定義」を押下します。

レコードタイプは「A-IPv4 アドレスと一部のAWSリソースにトラフィックをルーティングします。」を選択します。
値/トラフィックのルーティング先には「レコードタイプに応じたIPアドレスまたは別の値」を
選択し、 (下記画面XXX.XXX.XXX.XXXの箇所に)wordpress-serverにアタッチしたEIPを指定します。
最後に「シンプルなレコードを定義」を押下します。

独自ドメインのホストゾーンに登録したレコードが表示されていれば設定完了です。
次はRDSでデータベースを作成していきます。

9.RDS(MySQL)の設定

WordPressが使用するデータベースを作成していきます。
EC2インスタンス上にデータベースを作成する方法でも問題ないですが、学習も兼ねて
今回はRDSを使用したいと思います。

サービスの検索欄から「RDS」と入力してRDSサービスが表示されるので選択します。

RDSの画面に遷移したら画面左のツリーから「サブネットグループ」を選択し、「DBサブネットグループの作成」を押下します。

名前と説明は「db-subnet-group」にします。
VPCには「vpc-practice」を選択します。

アベイラリティゾーンには「ap-northeast-1a」「 ap-northeast-1d」を選択します。
サブネットにはDB用に作成したサブネット2つを指定します。
「作成」を押下します。

次にデータベースを作成していきます。
画面左のツリーから「データベース」を選択し、「データベースの作成」を押下します。

今回、データベースの設定は下記内容で設定していきます。

  1. データベースの作成方法
    ⇒ 標準作成
  2. エンジンオプション
    ⇒ MySQL
  3. エディション
    ⇒ 最新のMySQLのバージョンを選択
  4. テンプレート
    ⇒ 無料利用枠
  5. DBインスタンス識別子
    ⇒ db-instance-wordpress   ※任意の名前で問題なし
  6. マスターユーザー名
    ⇒ admin
  7. パスワードの自動生成
    ⇒ チェックあり
  8. DBインスタンスクラス
    ⇒ db.t2.micro
  9. ストレージタイプ
    ⇒ 汎用SSD(gp2)
  10. ストレージの割り当て
    ⇒ 20GiB ※最小20GiB
  11. ストレージの自動スケーリングを有効にする
    ⇒ チェックなし
  12. Virtual Private Cloud (VPC)
    ⇒ vpc-practiceを選択
  13. サブネットグループ
    ⇒ db-subnet-group
  14. パブリックアクセス
    ⇒ なし
  15. VPCセキュリティグループ
    ⇒ db-serverを選択
  16. アベイラビリティゾーン
    ⇒ ap-northeast-1a
  17. データベースポート
    ⇒ 3306
  18. データベース認証オプション
    ⇒ パスワード認証
  19. DBパラメータグループ
    ⇒ db-subnet-group
  20. オプショングループ
    ⇒ db-option-group 
  21. 自動バックアップの有効
    ⇒ チェックあり
  22. バックアップ保持期間
    ⇒ 7日間
  23. バックアップウィンドウ
    ⇒ 選択ウィンドウ
  24. 開始時間
    ⇒ 17:00 UTC ※日本時間の深夜2時
  25. スナップショットにタグをコピー
    ⇒ チェックあり
  26. 拡張モニタリングの有効化
    ⇒ チェックあり
  27. ログのエクスポート
    ⇒ allチェックなし
  28. マイナーバージョン自動アップグレードの有効化
    ⇒ チェックなし
  29. メンテナンスウィンドウ
    ⇒ 設定なし
  30. 削除保護の有効化
    ⇒ チェックなし

上記設定後、「データベースの作成」を押下します。
データベース(db-instance-wordpress)のadminユーザのパスワードが表示されるのでそのパスワードをメモしておきます。

データベースインスタンスのスターテスが利用可能になれば作成完了です。

wordpress-serverからデータベースへの接続確認をしてみます。

teratermからwordpress-serverにec2-userでログイン後、下記を実行していきます。

$ sudo su -
# mysql -h エンドポイント -u admin -p
>Enter password: [adminのパスワードを入力します。]
※エンドポイントはデータベースインスタンスの【接続とセキュリティ】タブから参照できます。

ログインに成功したらデータベースを作成していきます。

MySQL [(none)]> CREATE DATABASE wordpress-db;

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wordpress_db       |
+--------------------+
wordpress_dbが作成されていることを確認します。

これでRDSによるデータベース環境の設定は完了です。
次はWordPressの導入を行っていきます。

10.WordPressの導入

最後にWordPressをwordpress-serverに導入します。

teratermからwordpress-serverにec2-user でログイン後、下記を実行していきます。

$ sudo su -

最新版のWordpress(日本語バージョン)をダウンロードします。

# wget https://ja.wordpress.org/latest-ja.tar.gz

ダウンロードしたWordpressを解凍し、wp-config.phpを(サンプルファイルから)作成します。

# cd /root/wordpress
# cp wp-config-sample.php wp-config.php

作成したwp-config.phpの中身を変更していきます。

# vi wp-config.php

下記のとおり変更し、ファイルを保存します。
—————————————————————————————————————————
define( ‘DB_NAME’, ‘wordpress_db’ );   ※今回作成したwordpress_dbを指定します。

define( ‘DB_USER’, ‘admin’ ); ※マスターユーザ名で設定したadminを指定します。

define( ‘DB_PASSWORD’, ‘adminのパスワードを指定’ );  ※adminのパスワードを指定します。

define( ‘DB_HOST’, ‘データベースインスタンスのエンドポイント:3306’ ); 
 ※エンドポイントとポート番号(今回は3306で設定)を指定します。
—————————————————————————————————————————

/root/wordpress内の全てのファイル/フォルダを/var/www/html配下にコピーします。

# cp -pr /root/wordpress/* /var/www/html/

WordPressの機能でapacheドキュメントルートにメディアのアップロード等をする際にapacheユーザのアクセス許可が必要なので権限を変更していきます。

# chown -R apache:apache /var/www/html

変更した定義を反映するためにapacheを再起動します。

# systemctl restart httpd

最後にWordpressをインストールしていきます。

WEBブラウザのURLに下記を入力し、アクセスします。
http://ドメイン名/wp-admin/install.php

これまでの設定に問題がなければWordPressの画面が表示されます。

あとは言語設定、各種必要な情報を入力し、「Wordpressをインストール」を押下します。

インストール完了&ログイン後にWordpressの管理画面が表示されればこれで作業は完了となります。

コメント

タイトルとURLをコピーしました