centOS8にApache httpd をインストールして Web サーバーを構築

インストールディスクからCentOS8インストール
https://qiita.com/kerry/items/31964382c87ae65ab046
後、継続してApache httpd をインストールして Web サーバーを構築

## 1. TUIを使ってCentOS8 ネットワーク設定、及び IPv6 無効化
### IPアドレス、ゲートウェイ、DNSを固定にする
#### シェルからnmtuiを起動
$ nmtui 　コマンドで以下のようなTUI画面が表示される
![スクリーンショット 2019-12-20 18.24.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274686/467af765-c8e3-938c-01e6-3c25f06c50d4.png)


#### [ Edit a connection ] を選択し [ Enter ] を入力
![スクリーンショット 2019-12-20 18.24.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274686/ff1f9434-2984-7e9f-5df2-3e325bad5b2d.png)


#### 編集（変更）したい Device を選択し、 [ Enter ] を入力
![スクリーンショット 2019-12-20 18.25.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274686/0624b0fd-7de9-4bbe-4788-9d0e8ca5436b.png)

#### IPv4 CONFIGURATION で [ Manual ] を選択します
IPv4 CONFIGURATION の横に選択できる項目があり、これを（以下の画面では、Automatic となっている箇所） を選択し、
[ Enter ] を入力すると選択できるようになる。
![スクリーンショット 2019-12-20 18.25.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274686/65f0f773-f33b-f331-3fd2-d4455bfe0869.png)

これを（上の画面では、Automatic となっている箇所） を選択し、 [ Enter ] を入力すると以下のように選択できるようになる。 
ここで、[ Manual ] を選択し、 [ Enter ] を入力

![スクリーンショット 2019-12-20 18.25.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274686/b7fd7cfd-b824-4bc9-a3d7-27bdd61514a2.png)

#### IPアドレスなどのネットワーク情報を編集
IPアドレスなどの詳細情報編集画面が表示されていない場合は、以下の [ Show ] を選択し、 [ Enter ] を入力すると詳細な入力情報が表示される。
![スクリーンショット 2019-12-20 18.26.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274686/4d5896d7-f231-3f62-a7a3-f5cbfb46a9b6.png)

IPアドレスなどの詳細情報編集画面にて各項目の編集をおこなう。
![スクリーンショット 2019-12-20 18.26.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274686/ce09e063-1c10-e48a-59ee-7447b2d1405f.png)

●IPアドレスの編集（変更）
詳細情報編集画面の [ Addresses ] 情報が ホストのIPアドレスになるので、ここに IPアドレス/マスクビット数 を入力。

●ゲートウェイの編集（変更）
詳細情報編集画面の [ Gateway ] 情報が ゲートウェイのIPアドレスになるので、ここにゲートウェイのIPアドレス を入力。

●DNSの編集（変更）
詳細情報編集画面の [ DNS Servers ] 情報が DNSサーバーのIPアドレスになるので、ここにDNSサーバーのIPアドレス を入力。
複数指定したい場合は、下の [ Add ] を選択し、[ Enter ] を入力することで、DNSサーバーの入力欄を増やすことができる。

逆に、指定したDNSサーバーを削除したい場合は、横 [ Remove ] を選択し、[ Enter ] を入力することで、DNSサーバーの入力欄を削除することができる。

編集を終えたら、画面下の [ Ok ] を選択し、[ Enter ] を入力。
その後、先の Device 選択の画面へ戻りるので、そこで、 [ Quit ] を選択し、[ Enter ] を入力し、終了する。

#### シェルから ネットワークの再起動を実施
編集を終えたら、ネットワークの再起動 ( NetworkManager restart [ or reload ] ) で変更したIPアドレスの情報を反映
$ systemctl restart NetworkManager

#### 正しく変更されたか確認
●IPアドレスの確認
```
$ ip addr
```
●ゲートウェイの確認
```
$ ip route
```
●DNSを確認
```
$ nslookup
```
#### 変更するデバイスを確認
```
$ nmcli d
```

