スーパー初心者向け! Wordpress構築😼

人気ブログの一つに「Wordperss」がありますよね。
今回はインフラ基盤を一から作り自分の記事が書けることをゴールに設定しました！


# Wordpressとは？
"WordPress（ワードプレス）とは、サイトの作成やブログの作成などが
できるCMS(コンテンツ管理システム)の1つ"

https://digital-marketing.jp/creative/what-is-wordpress/

では早速構築に移りましょう！
:::message
Amazon Linux2でのインストールを試みます。
:::

[参考サイト]
https://qiita.com/moomindani/items/9968df0d4396564bf74c#%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3-6-phpmyadmin-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B

yumのアップデート
```js
yum update -y
```

まずはwebサーバを構築していきます。今回はApacheをミドルウェアに採用し
やっていきましょう！

Apacheのインストール・起動・自動設定
```js
yum install -y httpd
systemctl start httpd
systemctl enable httpd
```
※ディレクトリ以下ファイルのアクセス権限をapacheにしておかないとファイルへの書き込みができずにエラーに陥るので権限委譲とパーミッションは変更しておきましょう!

ディレクトリの権限委譲
```js
chown -R apache:apache /var/www
chmod 2775 /var/www && find /var/www -type d -exec chmod 2775 {} \;
find /var/www -type f -exec chmod 0664 {} \;
```
WordpressにはPHPが必要なためパッケージ諸共インストールしていきます！

レポジトリにあるPHPを参照
```js
amazon-linux-extras enable php7.3
```

関連のパッケージインストール
```js
 yum install -y php php-gd php-mysqlnd php-xmlrpc
```
Wordpressのデータ保存先のデータベースを構築していきます。
今回はMariaDBを採用しました！

DBのインストール
```js
yum install mariadb mariadb-server -y
systemctl start mariadb
systemctl enable mariadb.service
```
DBへのログイン時のパスワード設定をします。
このパスワードは後ほどログインする際必要なのでメモっとくといいでしょう。

セキュリティ設定
```js
mysql_secure_installation
```


以下続けて設定
```js
#現在のパスワード入力が求められますが、Enterで大丈夫です
Enter current password for root (enter for none): 
#パスワード設定はyes
Set root password? [Y/n] y
#新たなパスワード設定
New password: 
#もう一度同じパスワード設定
Re-enter new password: 

#匿名ユーザーアカウントを削除
Remove anonymous users? [Y/n] y
#リモートルートログインを無効
Disallow root login remotely? [Y/n] y
#テストデータベースを削除
Remove test database and access to it? [Y/n] y
#権限テーブルを再ロードし、変更を保存
Reload privilege tables now? [Y/n] y

#以下の文言が出てくればOK!
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
```


DBへログイン
```js
 mysql -u root -p
 #パスワードは先ほど設定したもの
 ```
 
 ログイン後以下をDB内にて登録
 ```js
 #ユーザ登録
 CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY '登録したいパスワード名';
#DB名登録
 CREATE DATABASE `wordpress-db`;
 #ユーザへの権限付与
 GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpress-user"@"localhost";
 #権限内容の反映
 FLUSH PRIVILEGES;
 
 # ctl+dでDBから抜けます
 ```
 
カレントディレクトリに移動
```js
cd && pwd
```
今回メインのWordpressデータをインストールしていきます！
Wordpressインストール・ファイルの解凍
```js
wget https://ja.wordpress.org/latest-ja.tar.gz
tar -xzvf latest-ja.tar.gz
```

解凍済みファイルの削除
```js
rm -rf latest-ja.tar.gz
```



PHPの設定ファイルコピー・作成
```js
cp wordpress/wp-config-sample.php wordpress/wp-config.php
vim wordpress/wp-config.php
```
DBログインした際に登録した情報をPHPに流し込んでいきます。

以下内容を編集
```js
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'DBの編集で登録したDB名' );

/** MySQL データベースのユーザー名 */
define( 'DB_USER', '登録したユーザ名' );

/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', '登録したパスワード名' );
```

今回はわかりやすいようにhtml配下に「wordpress」というディレクトリを作成し、そこにwordpressのデータをコピーしていきます！

webページ用ディレクトリ作成
```js
mkdir /var/www/html/wordpress
```

Wordpressのファイルを全て先ほど作成したディレクトリへコピー
```js
cp -r wordpress/* /var/www/html/wordpress/
```

最後にApacheの設定です。

Apacheの設定ファイルのオリジナルコピー・編集
```js
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
vim /etc/httpd/conf/httpd.conf
```

151行目のAllowOverride Noneを　Allへ編集
(WordpressとApacheのパーマリンクを実現しています。)
「パーマリンクとは「Webサイトのページ毎に設定しているURL」のこと」
https://www.xserver.ne.jp/blog/wordpress-permalink/

```js
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    
    #151行目に記載
    #AllowOverride None
     ↓
     AllowOverride All
```

最後にApacheを再起動
```js
sys
temctl restart httpd
```

ブラウザよりWordpress設定
```js
http://自分のグローバルIP/wordpressで初期設定画面へ移行。
```

後半はざざっとやっていきましたが、これでWordpress初期画面からログインができるようになったかと思います！