AWSにWordPress3.8をインストールしてみた – その1
こんにちは やま です。
AWSの主要なサービスを実際につかってみるべく「WordPress」の環境を作ってみましたのでご紹介します。WordPressの構築といっても、公開されているAMIを使う方法やCloudformationのテンプレートを使う方法などなど、世に公開されている方法は何通りかあるようですが、今回はAWSのお勉強が目的なので EC2 と RDS を使った構成で手動でインストールをしています。
ステップとしては以下の通りです。
構成イメージ
今回はひとまずシンプルにインストールしたいと思いますので、可用性や冗長性などはあまり考えずに、WordPress用のインスタンスは1台の構成をとりました。RDSについては簡単にMultiAZの環境がとれますので、以下の通りマスター/スレーブの構成をとっています。とりあえず下記の構成で進めていますが、今後の投稿で ELB, S3, Route53 を使って徐々に拡張させていく予定です。
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
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
ここまでが終わりましたら、今度はブラウザからインスタンスにアクセスします。
アクセスすると以下のような画面が表示されますので「設定ファイルを作成する」ボタンを左クリックします。
データベースの設定をおこないますので「さあ、始めましょう!」ボタンを左クリックします。
RDSの設定内容を入れ込んでいきます。 データベースのホスト名についてはEndpointを入力し、テーブルの接頭辞はデフォルトで進めます。
書き込み権限の問題で以下が表示されます。表示に従い/var/www/html/wordpress/wp-config.phpにコピーした後「インストール実行」ボタンを左クリックします。
必要情報を入力して「WordPress をインストール」ボタンを左クリックします。
数分で以下の画面が表示されます。がっかりしてません!大丈夫です!
記事の投稿
最後に記事の投稿をテストしてみます。 写真付きで記事を投稿しようとしたところ、「メディアの追加」でエラーが出てしまいました。
フォルダの書き込み権限の問題のようです。/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
権限を変更した後、記事を投稿したところ問題なく反映されました。
まとめ
ということで、EC2, RDS を使ってWordPress 3.8 をインストールしてみました。とてもシンプルな内容になっていますが、これからAWSやWordPressを使ってみようと検討されている方にとって参考になればと思っております。次回は、今回作った環境をRoute53を使って独自ドメインで公開したり、S3やELBを使って負荷分散する方法を試してみる予定です。よろしくお願いします!