## 2. Apache httpd をインストールして Web サーバーを構築
### Apacheインストール
下記のコマンドでインストール
```
$ dnf -y install httpd
```
Apache httpd をインストール後の設定

①ウェルカムページはリネーム または削除
```
$ mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.org
```
②httpd.confファイルの編集
![スクリーンショット 2019-12-20 18.28.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274686/1b89bf76-ad9b-b3f2-c776-f370a45f687a.png)


③HTML テストページを作成して動作確認
vi /var/www/html/index.html
```
<html>
<body><div>Test Page</div></body>
</html>
```

### PHP 7.3をインストール
下記のコマンドでcentOS8に入っているphpバージョンを調べる
```
$ dnf search php
```
php73が入ってるので、下記のコマンドでphp73をインストールする。
```
$ dnf install -y php73
```
下記のコマンドでphp73がインストールされたかを確認
```
$ php -v
```
下記のエラーが出て
```
-bash: php: command not found
```
下記をインストールしたらエラーがなくなる
```
$ dnf install php73-php-cli
```
```
$ scl enable php72 bash
```

下記のコマンドでインストール可能なパッケージの情報を確認（例：php73-mbstring）
```
$ dnf info php php73-php-mbstring
```
下記のコマンドで必要パッケージをインストール（例：php73-mbstring）
```
$ dnf  install php73-php-mbstring
```
上記以外に下記のパッケージもインストール
```
$ dnf  install php73-php-devel php73-php-common php73-php-mysql php73-php-fpm php73-php-pdo php73-php-gd php73-php-xml php73-php-mcrypt php73-php-mysqlnd
```

### php.iniファイル作成
下記のコマンドでphp.iniファイル作成
```
$ touch /etc/php-7.3.ini
```

/etc/php-7.3.iniの中身は下記の通り。
```
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"

[XDebug]
zend_extension="/usr/lib64/php/7.3/modules/xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_host = localhost
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
xdebug.remote_log=/tmp/xdebug.log
```
### composerのインストール
```
$ curl -sS https://getcomposer.org/installer | php -- --install-dir=/tmp
```
```
$ mv /tmp/composer.phar /usr/local/bin/composer
```

### MySQL8.0をインストール
以下のコマンドで、最新版のバージョンが確認
``
$ dnf info mysql
``
最新版のバージョン（mysql:8.0.17）が確認できる

mysql8.0 インストール
``
$ dnf install @mysql:8.0
``

PHP用のライブラリ群もインストール
``
$ dnf install php-mysqlnd
``

バージョンを確認
``
$ mysql --version
``
mysql  Ver 8.0.17 for Linux on x86_64 (Source distribution)

自動起動の設定
```
$ systemctl enable mysqld
```
```
$ systemctl start mysqld"	
```

MySQLの初期設定
``
mysql_secure_installation
``
MySQLの初期設定は、いくつかの質問に答えていくだけで完了
![スクリーンショット 2019-12-20 18.12.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274686/f1fe8e7f-5a7e-ad65-afab-0480071c1fd3.png)

文字コードの設定…ですが、MySQL8.0では、デフォルトでutf8mb4が指定されているようで、特に設定する必要無い。


MySQLにログイン後、MySQLユーザーの作成
``
$ mysql -u root -p
``
``
$ Enter password:（rootユーザーに設定したパスワード）
``
ローカル環境でしか使用しないサーバなので、全ての権限を持ったユーザーを作成
![スクリーンショット 2019-12-20 18.14.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274686/96dafa57-6a63-3fad-ed7e-2b4b9c36138b.png)


ユーザーで操作をするため、ログインしなおす。
![スクリーンショット 2019-12-20 18.15.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274686/25f49116-d019-aac6-a103-55f94d41e034.png)

### Selinux 無効化
vi /etc/selinux/config
SELINUX=disabled

sshの再起動 
systemctl restart sshd
httpdの再起動
systemctl restart httpd

## 参考サイト
https://server-setting.info/centos/network-config-c7.html
https://dev.mysql.com/doc/refman/5.6/ja/linux-installation-yum-repo.html
https://vertys.net/centos8-mysql8-install/