EC2(Linux 2)上でLAMPサーバとWordPressをインストールしてみる

AWS営業部の洲崎です! 今回はEC2でLAMPサーバからWordPressまでインストールしてみました。
2020.10.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、初心者向けシリーズです。
今回はEC2(Linux 2)上でLAMPサーバとWordPressをインストールしてみます。

前提

EC2はLinux t2.microで構築済み。
※EC2構築はこちらを参照。
EC2の接続はセキュリティグループでHTTPを許可していることを想定。
今回はEC2にLAMP※サーバをインストールしてからWordPressをインストールして立ち上げてみます。
2020/10/18時点での情報になります。
※LAMPとは、OSであるLinux、WebサーバであるApache HTTP Server、データベースであるMySQL、スクリプト言語であるPerl、PHP、Pythonを総称した頭文字から成る造語になります。(Wikipediaより抜粋)

LAMPサーバのインストール

LAMPサーバの準備

まずはインスタンスに接続し、以下コマンドを打っていきます。
インスタンス内でソフトウェアの更新を実行
sudo yum update -y
読み込みが始まり、complete!という画面が表示されたら成功です。

LAMP MariaDB と Amazon Linux 2 PHP パッケージの最新バージョンを取得
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2

Apacheウェブサーバ、MariaDB、PHPソフトウェアパッケージをインストール
sudo yum install -y httpd mariadb-server
また最後にcomplete!と表示されましたら成功です。

Apacheサーバを起動し、httpdが有効になっているかを確認
sudo systemctl start httpd
システムが起動する度にApacheサーバを立ち上げるように設定
sudo systemctl enable httpd
httpdが有効になっているかは下記コマンドで確認
sudo systemctl is-enabled httpd

ここまで行いましたら、Webサーバが立ちあがっているかテストしてみます。
インスタンスのパブリックDNSアドレスやパブリックIPアドレス、紐づけているElasticIPがあればそこにアクセスします。
下記画面がでればOKです。

次にec2-userがファイルを操作する為に、ディレクトリの所有権とアクセス許可を変更する必要があります。
下記コマンドを入力していきましょう。
ユーザ(ec2-user)をapacheグループに追加
sudo usermod -a -G apache ec2-user
一旦exitと入力しログアウトし、再ログイン、apacheグループに入ってるかgroupsで確認
下記の表示が出てくればOK

/var/wwwとコンテンツのグループの所有権をapacheグループに変更
sudo chown -R ec2-user:apache /var/www
apacheグループの書き込み許可と、サブディレクトリのファイル許可を下記コマンドで変更
sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;

ここまで行うことで、apacheグループ(ec2-user含む)はApacheでファイルを追加・削除・編集が出来る様になりました。

データベース(MariaDB)のセキュリティ保護

次にインストールしたMariaDBのセキュリティ保護を行います。
最低限設定すべき内容ですのでやっていきましょう。
MariaDBを起動
sudo systemctl start mariadb
※少し時間がかかります。
セキュリティ設定のコマンドを入力
sudo mysql_secure_installation
下記が表示されます、デフォルトではルートアカウントのパスワードは設定されていない為、Enterキーを入力。

Set root password?に対してY
設定したいパスワードを2回入力してください。
Remove anonymous users?に対してY
匿名のユーザーアカウントを削除します。
Disallow root login remotely?に対してY
リモートでのルートログインを無効にします。
Remove test database and access to it?に対してY
テストデータベースを削除します。
Reload privilege tables now?に対してY
権限テーブルを再ロード、変更を保存します。

これでMariaDBのセキュリティ設定が完了になります。
LAMPサーバの最低限の設定は完了しました!

WordPressインストール

WordPressパッケージのダウンロード

ではいよいよ本題のWordPressのインストールに入っていきます。
まずは下記コマンドを利用して、最新のWordpressパッケージをダウンロードします。
wget https://wordpress.org/latest.tar.gz
下記コマンドでパッケージを解凍します。
tar -xzf latest.tar.gz

WordPress用のユーザとデータベース作成

次にWordPressインストール用にデータベースユーザとデータベースを作成します。
下記流れでパパっとやっていきましょう。

