CentOS 8にLAMP環境でWordPressを構築する

## はじめに
今回は前回書いた[CentOS 8 インストール手順 (最新版)](https://qiita.com/Glint_No95/items/253de637261e98f66410)

上記の記事に続いてCentOS8上にLAMP環境(Linux/Apache/MariaDB/PHP)でWordPressを構築したいと思います。

長くなってしまったら分けて投稿する形になりますが、出来るだけ分かりやすく説明していきたいと思います。

「前回インストールは出来たけど、結局Linuxで何するの？」,「巷でよく聞くWordPressをローカルで構築してみたい」というような初心者に向けて書いていこうと思います。

##今回のゴール

- WordPressをローカル上でLAMP環境で構築できるところまで

## 開発環境
- VirtualBox (前回インストールしたものを使用)
- CentOS8 (前回インストールしたものを使用)
- Apache version 2.4.37
- MariaDB version 10.3.17
- PHP version 7.2.24

## 構築手順

1. タイムゾーン確認

2. Apacheのインストール

3. PHPのインストール

4. WordPressのインストール

5. MariaDBのインストール

6. wp-config.phpの設定

以上の手順でやっていきたいと思います。

## 構築手順解説

####タイムゾーン確認

- CentOS 8をインストールした際にタイムゾーンを**Asia/Tokyo**に設定していたと思いますが、ここで設定してあるかを以下のコマンドで確認をします。

```:terminal

timedatectl

``` 
- もしタイムゾーンが**Asia/Tokyo**に設定されていなければ、以下のコマンドで変更し、確認します。

```:terminal

su - //自分がrootに設定しているパスワードでrootになります。

timedatectl set-timezone Asia/Tokyo //このコマンドでAsia/Tokyoに変更。

timedatectl //先程入力したコマンドで変更されているか確認してください。

``` 

#### Apacheのインストール
 
- 次はApacheのインストールをしていきます。

```:terminal

dnf -y install httpd
このコマンドでApacheをインストールします。

httpd -v
このコマンドでインストールしたApacheのバージョンを確認します。
version: Apache/2.4.37 というようなものが表示されたらインストールできています。

systemctl enable httpd
このコマンドでインストールしたApacheを自動起動させる設定をします。

systemctl start httpd
このコマンドでApacheを起動させます。

systemctl status httpd
このコマンドでApacheの起動の有無を確認します。
正常に起動していたらactive(running)になっているはずです。

```

- ここまで問題なくできているかを確認をします。

- FireFoxにアクセスし、URLにlocalhostと入力して以下のページが確認出来たら問題なくできています。

![Apache.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594117/a1f0e2fe-bab3-f538-f46d-60a73e13280b.png)

#### PHPのインストール

```:terminal

dnf -y install php php-mysqlnd php-pecl-json
このコマンドでPHPをインストールします。

systemctl restart httpd
このコマンドで先程インストール後起動したままのApacheを再起動して適用させます。

php -v
このコマンドでPHPのバージョンを確認してインストールしていることを確認する。

``` 

#### WordPressのインストール

```:terminal

dnf -y install wget
このコマンドをインストールすると、wget [オプション] URL　で指定したURLのファイルをダウンロードすることができます。

cd /var/www/html
このコマンドでwordpressのファイルを配置する階層まで移動します。

wget https://ja.wordpress.org/latest-ja.tar.gz
このコマンドでwordpressの最新版をサイトからダウンロードします。

tar xvf latest-ja.tar.gz
このコマンドで先程ダウンロードしたwordpressのファイルを展開します。
※この時点で/var/www/htmlで作業してください。

chown -R apache:apache .
このコマンドで権限を付与します。

```
#### MariaDBのインストール

```:terminal

# mysql このコマンドでMariaDBに接続します。
接続後左側がMariaDB [(none)] > というような表記になっているはずです。

MariaDB [(none)]> create database wordpress default character set utf8;
このコマンドでデータベースを作成します。
(今回は分かりやすくwordpressという名前で作成していますが、ここは任意の名前で問題ないです。)

show databases;
作成できているかはこのコマンドで確認してください。(作成の際につけた名前のデータベースがあれば問題ないです。)

MariaDB [(none)]> grant all on wordpress.* to wordpress@localhost identified by 'password';
このコマンドで先程作成したデータベースのみ全権限を持っているwordpressというユーザーを作成します。
(今回は分かりやすくするためにwordpressとpasswordとしていますが、ユーザー名とパスワードは任意のもので作成してください。)

MariaDB [(none)]> flush privileges;
このコマンドでデータベース内のgrantテーブルから再読み込みを実行します。

``` 

#### wp-config.phpの設定

```:terminal

cd /var/www/html/wordpress
このコマンドでwordpress内の階層に移動します。

cp wp-config-sample.php wp-config.php
このコマンドでconfigファイルのsampleをコピーして、コピーした方をエディタで編集していきます。

vim wp-config.php
このコマンドでconfigファイルに入ります。

```
- configファイルをエディタで開けるとデータベース名/データベースのユーザー名/データベースのパスワードを先程設定したものに変更します。

- configファイルの下の方を見るとユニークキーを変更してくださいとありますが、configファイルにあるURLもしくは**wordpress 秘密鍵サービス**と検索しクリックすれば自動生成してくれるのでそれをコピー＆ペーストして利用すれば問題ないと思います。

#### WordPressの初期設定

- webブラウザで localhost/wordpress/ にアクセスしてwordpressの初期設定を行います。
![wordpress1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594117/b90834d0-544f-41a7-bff5-9b4f09ace59d.png)

- 「さあ、始めましょう」の次の画面です。
![wordpress2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594117/ddf2de04-58ac-daef-0ce0-7ffd5cf4ef48.png)

- 正常にインストールが完了すると以下の画面が表示されます。
![wordpress5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594117/a1dccfc1-5d7d-80b8-bd4a-75a4e9333e24.png)

- ダッシュボードの左上にある家の形をしたアイコンをクリックすると以下の画面が表示されるはずです。

![wordpress4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594117/f4dde638-d448-07e0-19ea-4bf4522593fc.png)

## 補足(このようなエラーが出た場合)
- 「お使いのサーバーのPHPではWordPressに必要なMySQL拡張を利用できないようです。」

このエラーはMariaDBのPHP拡張がインストールされていなかったりした場合に出たりするエラーなのでPHPを再インストールしたりすると直る可能性が高いです。(これで直らない場合もありますあくまでも1例です)

- データベース接続確立エラー

このエラーはWordPressを構築する上で一番多いのではないかと思います。
よくあるパターンとしてはwp-config.phpの設定にミス・DBの権限が無いなど様々な原因がありますが、大体はwp-config.phpとDB周りなのでその辺りをまずはじめに確認すると良いと思います。

## 最後に
今回2回目の記事をQiitaに投稿しました。

画像では分かりやすいようにユーザー名やパスワードを設定していますが、本来はこのような設定はしてはいけないので、ローカルでない本番環境で作成する場合はセキュリティ面には考慮しながら構築してください
今回はファイヤーウォールの設定などは省いていますし、実際はもっと設定することがあります。

前回CentOS8のインストールまでを行い、今回はWordPressをローカル上でLAMP環境で構築しました。
初心者の方に分かりやすいように書いたつもりですが、「ここ分かりにくい」・「こういう記事書いて欲しい」などありましたら出来る範囲内でやっていきたいと思います。

次回はWordPressの構築したサーバーとは別でZabbixを利用して監視サーバーを構築し、今回作成したwebサーバーに対して監視を行うような記事を書いていけたらと考えています。(需要があれば)