AWS EC2 + Amazon Linux で LAMP 環境 作ってみたメモ

## はじめに
私の現状「Linuxって名前だけは知ってるけどあまりに触ったことはない」

この状態でとりあえずAWSのEC2を使ってLinuxを触ってみようという試み

ここにLAMP環境をおったてるぜ…

なお、ほぼコピペです。

### 参考にさせていただいた記事のみなさん
ありがとうございました…！

#### AWSの初期設定
- [AWSアカウントを取得したら速攻でやっておくべき初期設定まとめ](https://qiita.com/tmknom/items/303db2d1d928db720888)
- [AWSアカウントを作ったら最初にやるべきこと ～令和元年版～](https://dev.classmethod.jp/cloud/aws/aws-1st-step-new-era-reiwa/)

#### EC2インスタンス初期設定
- [AWS EC2 Amazon Linuxインスタンス起動後、最初にやることまとめ](https://qiita.com/yangci/items/ef2ab9b6f0d28bad0881)
- [AWSのEC2で行うAmazon Linuxの初期設定](https://qiita.com/2no553/items/e166c00790c3397acf2d)

#### PHPのインストール
- [PHP7へのバージョンアップ備忘録](https://www.chihayafuru.jp/tech/index.php/archives/3009)

#### phpmyadmin のインストール
- [EC2でEBSボリュームの追加・LAMP環境を作成する](https://qiita.com/yuichi1992_west/items/e933b232a6aac25575ac)

### 副産物
環境構築

#### AWS EC2 インスタンス作成 ～ VSCode での接続のメモ
- [AWS EC2 に Linux 立てて VSCode で 接続できるまでの覚書](https://qiita.com/thfree0119/items/86cf4d8d6ee01477e295)

#### Amzon Linux の初期設定のメモ
- [AWS の EC2 に Amazon Linux を立ち上げて最初にやったことメモ](https://qiita.com/thfree0119/items/f3922c581590ec0281be)


## Apacheの導入
```
# インストール
$ sudo yum -y install httpd

# サービスの起動
$ sudo service httpd start

# 自動起動設定
$ sudo chkconfig httpd on
```

自分のIPアドレスをブラウザに打ってみてテストページが表示されればOK

## MySQLの導入(ここではmysql 5.5 を入れている)

ここで気づいた。
どうせ全部管理者権限なら管理者権限モードにしておけばよいのでは…？

```
# 管理者権限にしておく
$ sudo su
```

### 早速インストール

```
# yum install -y mysql-server
```

### サービスの起動 ～ 設定

サービスを起動

```
# service mysqld start
```

初期設定コマンド
初期のパスワードは無し、自分のパスワードを設定して、あとは全部y(YES)

```
mysql_secure_installation
```

MySqlの設定ファイルを修正

```
vi /etc/my.cnf
```

こんな感じに修正して保存

```
[mysqld]
~
~
~
# 文字コード[UTF-8]を追加
character-set-server = utf8  

[mysqld_safe]
```

サービスの再起動

```
service mysqld restart
```

### 余談
mysql 8.0 を最初に入れたけどパスワードポリシーとか、初期設定とかいろいろ面倒くさくてやめました。

mysql 8.0 の場合は初期パスワードが設定されているので
「cat /var/log/mysqld.log | grep password」
みたいなコマンドでパスワードを確認してから初期設定コマンドを実行するとよいです。

## PHPの導入
```
# 管理者権限にしておく(すでに管理者権限で操作中の場合は省略)
$ sudo su
```

### 最初から入っているPHP関連のものをすべて消す

```
# yum -y remove php-*
# yum -y remove httpd-tools
# yum clean all
```

### インストール
```
# yum install php73 php73-mbstring php73-pdo php73-devel php73-mysqlnd.x86_64
# yum install mod24_ssl.x86_64
```

### 設定ファイルのバックアップ

yyyyMMdd=日付

```
# cp /etc/php.ini /etc/php.ini.yyyyMMdd 
```

### 設定ファイルを編集(初期設定)
```
# vi /etc/php.ini
```

vi editar を起動したら次のコマンドを入力すると行番号が表示される

```
:set number
```

行番号を表示したら設定をいじる
行番号：内容

※行番号は環境によって違うかもしれないので大体その周辺で探す。
※「;」でコメントアウトになっていたら「;」を外す

#### エラー表示の設定

```
460:error_reporting = E_ALL | E_STRICT
477:display_errors = On
498:log_errors = On
587:error_log = /var/log/php.log
```

#### 文字コード関連の設定

```
 692:default_charset = "UTF-8"
1510:mbstring.language = Japanese
1517:mbstring.internal_encoding = UTF-8
1525:mbstring.http_input = pass
1525:mbstring.http_output = pass
1543:mbstring.encoding_translation = Off
1548:mbstring.detect_order = auto
```

### phpMyAdminのインストール

最新はここで確認：[https://www.phpmyadmin.net/downloads/](https://www.phpmyadmin.net/downloads/)

```
# 管理者権限にしておく
$ sudo su
```

移動しておく

```
# cd /var/www/html
```

最新バージョンをダウンロード
※ 4.9.4 ← この数字を変えればいけるはず

```
# wget https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-all-languages.zip
```

解凍する

```
# unzip phpMyAdmin-4.9.4-all-languages.zip
```

リネームする

```
# mv phpMyAdmin-4.9.4-all-languages phpmyadmin
```

httpdの再起動
```
sudo service httpd restart
```

接続できるか確認する
http://xx.xx.xx.xx/phpmyadmin/index.php

※ xx.xx.xx.xx … グローバルIPアドレス

ユーザー：root
パスワード：自分で設定したパスワードを入力してログインできればOK

これで
L ... Linux
A ... Apache
M ... MySQL
P ... PHP

環境ができあがり！