個人的プログラムの備忘録

プログラム初心者の自分の為に書く備忘録なのでこのサイトに載っているコードで不具合が起きても責任は取れませんので自己責任でお願いします。

AWSのEC2+RDSを使ってWordPressを構築する手順

      2015/12/23

なんだかAWSがいいとのことで使ってみよう!そうしよう!
ってことで知識ゼロの状態からスタートし、Wordpressの構築までやってみようと思う。
それに仕事の関係でAWSを使ってWordpressを構築しようと思っていたのでとりあえずググッてみたら情報がたくさん出てきた。
なにやら網元AMIなるものが使えるらしいが今回は手動で構築していこうと思う。
AWSのEC2とRSDの構築はドットインストール Amazon Web Servicesの基礎を見て作成した。
このサイトはほんと勉強になるのでAWS以外でも参考にしてね!
で、とりあえずEC2とRDSのインスタンスを立ち上げまでは完了。

EC2の設定をする
まず秘密鍵を用意する。(key pairとよばれるもの)
秘密鍵を持ってないと、EC2にログイン出来ないみたい。
お前鍵持ってねーよと言われるから事前に準備しておく。
まあ、普通はインスタンス立ち上げた時に作るから持ってるはずなんだけど、別の人がインスタンス立ち上げたとかの理由で持ってないログイン出来ないからきをつけて。

で、その秘密鍵のパーミッションを変更する

chmod 600 xxxxx.pem

xは自分で作ったkey pairの名前

SSHでログインする

 ssh -i xxxxx.pem ec2-user@ec2-XXXXXXXXXXXXXXXXXX

xのところは自分の環境に合わせて適宜変更で

ログインするとアップデートしろといわれるから

 sudo yum update

でアップデートする

Apacheをインストール

 sudo yum install httpd

Apacheを起動する

 sudo service httpd start

で、ついにWordpressをインストール!!

 wget http://ja.wordpress.org/latest-ja.tar.gz

でワードプレスの最新版がダウンロードできるからダウンロード

その後はファイル展開

 tar -xvzf latest-ja.tar.gz -C /var/www/html/

で、展開できるかと思ったら何故かできないorz
何でかなと思ったらRDSの管理画面に赤文字で「No Inbound Permissions」とでてた。
20140428-15
これは理由があるらしい。
EC2のセキュリティ設定をしたときに、許可したのはSSHとHTTPのみ。
同じサーバー内でデータベースを動かすときには問題がないが、
データベースが別サーバーの時にはMySQLが使うポートを許可しないと通信できない。
だから、セキュリティの設定でMySQLが通信できるように追加してあげないといけないみたい。
「Security Groups」の右にある「launch-wizard-1」という項目がリンクになってるから、ここをクリック。
画面が変わったら画面中央部に4つのタブがあるので、この中の「Inbound」のタブをクリック。
20140428-17
現在設定されているセキュリティ修正するから、「Edit」ボタンを押す。
そこで新しいルールを追加するために「Add Rule」ボタンをクリック。
HTTPと書かれた下に1行追加されるからそれを、Typeに「MySQL」、Sourceに「Anywhere」を選び、「Save」ボタンを押すと新たにMySQLの通信を許可したセキュリティ設定を更新する。
20140428-21
これでRDS管理画面に戻ると表示されていた「No Inbound Permissions」の表示が消えているはず。
これでやっと先ほどのコマンドで展開できた。
その後

sudo chown -R apache /var/www/html/wordpress/

これでオーナーをapacheに変更。
こうすることでテーマやプラグインがインストールできるようになる。

これでブラウザでhttp://ec2-XXXXXXXXXXXXXXXXXX.ap-northeast-1.compute.amazonaws.com/wordpressにアクセスすると

「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」

・・・

え??
なんじゃこりゃorz
調べてみるとmysqlのPHPモジュールが動いていない模様…
なので

 yum install php php-devel php-mysql php-mbstring php-gd

でインストール。
ついでに必要な物も一緒にインストールしておく。

で、必要な設定もする。

 sudo vi /etc/php.ini

を入力後

 error_log = /var/log/php_errors.log
 mbstring.language = Japanese
 mbstring.internal_encoding = UTF-8
 mbstring.http_input = auto
 mbstring.detect_order = auto
 expose_php = Off
 date.timezone = Asia/Tokyo

にする。
文字列の最初に「;」がついている物はそれを消す。
これで設定完了。

インストール後にApacheを再起動。

 sudo service httpd restart

その後無事に
wordpressimage
ここまできたらデータベースの情報を入力するんだけどホスト名がlocalhostではないので作成したRDSインスタンスの情報を確認しておく。
データベース名:DB Name
ユーザー名:Master Username
パスワード:入力したパスワード
データベースのホスト名:Endpoint
を入力する。
wordpressimage2
この後は通常通り入力してインストール完了!!

思ったより簡単にAWSが導入できた。
今回はFTPソフトを使わずにコマンドのみでインストールしたが、FTPソフトを使ってもインストールできるからコマンドに慣れない人はFTPソフト使った方がいいかも。
その際はAWS側でもFTPが使えるようにしなければだめだけど。

 - AWS, Wordpress

Sitio web optimizado por: Diseño Web
Plugin Modo Mantenimiento patrocinado por: Wordpress modo mantenimiento