AWS へ wordpress インストール その2

AWS へ wordpress インストール その2

AWS へ wordpress インストール その1


PHP関連の設定をしたので設定反映のため
apache を再起動します

一度ログアウトしている場合

sudo su -

で root 権限になります

次に

service httpd restart

でapache の再起動をします

次に mysql 関連の設定をします

vim /etc/my.cnf

で設定ファイルを開き、日本語化対応をします

10行めに

character_set_server=utf8

を追記します
これで文字コードが utf8 になります

そして、ファイル最終行に

[mysql]
default-character-set=utf8
 
[mysqldump]
default-character-set=utf8

を追記して文字コードをutf8 に指定します

ここまでできたら保存します

設定ができたら mysql の起動と
次回以降の自動起動設定を行います

chkconfig mysqld on
service mysqld start

次に mysql のセキュリティ関連の設定をします

mysql_secure_installation

を実行します

すると

Enter current password for root (enter for none): 

となるので、Enter を押します
mysql root のパスワードを設定します

Set root password? [Y/n]

でパスワードを設定しますか?と聞かれるので
y を入力し
mysql root のパスワードを設定します

次に

Remove anonymous users? [Y/n] 

で匿名ユーザを消しますか?と聞かれるので
y を入力し、削除します

Disallow root login remotely? [Y/n]

で root のリモートログインを禁止しますかと聞かれるので
y を入力し、リモートログインを禁止します

Remove test database and access to it? [Y/n]

でtest データベースを削除しますか?
と聞かれるので y を入力し
test データベースを削除します

Reload privilege tables now? [Y/n] 

で設定を有効化しますか?と聞かれるので
yを押して反映します

これで

 mysql -u root -p

を実行し、
設定した mysql root パスワードでログインできれば成功です

ログイン成功すると

mysql> 

というように変化します

次に wordress のためのデータベースを作成します

 create database wordpress default character set utf8 collate utf8_general_ci;

で作成します

create database でデータベースを作成します

character set utf8
で文字コードを utf8 にしています

collate utf8_general_ci
は紹介順序の設定になります

utf8_unicode_ci

utf8_general_ci
がありますが、デフォルト設定だと
utf8_general_ci
になります

この違いについては
utf8_general_ciとutf8_unicode_ciの使い分け

を参考にさせていただきました

utf8_general_ciとutf8_unicode_ci

を参考にさせていただきましたが
全てを区別したい場合は
utf8_bin
を使うようです

次に管理者ユーザを作成し権限を付与します

grant all on wordpress.* to wordpress@localhost identified by 'password';

grant は権限を与える命令です
grant all にするとすべての権限を付与します
主に管理者に与える権限です

権限の付与関連に関しては
MySQL の権限のコマンドまとめ。

を参考にさせていただきました

設定ができたら

 flush privileges;

で設定を反映します

ここまでできたら
ctrl +d で mysql を抜けます

次回 wordpress のインストールを行います

AWS へ wordpress インストール その1

AWS へ wordpress インストール その1

まず最初にシステムをアップデートしますが
毎回 sudo をうつのは面倒なので
root 権限になります

sudo su -

次に yum update で更新します

yum -y update

これで更新できました

次にサーバーの時刻を合わせます
最初だと別の地域です
date コマンドを実行すると違いがわかります

date

私の環境の場合、夜9時半ごろでも
Mon Oct 5 12:43:23 UTC 2015
と表示されました

修正には

cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime 

を実行します

これで
cp: overwrite ‘/etc/localtime’?
と聞かれるので
y
を入力すると設定が上書きされ、東京時間になります
再度 date コマンドを実行し反映されていれば成功です

私の環境では
Mon Oct 5 21:45:52 JST 2015
となりました

次に wordpress を入れるのに必要なものをインストールしていきます

すでに実験でapache は入っているので
その他必要なものを入れていきます

このapache インストールに関しては
AWS EC2 インスタンスへ apache インストール

の過去記事を参考に

 yum -y install php php-mysql php-mbstring php-gd

でPHP関連

 yum -y install mysql-server

で mysql のインストール

yum -y install mod_ssl

でSSL関連のインストール

次に apache の設定を変更します

 vim /etc/httpd/conf/httpd.conf

44行めの
ServerTokens OS

