CentOS7にLAMP開発環境を構築したときのメモ

本番運用は考慮せず、とりあえず動くレベルでLAMPの開発環境を構築したときのメモ

# 構成

||ソフト名|バージョン|パッケージ名|
|:--|:--|:-:|:--|
|L|CentOS|7.4||
|A|Apache|2.4.6|httpd|
|M|MySQL|5.7.21|mysql-community-server|
|P|PHP|5.4.16|php|

# 構築手順

## CentOS

- インストール時の留意点
    - ベース環境で「GNOME Desktop」を選択、アドオンは選択しない
    - ネットワークを有効化して、固定IPを設定する
- インストール後の設定
    - 日本語入力を有効化する
    - ファイアウォールの設定画面でhttpとhttpsを有効化する

## Apache

インストール

```
# yum install httpd
```

未起動を確認、起動、起動完了を確認

```
# systemctl status httpd

# systemctl start httpd

# systemctl status httpd
```


自動起動の無効を確認、有効化、有効化完了を確認

```
# systemctl is-enabled httpd

# systemctl enable httpd

# systemctl is-enabled httpd
```

ブラウザで```http://(固定IP)```にアクセスするとApacheのページが表示される

## MySQL

MySQL互換のmariaDBは競合を防ぐために削除
インストールされているソフトを確認、アンインストール

```
# yum list mariadb

# yum list mariadb-libs

# yum remove mariadb-libs.x86_64
```

MySQLのリポジトリを追加、インストール、バージョン確認

```
# yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

# yum install mysql-community-server

# mysqld --version
```

Apacheと同様に起動、自動起動を設定

```
# systemctl status mysqld

# systemctl start mysqld

# systemctl status mysqld

# systemctl is-enabled mysqld

# systemctl enable mysqld

# systemctl is-enabled mysqld
```

## PHP

インストール

```
# yum install php

# yum install php-mysql
```

# 動作確認

## MySQLのパスワードを再設定

ログに出力されている初期パスワードを確認

```
# cat /var/log/mysqld.log | grep password
```

初期パスワードで接続、パスワードを再設定、接続確認

```
# mysql -u root -p

mysql> set password = '(パスワード)';

mysql> exit

# mysql -u root -p
```

パスワードのチェックを無効化する
my.cnfの末尾に``validate-password=OFF``を追記

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

```my.cnf
[mysqld]
validate-password=OFF
```

## MySQLのデータベース環境を用意

データベースを確認、作成、接続

```
mysql> show databases;

mysql> create database test;

mysql> use test
```

[参考サイト](https://qiita.com/utano320/items/3c25ae3f0f9ec5a867c4)と同様にテーブルおよびデータを作成

> ```
> mysql> create table sample (id integer, name varchar(30));
> 
> mysql> show tables;
> 
> mysql> insert into sample values(1, 'kagawa');
> mysql> insert into sample values(2, 'honda');
>
> mysql> select * from sample;
> ```

## PHPのスクリプトを作成

[参考サイト](https://qiita.com/utano320/items/3c25ae3f0f9ec5a867c4)と同様にスクリプトを作成
mysqlに接続するパスワードは上で設定したものを指定する

> ```
> # cd /var/www/html/
> # vi index.php
> ```
> 
> ```php:index.php
> <?php
>     $con = mysql_connect('localhost', 'root', '') or die('error(connect)');
> 
>     mysql_select_db('test', $con) or die('error(select_db)');
> 
>     $sql = 'select * from sample';
>     $result = mysql_query($sql, $con);
> 
>     while ($row = mysql_fetch_array($result)) {
>         echo $row['id'] . ' : ' . $row['name'] . '<br />';
>     }
> 
>     mysql_close($con);
> ?>
> ```

## Apacheを再起動

PHPをインストールした後のタイミングで再起動しても良いと思う

```
# systemctl restart httpd
```

## 表示結果を確認

ブラウザで```http://(固定IP)```にアクセスするとMySQLのテーブルに登録した内容が表示される

```
1 : kagawa
2 : honda
```

以上で構築は終了

# 参考
http://www.lbblue.com/entry/2017/02/06/235805
https://qiita.com/utano320/items/3c25ae3f0f9ec5a867c4
https://oss.sios.com/yorozu-blog/rhel6-rhel7change
https://weblabo.oscasierra.net/installing-mysql57-centos7-yum/
https://qiita.com/okuzawats/items/d3cd9f8aca7262715629
https://qiita.com/panappe/items/a4fdf8c8646802fceac0