AWSにWordPress3.8をインストールしてみた – その1

2014.01.26

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

こんにちは やま です。

AWSの主要なサービスを実際につかってみるべく「WordPress」の環境を作ってみましたのでご紹介します。WordPressの構築といっても、公開されているAMIを使う方法やCloudformationのテンプレートを使う方法などなど、世に公開されている方法は何通りかあるようですが、今回はAWSのお勉強が目的なので EC2 と RDS を使った構成で手動でインストールをしています。

ステップとしては以下の通りです。

構成イメージ

今回はひとまずシンプルにインストールしたいと思いますので、可用性や冗長性などはあまり考えずに、WordPress用のインスタンスは1台の構成をとりました。RDSについては簡単にMultiAZの環境がとれますので、以下の通りマスター/スレーブの構成をとっています。とりあえず下記の構成で進めていますが、今後の投稿で ELB, S3, Route53 を使って徐々に拡張させていく予定です。

wp-test01

EC2, RDSの起動

それぞれ以下のような構成で起動しています。

EC2

  • AMI:Amazon Linux(ami-be1c848e)
  • Instance Type:t1.micro
  • EBS Size:8GB

RDS

  • Engine:mysql
  • Engine Version:5.6.13
  • DB Instance Class:db.t1.micro
  • DB Instance Identifier:wpinstance
  • Master User Name:awsuser
  • Master User Password:mypassword

具体的な手順については、過去に都元さんが投稿された"Amazon VPCを使ったミニマム構成のサーバ環境を構築する"が参考になるかと思います。ここでは割愛させていただきます。

Apache, php, php-mysql, mysql のインストール

WordPressのサイトのシステム要件に記載された、以下に注意してApache, php, php-mysql, mysql をインストールします。

To run WordPress your host just needs a couple of things:

  • PHP version 5.2.4 or greater
  • MySQL version 5.0 or greater

wordpress.org

EC2インスタンスにSSHでログインして、以下のコマンドを実行します。

$ sudo yum install httpd php php-mysql mysql

PHPとMySQLのバージョンは以下の通りで、yumでのインストールで特に問題なさそうです。

$ php -v
PHP 5.3.28 (cli) (built: Dec 17 2013 00:28:38)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
$ mysql -V
mysql  Ver 14.14 Distrib 5.5.34, for Linux (x86_64) using readline 5.1

また、Apacheについては自動起動の設定とサービス起動をしておきます。

$ sudo chkconfig httpd on
$ sudo service httpd start

WordPressのインストール

WordPressのパッケージをダウンロードして展開します。

$ cd /tmp
$ wget http://ja.wordpress.org/latest-ja.tar.gz
$ sudo tar -xvzf latest-ja.tar.gz -C /var/www/html

次に、Apache設定ファイルの以下の部分を編集します。ServerAdminの部分には管理者のアドレスをご入力ください。

$ sudo vi  /etc/httpd/conf/httpd.conf

<VirtualHost *:80>
    ServerAdmin <email>
    DocumentRoot /var/www/html/wordpress
    ServerName wordpress
    ErrorLog /var/log/httpd/wordpress-error-log
    CustomLog /var/log/httpd/wordpress-acces-log common
</VirtualHost>

編集が終わりましたらApacheのサービスを再起動します。

sudo service httpd restart

ここまでが終わりましたら、今度はブラウザからインスタンスにアクセスします。

アクセスすると以下のような画面が表示されますので「設定ファイルを作成する」ボタンを左クリックします。

wp-test02

データベースの設定をおこないますので「さあ、始めましょう!」ボタンを左クリックします。

wp-test03

RDSの設定内容を入れ込んでいきます。 データベースのホスト名についてはEndpointを入力し、テーブルの接頭辞はデフォルトで進めます。

wp-test04

書き込み権限の問題で以下が表示されます。表示に従い/var/www/html/wordpress/wp-config.phpにコピーした後「インストール実行」ボタンを左クリックします。

wp-test05

必要情報を入力して「WordPress をインストール」ボタンを左クリックします。

wp-test06

数分で以下の画面が表示されます。がっかりしてません!大丈夫です!

wp-test07

記事の投稿

最後に記事の投稿をテストしてみます。 写真付きで記事を投稿しようとしたところ、「メディアの追加」でエラーが出てしまいました。

wp-test08

フォルダの書き込み権限の問題のようです。/var/www/html/wordpressの権限を変更することで解決しました。

$ cd /var/www/html/wordpress
$ ls -l | grep wp-content
drwxr-xr-x  5 nobody 65534  4096 Dec 14 09:24 wp-content
$ sudo chmod 0777 wp-content

権限を変更した後、記事を投稿したところ問題なく反映されました。

wp-test09

まとめ

ということで、EC2, RDS を使ってWordPress 3.8 をインストールしてみました。とてもシンプルな内容になっていますが、これからAWSやWordPressを使ってみようと検討されている方にとって参考になればと思っております。次回は、今回作った環境をRoute53を使って独自ドメインで公開したり、S3やELBを使って負荷分散する方法を試してみる予定です。よろしくお願いします!