AWSでWeb(3)EC2とRDSでWordPress

概要

EC2にWordPressを導入する記事はたくさんあるのですが、RDSを使っているケースはあまり見当たらないようです。EC2のみで構築すると簡単そうに思えるのですが、実際に運用を始めるとバックアップの管理が面倒だったりするなどの手間が出てきます。RDSで作っておくと運用が楽になるので最初からRDSで構築しておくのがよいでしょう。

ゴール

EC2とRDSでWordPressを動かす。
image title

必要なもの

EC2とRDSでWordPressを動かしてみる

PHPをインストールする

WordPressを実行するためのPHPをインストールします。

  1. PHPのリポジトリを設定する
    amazon-linux-extras コマンドでインストールに使うリポジトリを指定します。
    sudo amazon-linux-extras enable php7.4 image title
  2. PHPをインストールする
    yumコマンドでphpをインストールします。
    sudo yum install php php-gd php-mysqlnd php-xmlrpc -y image title
  3. PHPがインストールされたことを確認する
    phpコマンドでバージョンを表示してインストールが正常に行われていることを確認します。
    php -version image title

WordPressをインストールする

  1. 作業ディレクトリを変更する
    セッションマネージャーで接続している場合はカレントディレクトリが /usr/bin になっているのでホームディレクトリに変更します。
    Linuxでは ~(チルダ) がホームディレクトリを表します。
    cd ~ image title
  2. WordPressをダウンロードする
    curlコマンドでwordpressをダウンロードします。
    ダウンロードしたファイルがあることをlsコマンドで確認します。
    wget https://wordpress.org/latest.tar.gz image title
  3. ダウンロードしたファイルを解凍する
    tarコマンドでダウンロードしたファイルを解凍します。
    tar -xzvf latest.tar.gz image title
  4. 設定ファイルのサンプルをコピーする
    解凍ファイルに含まれているサンプルの設定ファイルをコピーします。
    cp wordpress/wp-config-sample.php wordpress/wp-config.php image title
  5. nanoエディタで設定ファイルの編集を始める
    nanoエディタを使用して設定ファイルの変更を始めます。
    nano wordpress/wp-config.php image title
  6. DB設定を変更する
    DBの以下4つの設定を変更します。DB_NAMEは任意の値を設定して構いませんが、この手順では「wordpress-db」を使用します。
    マスターユーザー名、マスターパスワード、エンドポイントはRDS構築時に指定した値です。


    image title
  7. 変更を保存してnanoエディタを終了する
    キーボード操作で「C-o」(コントロールキーを押したままo)を押すとファイル保存モードになるので、エンターキーを押して保存します。
    次に「C-x」(コントロールキーを押したままx)を押すとエディタが終了します。
  8. WordPressのファイルをApacheの配下にコピーする
    copyコマンドでWordPressのファイルをApacheの配下にコピーします。
    cp -r wordpress/* /var/www/html/ image title

Apacheの設定をWordPress用に変更する

  1. nanoエディタで設定ファイルの編集を始める
    WordPressのパーマリンクを使用するにはApacheの.htaccess設定を有効にする必要があります。Amazon Linux2 ではデフォルトでは無効になっているので有効に変更します。
    nanoエディタを使用して設定ファイルの変更を始めます。
    sudo nano /etc/httpd/conf/httpd.conf image title
  2. .htaccessを有効にする
    設定ファイルから <Directory “/var/www/html”> という行を探し、その後にある「AllowOverride」の値を None から All に変更します。
    この設定ファイルにはAllowOverrideという項目が何度か登場します。以下のスクショでも2か所存在しています。編集するのは<Directory “/var/www/html”>タグの中のAllowOverrideの値なので間違わないように注意しましょう。image title
  3. 変更を保存してnanoエディタを終了する
    キーボード操作で「C-o」(コントロールキーを押したままo)を押すとファイル保存モードになるので、エンターキーを押して保存します。
    次に「C-x」(コントロールキーを押したままx)を押すとエディタが終了します。
  4. Apacheによる書き込み権限を追加する
    WordPressはドキュメントルート(/var/www/html)の書き込み権限が必要となります。
    WordPressを実行するApacheユーザーに一連の権限を設定します。
    sudo chown -R apache /var/www
    sudo chgrp -R apache /var/www
    sudo chmod 2775 /var/www
    find /var/www -type d -exec sudo chmod 2775 {} \;
    find /var/www -type f -exec sudo chmod 0664 {} \;

    4つめと5つめのfindコマンドによる処理は数十秒程度の処理時間が必要です。気長に待ちましょう。image title
  5. 変更した設定を有効にするためApacheを再起動する
    systemctlコマンドでApacheを再起動して変更した設定を有効にします。
    sudo systemctl restart httpd image title

WordPress用のDBを作成する

  1. DBに接続する
    mysqlコマンドでDBに接続します。
    DB接続方法がわからない場合はRDSでデータベースを構築するを参照して接続してください。image title
  2. WordPress用DBを作成する
    WordPressの設定ファイルのDB_NAMEに指定したDBを作成します。この手順の通りに作業していれば「wordpress-db」が設定されています。
    DBの作成にはCREATE DATABASEコマンドを使用します。
    CREATE DATABASE `wordpress-db`; DBが作成されたことの確認はshow databaseseコマンドで行います。show databases; image title
  3. DB接続を終わります
    exitコマンドでDB接続を終わります。

ブラウザでWordPressを表示する

  1. ブラウザでWordPress画面を表示する
    ブラウザでEC2にインストールしたWordPress画面を表示します。以下のスクショのように言語選択画面が表示されればインストールは正常に終了しています。
    表示方法がわからない場合はEC2にApacheをインストールしてブラウザで表示するを参照して表示してください。image title