【AWSでWordPress】EC2にLAMP環境を整える
AWSでWordPress環境を構築していきます。
この記事は構築手順(下の表)の3についてメモしてゆきます。
- AWSのアカウントを作成する :30分
- EC2インスタンスの作成 :20分
- EC2にLAMP環境を整える :20分
- EC2にWordPressをインストールする :20分
- 独自ドメインを取得する :30分
- 通信を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をインストールした際のセキュリティを向上させることができます。
https://mariadb.com/kb/ja/mysql_secure_installation/
・root アカウントのパスワードをセットすることができます
・ローカルホストの外からアクセス可能な root アカウントを削除することができます
・匿名ユーザアカウントを削除することができます
・匿名ユーザが既定でアクセス可能な test データベースを削除することができます
・MariaDBを起動
sudo systemctl start mariadb
・mysql_secure_installationを実行
sudo mysql_secure_installation
実行すると、文字がずらずらっと表示されます。
案内に従って設定します。
- Enter current password for root (enter for none): と表示されるので何も入力せずEnterキーを押す。
- Set root password? [Y/n] と表示されるので Y と入力してEnter
- New password: と表示されるのでパスワードを入力。画面には入力文字は表示されないので丁寧に。
- Re-enter new password: と表示されるので、もう一度パスワードを入力。慎重に。
- Remove anonymous users? [Y/n] と表示されるので Y と入力してEnter
- Disallow root login remotely? [Y/n] と表示されるので Y と入力してEnter
- Remove test database and access to it? [Y/n] と表示されるので Y と入力してEnter
- 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自体をインストールしてゆく!
ではでは!
\楽しい人生/
ディスカッション
コメント一覧
まだ、コメントがありません