【AWSでWordPress】EC2にLAMP環境を整える

2021年3月13日

AWSでWordPress環境を構築していきます。

この記事は構築手順(下の表)の3についてメモしてゆきます。

  1. AWSのアカウントを作成する :30分
  2. EC2インスタンスの作成 :20分
  3. EC2にLAMP環境を整える :20分
  4. EC2にWordPressをインストールする :20分
  5. 独自ドメインを取得する :30分
  6. 通信をHTTPS化する :60分

〜発展〜
・ストレージをS3にする
・データベースをRDSにする

LAMP環境とは

LAMP環境とはWebシステムの構築に欠かせない4つのオープンソフトの頭文字をとったものらしい。

  • Linux  ? OS
  • Apache ? Webサーバー。読み方はアパッチ。かわいい。
  • MySQL ? データベース
  • PHP  ? サーバーサイドでよく使われるプログラミング言語

非IT人材であった私は恥ずかしながら「???LAMP???」という感じでした。
ただ、世界中み〜んな使ってるだけあって調べたら何でもでてきますね!

とにかくEC2をWebサーバとして使いたかったらこれらをインストールしとけばいけそうです。
ApacheでなくNginxを使った構成など色々な記事がでてきますが
素人なのでベーシックなApache構成でいきましょう!

データベースはMySQLから派生したMariaDBを使います。
理由はそうしている人が多いからです。素人!

完全に余談ですが、MySQLとMariaDBのロゴがめちゃくちゃかわいいです。

各ソフトのインストール

それではEC2にソフトをインストールしていきます。
Amazon Linux 2でEC2を起動している前提ですすめます。

EC2にSSH接続

まずはEC2にSSHで接続します。参考? EC2にSSHアクセスする

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-〜〜〜〜 ~]$ 

こんな感じで表示されたらOK!
以降はSSH接続したEC2にコマンドをうって作業してゆきます。

インストールする準備

EC2インスタンスのソフトウェアパッケージが最新の状態であるかを確認して、更新をインストールする。

sudo yum update -y

LAMP MariaDB と Amazon Linux 2 PHP パッケージの最新バージョンを取得する。

sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2

どかどかどかっと色々インストールされたらOK!

インストール

EC2インスタンスが最新の状態になったので、Apacheウェブサーバ、MariaDB、PHPパッケージをインストールします。

sudo yum install -y httpd mariadb-server

これまたどかどかとインストールが始まりますが、少し待てば終わります。

インストールしたApacheサーバを起動してみます。
ちなみにhttpdがWebサーバとして常に働いてくれている良いヤツです。覚えておこう!

sudo systemctl start httpd

特にエラーなどでなければOK。
EC2を停止→起動、再起動などしたときに自動的にApacheサーバが起動するように設定しておきます。

sudo systemctl enable httpd

ちゃんと設定できたか確認するには下記コマンドをうちます。

sudo systemctl is-enabled httpd

ちゃんと設定できていれば、enabledと一言だけ返してくれます。ツンデレ

ウェブサーバのテスト

EC2にインストールしたApacheがきちんと動作しているかを確認します。
AWSコンソールからEC2インスタンスの概要を確認すると、パブリックIPv4アドレスとかパブリックIPv4 DNSが記載されているので、そのどちらかにウェブブラウザからアクセス。
コピペでも良いし、「オープンアドレス」と書かれているところをクリックしたら自動でページが開く。

こんなテストページが表示されたらWebサーバが正常に動作してます!

もし表示されないばあいは、URLが「https://~~~~」になってるかも。
sを削除して「http://~~~~」で再度アクセスするとよいかも。

ファイルを操作できるようにする

デフォルトではApache httpdのドキュメントルートは「/var/www/html」になっています。
つまりインターネッツでアクセスしたときに「/var/www/html」フォルダ以下が公開される設定になっています。

/var/www/html」以下のファイルを操作するためにディレクトリの所有権とアクセス許可を変更します。
ちょっと何言ってるか分かんないっす。って人もとりあえず心を無にして順番に下記コマンドをコピペしていけば大丈夫!

EC2のユーザ名はデフォルトで「ec2-user」となっているので、
ユーザ名は「ec2-user」として話を進めますが、変更した人は「ec2-user」のところを
変更したユーザ名に置き換えてください。

・ユーザをapacheグループに追加する

sudo usermod -a -G apache ec2-user

一旦SSH接続をきってログアウトする

exit

再度SSH接続して、apacheグループのメンバーシップを確認する

groups

ec2-user adm wheel apache systemd-journal のように表示されます。「ec2-user」があればOK。

/var/www ディレクトリと、そのコンテンツのグループ所有権を apache グループに変更する。

sudo chown -R ec2-user:apache /var/www

/var/www とサブディレクトリのディレクトリ許可を変更する。

sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \;

/var/www とサブディレクトリのファイル許可を再帰的に変更してグループ書き込みを許可する。

find /var/www -type f -exec sudo chmod 0664 {} \;

以上!!お疲れ様です◎

LAMPサーバの動作確認

