AWS EducateでだってWordPressを動かしたい!


初めに

おい、AWSならLightsailでWordPressの環境作れば良いじゃん!ってなりそうですよね?ところがどっこい、何とAWS Educateでは使えないようなのです…という訳で、EC2で環境構築を行いました。因みに、何故動かしたいかというととある脆弱性の検証をしようと思ったからです。こちらは、はてなブログの方に載せたいと思います。ご興味のある方はそちらをどうぞ。(https://zuck3r.hatenablog.com/)

本題

それでは、まずどのようなシステムを組んだのか紹介したいと思います。
OS:Ubuntu18.04
サーバー:apache
DB:mariadb
言語:php7.2
ソフトウェア:WordPress

実際に構築してみる

ここからは構築の解説に入りたいと思います。

1.インスタンス周りの設定

まずはインスタンスの作成とセキュリティグループの追加。特にいう事は無いかなと。開けるポートに関しては80番ですよね。後は、sshポート。これは元から空いてた気もします…脆弱な環境で敢えて構築する場合は接続を許すIPをホワイトリストに登録してあげましょう。

2.Apacheの導入

以下のコマンドを用いて動かしてみて下さい。

$ sudo apt install apache2
$ sudo systemctl start apache2

こちらでインストール。一先ず作成したインスタンスのIPアドレスをURL欄に入力して、以下の画面が開いたらOK。

という訳で、Apacheのインストール完了!

3.DBと言語周りの環境構築

こちらは以下のコマンドで、PHPとmariadb等に必要なパッケージをインストール

$ sudo apt -y install php7.2 php7.2-mysql php7.2-cli
$ sudo apt -y install mariadb-server mariadb-client
#年の為起動コマンドを送っておく
$ sudo systemctl start mariadb

お次はDBの設定をします。以下を入力しましょう。パスワード、ユーザー名はそれぞれ変更をお願いします。

$ sudo mariadb
MariaDB [(none)]> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL ON wordpress.* TO wordpress@localhost IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;

ちなみに一番最後の FLUSH PRIVILEGES; は、権限の反映というものでGRANTやREVOKEなどを使用して間接的に権限テーブルを変更した場合は、別にしなくても問題無いようです!

4.WordPressのインストール

それでは、以下のコマンドを実行してください。これで最新版のWPを取ってくることが出来ます。

$ cd /var/www/html/
$ sudo wget https://ja.wordpress.org/latest-ja.tar.gz
$ sudo tar xvf latest-ja.tar.gz
$ sudo chown -R www-data:www-data .

ここまで出来たら、後はブラウザで IPアドレス/wordpressに接続して初期設定を行うだけなのですが折角なので、展開してるインスタンスのIPアドレスに接続したらWPが開くように設定を弄りましょう。触るのは以下のファイル、変更箇所を載せておきます。

$ cd /etc/apache2/
$ sudo vi apache2.conf 
-------------------------------------------
  170   <Directory /var/www/html/wordpress>
  171       Options Indexes FollowSymLinks
  172       AllowOverride None
  173       Require all granted
  174   </Directory>
--------------------------------------------
$ cd sites-available/
$ sudo vi 000-default.conf 
--------------------------------------------
  11   ServerAdmin webmaster@localhost
  12   DocumentRoot /var/www/html/wordpress
--------------------------------------------

これでブラウザのアドレスバーにインスタンスのIPアドレスを入れることによって、恐らくWordPressに接続できると思います。最後に、初期設定をしたらWordPressを動かせます。パスや、ユーザー名は先ほどのdb設定で作ったやつです。

最後に

まさかの、Educateではlightsailは使えないという事で驚きましたが上手い事WPを起動させることが出来ました。これで、この後したい脆弱性の検証をする事が出来そうです。