MariaDBにrootユーザとしてログイン
mysql -u root -p
※パスワードを求められるので、先ほど設定したパスワードを入力しましょう。
下記にてログインを確認。

WordPress用のユーザとパスワードを作成
CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY '自身でパスワードを入力';

データベースを作成
CREATE DATABASE wordpress-db;

データベースに対して先ほど作成したユーザの権限を付与
GRANT ALL PRIVILEGES ON wordpress-db.* TO "wordpress-user"@"localhost";

設定した権限の反映
FLUSH PRIVILEGES;

ここまで行いましたら、exitでMariaDBを終了します。

Wp-config.phpファイルの作成と編集

WordPressインストールに重要なwp-config.phpファイルを作成・編集します。
wp-config-sample.phpファイルをwp-config.phpという名前でコピーする
cp wordpress/wp-config-sample.php wordpress/wp-config.php

テキストエディタを起動してwp-config.phpファイルを編集する。(今回はnanoで編集してみます)
nano wordpress/wp-config.php
下記画像の黄色箇所を先ほど決めた内容に編集(DB_NAME、DB_USER、DB_PASSWORD)

WordPressファイルをApacheドキュメント配下に設置

WordPressファイルをApacheドキュメント配下に置きます。
WordPressをドキュメント配下で実行する場合は、WordPress のインストールディレクトリのコンテンツを下記コマンドでコピーします。
cp -r wordpress/* /var/www/html/

もしドキュメントの下の別ディレクトリで実行したい場合は、下記コマンドを入力します。
下記コマンドの場合は、blogというディレクトリから実行される形になります。
mkdir /var/www/html/blog cp -r wordpress/* /var/www/html/blog/

※もしWordpressファイルをコピーしてすぐにインストールに進まない場合はApacheサーバを停止しときましょう。
表にWordpressのインストール画面が出てくるので、第3者からアクセスされる可能性があります。
Apacheサーバを止めるにはsudo service httpd stopを入力します。

WordPressのパーマリンク有効化

また、WordpressのパーマリンクはAmazon Linuxではデフォルトで有効化されていない為、下記手順で編集します。
sudo nano /etc/httpd/conf/httpd.conf
下記画像のAllouwOverrideのところをNoneからALLに記載を変更します。

PHPのGDライブラリをインストール

PHP用のGDライブラリをインストールすることでブログのヘッダーイメージを変更することができます。
下記コマンドを入力し、Yと入力します。
sudo yum install php-gd

各サーバが立ちあがっているか確認

これでWordPressをインストールする準備ができました!
念のため、下記コマンドを入力して各サーバが実行中か確認しましょう。
httpd サービスとデータベースサービスがシステムブート時に起動することを確認
sudo systemctl enable httpd && sudo systemctl enable mariadb

データベースサーバが起動しているか確認
sudo systemctl status mariadb
※Activeでない場合、下記コマンドを入力
sudo systemctl start mariadb

Apache(httpd)サーバが起動しているか確認
sudo systemctl status httpd
※Activeでない場合、下記コマンドを入力
sudo systemctl start httpd

両方ともActiveになっている場合、インスタンスのパブリックDNSアドレスやパブリックIPアドレス、紐づけているElasticIP等にアクセスします。

下記インストール画面が表示されました!

項目を入力してインストールすることで、成功!の画面が表示されました!

まとめ

今回はEC2でLAMPサーバからWordPressまでインストールしてみました。

是非、初めてWordPressをインストールする等あれば参考にしてみてください。

前回同様のご案内になりますが、弊社経由でAWSをご利用頂くことで、AWS全サービスを5%OFFでご利用頂けます。
AWS請求代行サービス”クラスメソッドメンバーズ”

また、今回2020/10/16~2020/12/15まで、AWSを新規アカウントで契約するとご契約翌月のAWS利用費の最大30%相当額を翌々月の利用費から割引するキャンペーンを実施中です!!
GoToクラウドキャンペーン

是非これからAWSを利用するけども不安がある等ありましたら、お気軽にお問い合わせ頂けますと幸いです。

ではまた!AWS営業部の洲崎でした。