今までの作業がすべてうまくいっていると、「/var/www/html」ディレクトリにファイルを作成できるはずです。
試しにPHPファイルを作成してみます。

echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

サーバにインストールされているPHP情報を表示するphpファイルを作成しました。
作成できなかった場合は「ファイルを操作できるようにする」を再度頑張ってみてください…。

EC2のパブリックIPv4DNSをコピーして、ウェブブラウザで
 http://パブリックIPv4 DNS/php.info.php
とうってみると、PHP情報が表示されればOK!順調!

このままだとインストールしているphpの情報を世界中の人に見られちゃうので
せっかく作ったphpinfo.phpは削除します。お役御免!!

rm /var/www/html/phpinfo.php

以上で、LAMP環境が整いました!よっしゃ!

MariaDBサーバをセキュリティで保護する

MariaDBをセキュリティで保護します!
MariaDB公式によると、「mysql_sequre_installation」を実行すると何だか良さげっぽいです。

このプログラムを利用すると、以下の点について、MariaDBをインストールした際のセキュリティを向上させることができます。
・root アカウントのパスワードをセットすることができます
・ローカルホストの外からアクセス可能な root アカウントを削除することができます
・匿名ユーザアカウントを削除することができます
・匿名ユーザが既定でアクセス可能な test データベースを削除することができます

https://mariadb.com/kb/ja/mysql_secure_installation/

MariaDBを起動

sudo systemctl start mariadb

mysql_secure_installationを実行

sudo mysql_secure_installation

実行すると、文字がずらずらっと表示されます。
案内に従って設定します。

  1. Enter current password for root (enter for none):  と表示されるので何も入力せずEnterキーを押す。
  2. Set root password? [Y/n] と表示されるので Y と入力してEnter
  3. New password: と表示されるのでパスワードを入力。画面には入力文字は表示されないので丁寧に
  4. Re-enter new password:  と表示されるので、もう一度パスワードを入力。慎重に。
  5. Remove anonymous users? [Y/n] と表示されるので Y と入力してEnter
  6. Disallow root login remotely? [Y/n]  と表示されるので Y と入力してEnter
  7. Remove test database and access to it? [Y/n]  と表示されるので Y と入力してEnter
  8. Reload privilege tables now? [Y/n]  と表示されるので Y と入力してEnter

ここまで入力すると、

All done!  If you’ve completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

と表示されるので完了です。嬉しい!

ついでに起動時に毎回MariaDBを起動させる設定をしておきます!

sudo systemctl enable mariadb

phpMyAdminをインストールする

MySQLデータベースをビジュアルで管理できるツールphpMyAdminをインストールしておきましょう!

必要なファイルをインストール

sudo yum install php-mbstring -y

Apacheを再起動

sudo systemctl restart httpd

php-fpmを再起動

php-fpmってなんや??と思いました。下のように書かれていました。
よく分からんなあと思ったので頭を空にして再起動します。

FPM (FastCGI Process Manager) は PHP の FastCGI 実装のひとつで、 主に高負荷のサイトで有用な追加機能を用意しています。

https://www.php.net/manual/ja/install.fpm.php
sudo systemctl restart php-fpm

Apacheドキュメントルートに移動

cd /var/www/html

最新のphpMyAdminをダウンロード
https://www.phpmyadmin.net/downloadsにアクセスして最新のパッケージを確認。
現在は5.1.0が最新だったので、ファイルの上で右クリックしてリンクをコピー。
バージョンが違う場合はこれ以降適宜置き換えてください。
EC2インスタンスにダウンロードするにはwget のあとにリンクを貼り付ける下記のようなコマンドを実行。

wget https://files.phpmyadmin.net/phpMyAdmin/5.1.0/phpMyAdmin-5.1.0-all-languages.tar.gz

phpMyAdminのフォルダを作成して、パッケージを展開

mkdir phpMyAdmin && tar -xvzf phpMyAdmin-5.1.0-all-languages.tar.gz -C phpMyAdmin --strip-components 1

phpMyAdmin-5.1.0-all-languages.tar.gz Tarballを削除する

rm phpMyAdmin-5.1.0-all-languages.tar.gz

MariaDBサーバを停止している場合は起動する

sudo systemctl start mariadb

ウェブブラウザでphpMyAdminのインストールURLを入力

AWSコンソールでEC2のパブリックIPv4DNSをコピー
ウェブブラウザで http://パブリックIPv4 DNS/phpMyAdmin と入力

phpMyAdminのログインページが表示されるのでログインする

ブラウザにログイン画面が表示されるので、入力欄に以下を入力する
Username:root
PassWord:「MariaDBサーバをセキュリティで保護する」で設定したパスワード

これでログインできれば、バッチリ!

以下のようなエラーが表示されてしまう場合:

Composer detected issues in your platform: Your Composer dependencies require the following PHP extensions to be installed: xml

下のようなコマンドでインストールして、インスタンスを再起動したらOKでした。

sudo yum install -y php-xml

これでEC2にLAMP環境が整いました!
次はWordPress自体をインストールしてゆく!

ではでは!
\楽しい人生/

ブログランキング・にほんブログ村へ