ServerTokens ProductOnly
としてサーバー情報を隠蔽します

537行めの
ServerSignature On

ServerSignature Off
としてサーバー情報を秘匿します

ここまでできたら保存します

次に php の設定ファイルを編集します

 vim /etc/php.ini 

436行めの
expose_php = On

expose_php = Off
にしてPHP情報が見れないようにします

次に
641行めの
;error_log = php_errors.log

error_log = /var/log/php_err.log
とすることで
/var/log/ の下になるようにします

次に789行めの
;default_charset = “iso-8859-1”

default_charset = UTF-8
にすることで文字コードを utf8 に設定

956行めの
;date.timezone =

date.timezone = Asia/Tokyo
とすることで東京時間に設定

1558行めの
;mbstring.internal_encoding = EUC-JP

mbstring.internal_encoding = UTF-8
にしてエンコードを utf-8 に設定

1567行めの
;mbstring.http_output = SJIS

mbstring.http_output = pass
にしてHTTPレスポンスは変換しないよう設定

ここまでできたら保存します

次回は mysql の設定を行います

今回の php.ini の変更の意味に関しては
mbstring.encoding_translationが原因で文字化け

を参考にさせていただきました

お名前.com へ Elastic IP を反映

お名前.com へ Elastic IP を反映

以前、お名前.com でドメインを取得しているので
http://www.onamae.com/
にアクセスし
ログインします

なお、お名前.comの場合
ユーザIDでログインなので
メールアドレスと間違えないように注意しましょう

ログインしたら、ドメイン設定をクリック

domain

下にスクロールすると
ネームサーバーの設定のところに
DNS関連情報の設定
があるのでクリック

domai2

取得しているドメインがでるので
次に進むをクリック

domain3

下にスクロールして
DNSレコード設定を利用する
の設定するをクリック

domain4

設定画面になるので
まずはwww をつけてアクセスできるように設定

ホスト名に www
TYPE は A のまま
VALUE のところに Elastic IP で取得した
グローバルIPを入れます
もし
192.168.10.1 なら
1つずつ入力します

IPの入力ができたら追加を押します

domain5

同様に今度は www なしでアクセスしたいので
ホスト名はなしで
同じように追加します

追加ができたら
確認画面に進む
をクリックします

domain6

これで設定する
をクリックすると設定ができます

domain7

次に
ネームサーバーの変更をクリック

domain8

変更を適用したいドメインにチェックを入れ

下にスクロールして
転送Plus・DNS設定 設定する
をクリック

domain9

確認画面になるので
問題がなければ
設定するをクリックすれば設定完了となります

domain10

設定したドメインが反映されるまでは時間がかかるためしばらく待ちます

AWS Elastic IP 設定

AWS Elastic IP 設定

インスタンスを起動するたびに
グローバルIPアドレスが変わると面倒なので
Elastic IPを設定します

Elastci IP は固定グローバルIPアドレスです

まずは Elastic IP を取得します

EC2ダッシュボードから
Elastic IP をクリックし
新しいアドレスの割り当て
をクリックします

eip

すると、
EIPをどれに使用するかを聞かれますので
VPC を選択し
関連付ける
をクリックします

eip2

これで Elastic IP が取得できたので
閉じるをクリックします

eip3

次に、
取得した Elastic IP と
EC2 インスタンスを関連付けします

その前に
一度インスタンスのIDを調べておきます

eip5

取得した Elastic IP を右クリックし
アドレスの関連付けをクリックします

eip4

インスタンスの部分に
調べておいたインスタンスIDを入力し
関連付ける
をクリックします

eip7

これで関連付けがされ
インスタンスを確認すると
Elastic IP と
パブリックDNSが同じ値になっているのが確認できます

eip8

AWS EC2インスタンスのAMI作成

AWS EC2インスタンスのAMI作成

今回は EC2 インスタンスのAMIを作成

AMIに含まれるのは
OSなど、インスタンスを起動するのに必要な情報

注意点として
EBSに保存しているデータは
AMIには反映されないということ

なおAMI作成時に
EBS Snapshot が作成される

まずは実践でAMIの作成

今回 AWS_instance という名前の
EC2インスタンスから作成

まずインスタンスを選択

