EC2をはじめよう2 (CentOS-LAMP)

#参照/書籍
http://qiita.com/nakau1/items/a24571b374ad266c3f5e
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/install-LAMP.html
・Amazon Web Services基礎からのネットワーク&サーバー構築
・AWSのEC2に基本的なLAMP環境を作ってみる(2)

#インスタンスを立ち上げる

```
$ mv Desktop/hoge.pem .
$ chmod 600 hoge.pem
```

※「chmod 600 ファイル名」
・所有者は読み書き可能
・所有者以外はファイルに対する操作は一切不可．

###Elastic IP
・関連付ける

###ssh接続

```
$ ssh -i hoge.pem ec2-user@IPアドレス
```

---

#インストールする

```
$ sudo yum update -y

$ sudo yum install -y httpd24 php56 mysql55-server php56-mysqlnd

$ sudo service httpd start

$ sudo chkconfig httpd on
```

※httpd は実行レベル 2、3、4、および 5 で on となる。

#バージョン確認

```
$ httpd -v
$ php -v
$ mysql --version
```

#ec2-userがこのディレクトリで複数のファイルを操作できるようにする

「Amazon Linux Apache」のドキュメントルートは、/var/www/html
デフォルトは、rootによって所有される

ディレクトリの所有権と許可を変更する必要がある。

- www グループをインスタンスに追加し、そのグループに /var/www ディレクトリの所有権を与え、グループの書き込み許可を追加する。

- そのグループの任意のメンバーは、ウェブサーバーに対してファイルの追加、削除、および変更ができるようになります。


###wwwグループをインスタンスに追加する

```
$ sudo groupadd www
```

###ユーザー(ec2-user)をwwwグループに追加する

```
$ sudo usermod -a -G www ec2-user
```

###一度ログアウトする

```
$ exit
```

###wwwグループのメンバーを確認する

```
$ groups
```

ec2-user wheel www


###/var/wwwとそのコンテンツの所有者をrootにし、所有権をWWWグループに変更する

```
$ sudo chown -R root:www /var/www
```

###/var/www およびそのサブディレクトリの「ディレクトリ」許可を変更してグループの書き込み許可を設定し、将来のサブディレクトリにグループIDを設定する

```
$ sudo chmod 2775 /var/www

$ find /var/www -type d -exec sudo chmod 2775 {} +
```

###/var/www およびそのサブディレクトリの「ファイル」許可を繰り返し変更してグループの書き込み許可を追加します。

```
$ find /var/www -type f -exec sudo chmod 0664 {} +
```

以上で、ec2-user(およびwwwグループの将来のメンバーはApacheドキュメントルートでファイルを追加、削除、編集できるようになる。)

```
chown -R
ディレクトリとその中身の所有者を再帰的に変更する
所有者をrootにし、グループをwwwに変更する

chmod 775
ディレクトリとその中身のアクセス権限を再帰的に変更する
共有作業用ディレクトリ内で作ったファイルやディレクトリに自動的に共有グループにする

find オプション
-type d ディレクトリ 
-type f ファイル
-exec   条件に合致したものに対して、以降のコマンドを実行する。
```

---
#CentOSの設定1 (日本語設定とタイムゾーン)
##日本語設定に変更

```

$ sudo vim /etc/sysconfig/i18n
LANG=en_US.UTF-8 → LANG=ja_JP.UTF-8

```

#CentOSの設定2 (タイムゾーンを変更する)

```
$ sudo cp -p /usr/share/zoneinfo/Japan /etc/localtime
```

#Gitのインストール

```
$ sudo yum install -y git
```


#Apacheの起動/自動起動

```
$ sudo service httpd start
$ sudo chkconfig httpd on
```

#Webサーバーの再起動

```
$ sudo /sbin/service httpd restart
```

※Apacheの設定ファイルを変更した場合は、再起動する。

#httpd.confを変更する。

http://centossrv.com/apache.shtml

/etc/httpd/conf/httpd.conf   (※全体の設定)
/etc/httpd/conf.d  　(※追加設定)
(モジュールや仮想ホストに関する設定を新たに設定ファイルを追加する)
※管理者権限でしか編集できない。

---

#php.iniを変更する。

```
$ sudo vim /etc/php.ini
```

・タイムゾーンの設定
検索
esc＋/date.timezoneと入力
date.timezone = 'Asia/Tokyo'

expose_php = Off  PHPのバージョンを隠す

#MYSQL

```
$ sudo service mysqld start
```

```
$ sudo mysql_secure_installation
```

- a.パスワードを設定していないので、ブランクでリターンを押す
- 　Yを押す。パスワードを2回入力する
- b.匿名ユーザーアカウントを削除する「Y」
- c.rootログインを無効にする「Y」
- d.テストデータベースを削除する「Y」
- e.権限テーブルを再ロードし変更を保存する「Y」

###ブート時に必ずMYSQLサーバーを起動させる

```
$ sudo chkconfig mysqld on
```

- exitでログアウト
- 変更後のパスワードでrootログイン出来る事を確認

###MySQL設定ファイルコピー

#文字コード設定

http://blog.genies.jp/2011/08/amazon-ec2-amazon-linux-mysql.html

```
$ sudo cp /usr/share/doc/mysql55-server-5.5.42/my-small.cnf /etc/my.cnf
```

```
$ sudo vim /etc/my.cnf

```

#現在のシステム(CentOS)の文字コードを調べる

```
$ sudo echo $LANG
```

```
出力:
ja_JP.UTF-8
```

```
[mysqld]
#mysqldセクションの末尾に追加
character-set-server=utf8
 
[mysql]
default-character-set=utf8

[client]
#clientセクションを追加
default-character-set=utf8
```

MYSQL再起動

```
$ sudo /etc/init.d/mysqld restart
```

#phpの確認

```
$ echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
```

アクセス
http://(ipアドレス)/phpinfo.php


#phpmyadminのインストール

2箇所
Require ip 127.0.0.1記載部分を
Require all grantedに変える

```
<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require all granted
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require all granted
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>
```

アクセス
http://(ipアドレス)/phpMyAdmin

MYSQLのroot パスワードでログインする


#AMIを作成

http://qiita.com/hiroshik1985/items/ab6b6e085fa941ea0456