次に右クリックして
イメージ > イメージの作成
をクリック

ami

ポップアップが表示されるので
イメージ名に AWS_base_AMI
イメージの説明には base AMI
というように
任意のもので入力します
できたら
イメージの作成をクリックします

ami2

するとイメージ作成のポップアップがでるので
閉じるをクリックします

ami3

これで
EC2ダッシュボードで
AMIを調べると
新しくAMIが追加されているのがわかります

ami4

AWS EC2 インスタンスへ apache インストール

AWS EC2 インスタンスへ apache インストール

まず、最初にインスタンスを起動します

状態が running になったのを確認したら
パブリックDNSを確認し
SSHで接続します

ecss3

なおSSHでのログイン方法については
AWS EC2 インスタンスへのログイン

を参考にしてみてください

今回も Ubuntu の端末からログインします
起動は ctrl + alt + t で端末を起動できます

ssh -i pemファイル名 ec2-user@パブリック DNS

という書式でログインします

ログインできたら
まず apache をインストールします

sudo yum install httpd -y

でインストールできます

デフォルトユーザの ec2-user は
sudo 権限がついているので
sudo コマンドをつかうことで
インストールなどを行うことができます

sudo コマンドにかんしては
【 sudo 】指定したユーザーでコマンドを実行する

を参考にすると詳細が載っています

次に apache を起動します
起動と停止に関しては
service コマンドを使います

serviceコマンド

に詳細が掲載されていますので、より深く知りたい方はこちらを参考に

sudo service httpd start

で apache が起動します

毎回、このコマンドを実行するのは面倒なので
chkconfig で設定をすると次回から自動起動してくれます

chkconfig コマンドに関しては
chkconfigまとめ

を参考にすると
ランレベルについて書いてあるので
設定の理解が深まります

 sudo chkconfig httpd on

で実行できます

これでインストールはできたのですが
Security Group の設定を変更しないと
ファイアウォールではじかれるので
設定を変更します

過去記事の
AWS Security Group 作成

でも設定を行っています
このときには ssh の設定のみです

今回は、これに加えてHTTP通信ができるようにします

EC2ダッシュボードの中から
セキュリティグループをクリックし
現在、EC2 インスタンスに使っているものをクリックします

今回なら AWS_security
そして
インバウンドをクリックして、
編集をクリックします

http

すると
インバウンドルールの編集になるので
ルールの追加をクリックし
タイプにHTTP
送信元には 任意の場所
を指定します

http2

そして保存をクリックすれば
ルールが追加されます

http3

なお、送信元の
0.0.0.0/0
は、すべてのアクセスを許可するという意味です

設定ができたら
パブリックDNSへ
ブラウザでアクセスすると
apache のテストページが表示されます

http4

AWS EC2 インスタンスへのログイン

AWS EC2 インスタンスへのログイン

まず、EC2インスタンスを起動します
ずっと起動しておくとどんどん課金されるので
不要なときには停止しておきましょう

まず停止している状態だと
インスタンスの状態が stopped
となっているので
右クリック > インスタンスの状態 > 開始
で起動します

ecss

すると開始するか聞かれるので
開始するをクリックします

ecss2

すこし時間がかかりますが
状態が stopped から running
になるまで待ちます
無事に起動したら
パブリックDNSの値を確認します

ecss3

次に、端末から接続するために
pem ファイルの権限を 600 にします

aws_wordpress.pem
というファイル名で保存しているので
この権限を変更します

なお pem ファイル作成については
AWS 公開鍵、秘密鍵の作成

を参考にしてください

今回は Ubuntu 12.04 から操作します

ctrl + alt + t で端末を起動します

pemファイルをダウンロードしたディレクトリに移動し

 chmod 600 aws_wordpress.pem 

で権限を変更します

chmod コマンドについては
【 chmod 】 ファイルやディレクトリのアクセス権を変更する

を参考にするとわかりやすいです

次に ssh コマンドで
Amazon Linux AMI にアクセスしますが
Amazon Linux の場合
ユーザ名が ec2-user になります

なおsshコマンドの詳細については
【 ssh 】 SSHでリモート・マシンのコマンドを実行する

を参考に

ssh -i aws_wordpress.pem ec2-user@ec2-54-92-120-245.ap-northeast-1.compute.amazonaws.com

というように

ssh -i pemファイル名 ec2-user@パブリック DNS

という書式でログインします

なお、公開鍵認証でのログインとなっています

ログインに成功するとEC2のロゴのようなものが表示されます

ecss4

AWS EC2 起動

AWS EC2 起動

AWSコンソールからEC2 をクリックします

ec2

次にダッシュボードから
インスタンスをクリックし、
インスタンスの作成をクリックします

ec

すると、どのAmazon マシンイメージを使うか
となりますので
今回は
Amazon Linux AMI 2015.03.1 (HVM), SSD Volume Type
にしますので選択をクリックします

ec-2

なお、EC2 の料金に関しては
https://aws.amazon.com/jp/ec2/pricing/
を参考に金額を調べることができます

次にインスタンスタイプの設定をします
スペックにより料金が変わります

今回はt2. micro にします
チェックをいれたら
次の手順 インスタンスの詳細の設定
をクリックします

ec3

インスタンスの詳細の設定になりますが
とくに変更せず
次の手順:ストレージの追加
をクリックします

ec4

こちらも特に変更はしないので
次の手順:インスタンスのタグ付け
をクリックします

ec5

タグの設定では値の設定をします
今回は AWS_instance としました
これで
次の手順:セキュリティグループの設定
をクリックします

ec6

セキュリティグループは
すでに作成してあるものを使うので
既存のセキュリティグループを選択する
にチェックを入れ
使用したいセキュリティグループにチェックを入れ
確認と作成
をクリックします

ec7

これで確認画面になるので
問題がないのなら
作成をクリックします

ec8

するとキーペアについての設定になるので
既存のキーペアの選択
を選び
キーペアを選択します
今回は
以前作成した
aws_wordpress を使います

そして
選択したプライベートキーファイル(aws_wordpress.pem)へのアクセス権があり、このファイルなしではインスタンスにログインできないことを認識しています。
にチェックをいれれば
インスタンスが作成できます

ec9

これでインスタンスができたので
インスタンスの表示をクリックします

ec10

これでEC2 インスタンスが起動しているのがわかります

ec11

AWS Security Group 作成

AWS Security Group 作成

Secuity Group はAWSのファイアウォールのようなもの

Security Group は
While List 方式なので、iptable みたいな設定ではなく
許可するもののみ設定することになります

何も設定しないとすべて遮断します

接続元、宛先の指定方法は
IPアドレス、または
Security Group のもつIDになります

Security Group を作成するには
AWSマネジメントコンソールで EC2 をクリック

ec2

EC2 ダッシュボードの中のセキュリティグループをクリックし
セキュリティグループの作成をクリックします

sec

すると設定画面がでてくるので
セキュリティグループ名には任意の名前
今回は AWS_security
としました

説明には任意のコメントをいれます
aws_security
とします

ルールに関しては後で設定できるので
作成をクリックします

sec2

これでセキュリティグループが追加されたので
ルールを追加します

まず
追加したルールをクリックし
インバウンドタグをクリック、編集をクリックします

sec3

するとルール定義画面になるので
タイプには SSH

送信元には マイIP
を設定します

ポート範囲などは自動設定してくれるので
保存をクリックします

sec4

インバウンド項目の設定は
このセキュリティグループを適用したEC2インスタンスへの接続許可設定になります

これでSSH接続が可能になります
ちなみに、マイIPは
現在AWSコンソールに接続しているグローバルIPです

インバウンドはEC2 への接続ですが
アウトバウンドの場合だと外部への通信になります

これでセキュリティグループ設定ができたので
次回EC2の起動をします

AWS 公開鍵、秘密鍵の作成

AWS 公開鍵、秘密鍵の作成

EC2では公開鍵暗号方式でログインするので
ログインには
公開鍵、 秘密鍵
が必要になります
これがキーペアとよばれるものになります

まずAWSコンソールから
EC2 をクリック

ec2

EC2ダッシュボードの中から
キーペアをクリック

ec22

キーペアの作成をクリック

ec23

キーペア名を入力します
任意の名前でOKです
今回は aws_wordpress とします

ec24

作成をクリックすると
.pem 形式のファイルの保存画面になるので
保存します
このファイルがキーペアとなるファイルです

ec25