WordPress用 CentOS Stream 8 構築メモ

Wordpress
  1. home
  2. blog
  3. WordPress用 CentOS Stream 8 構築メモ

CentOS Stream 8 (8でもAppStream利用の場合は同様だと思います。) 構築方法が変わりました。
構築自体は非常に簡単になったのですが、恐らく忘れてしまうので、個人的備忘録代わりに残しておきます。

尚、今回掲載している環境は少し特殊なので、一般的に参考にはならないと思います。

  • 外部公開無し (社内でもアクセス制限により、部署内のみでの共有)
  • VM Ware 仮想環境上での構築
  • マルチドメインなどは無し。
  • ファイヤーウォールサービスは停止(物理機器で行う為)
注意点

本記事の「CentOS Stream 8」は「2021年5月6日版」を元に作成しております。

CentOS Stream 8 の導入

OSのダウンロードからイメージ作成まで

公式サイトより、最小パッケージ(boot.iso)をダウンロードします。

ダウンロードしたファイルをVM基盤上で作成したディスクにマウントし、ディスクイメージの電源を入れます。
このあたりは環境によって変わると思うので、構築方法は省略します。

OSのインストール

WEBコンソールを開き、「Install CentOS Stream 8-stream」を選択します。

日本語」を選択して「続行」をクリックします。

インストール概要画面」に遷移しますので、「必要箇所を設定」します。
本画面は見切れていますので、ユーザーの設定等はマウススクロール等で表示させる必要があります。

インストール先」をクリックし、詳細設定画面に遷移します。
次に「インストール先のディスク(パーティション)を確保」し、「完了」ボタンをクリックします。

ネットワークとホスト名」をクリックし、詳細設定画面に遷移します。

左下の「ホスト名(H)」にホスト名を入力し、「適用」をクリックします。
右下の「現在のホスト名」が入力されたホスト名に更新される事を確認します。

IPv4の固定アドレス設定を行います。(必要な場合のみ)

  1. 設定」をクリックし、画面を遷移、「IPv4設定」をクリックします。
  2. メソッド:「手動」を選択します
  3. アドレス:「追加」をクリック後、IPアドレス、ネットマスク、ゲートウェイを入力します。
  4. DNSサーバー:複数ある場合はカンマ区切りで入力します。

必要な情報を入力後、「保存」をクリックし、前の画面に戻ります。

画面左上のスライダースイッチをクリックし、「有効(青色)」にします。
接続済みです」と表示され設定したIPアドレス等が表示されることを確認し、「完了」をクリックします。

インストールソース」については、ネットワークが疎通していれば自動的に「最寄りのミラー」となり、警告アイコンも消えますが、引き続き警告アイコンが付与されている場合は以下の設定を行います。

  1. インストールソース」をクリックし、詳細設定画面に遷移します。
  2. 最寄りのミラー」をクリックし、「http://」を選択します。
  3. 右側のテキスト入力画面に「mirror.centos.org/centos/8-stream/BaseOS/os/」を入力し、「完了」をクリックします。
  4. 警告アイコンが消えている事を確認します。

ソフトウェアの選択」をクリックし、詳細設定画面に遷移します。
次に「最小限のインストール」を選択し、「完了」をクリックします。

日付と時刻」をクリックし、詳細設定画面に遷移します。
次に「表示された地図」から「日本 (東京)」をクリックし、「完了」をクリックします。

root パスワード」をクリック後、詳細設定画面に遷移します。
次に「rootパスワード」、「確認」を入力し、「完了」をクリックします。
本項目は見切れている場合が大半だと思いますので、その場合はマウスでホイールスクロールをすることにより表示されます。

ユーザーの作成」をクリックし、詳細設定画面に遷移します。
次に「フルネーム」、「ユーザー名」、「パスワード」、「パスワードの確認」を入力し、「完了」をクリックします。
本項目は見切れている場合が大半だと思いますので、その場合はマウスでホイールスクロールをすることにより表示されます。

初期設定が正常に完了すると「インストールの開始」ボタンが「青色」になります。
次に「インストールの開始」をクリックします。

インストールが開始」されます。
インストール完了」が表示されましたら、「システムの再起動」をクリックします。

再起動後、「作成したユーザー」及び「rootユーザー」でログインできることを確認します。

CentOS Stream 8 の初期構築

本項目以降の前提内容

本記事内の以降の作業は「SSHクライアント (今回は putty)」にて「作成したユーザーでログイン」後、「管理者に昇格」した状態で進めています。

login as: 作成したユーザー
nics@172.20.3.4's password: パスワードを入力
Last login: *** *** ** **:**:** **** from ***.***.***.***
[作成したユーザー@localhost ~]$ su -
パスワード: パスワードを入力
最終ログイン: ****/**/** (*) **:**:** JST日時 pts/0
[root@localhost ~]#

SELINUX の無効化

現在の状況を「getenforce」で確認します。「disabled」以外は本作業を実施します。

[root@localhost ~]# getenforce
Enforcing

設定ファイル」を「バックアップ」します。

cp -p /etc/selinux/config /etc/selinux/config.old

設定ファイル」を編集します。
次に「SELINUX=enforcing」を「SELINUX=disabled」に変更し、上書き保存終了します。

vi /etc/selinux/config
#     permissive - SELinux prints warnings instead of enforcing.$
#     disabled - No SELinux policy is loaded.$
SELINUX=disabled ←「enforcing」から「disabled」に変更します。

差分チェック」を実施し、変更内容に不備がないか確認します。

diff /etc/selinux/config /etc/selinux/config.old
7c7
< SELINUX=disabled
---
> SELINUX=enforcing

システムの再起動」を実施します。

shutdown -r now

再度「getenforce」を実行し、「Disabled」に変更されている事を確認します。

[root@localhost ~]# getenforce
Disabled

EPELパッケージの導入

epelパッケージ」を導入します。

dnf -y install epel-release

設定ファイル」の「バックアップ」を実施します。

cp -p /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.old

設定ファイル」の「編集」をします。
次に「epel項目」内の「enable=1」を「enable=0」に変更し、上書き保存終了します。

vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux $releasever - $basearch
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir
enabled=0 ←「1」から「0」に変更します。
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8

差分チェック」を実施し、変更内容に不備がないか確認します。

diff /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.old
5c5
< enable=0
---
> enable=1

Tips

今回は、通常のコマンドでのパッケージ導入については「標準ライブラリ」からのみ導入をする設定をしております。
※拡張ライブラリから導入したパッケージについては、RedHat社のサポート外となります。

拡張ライブラリ」より「パッケージを導入」する場合は以下の書式を利用します。

dnf --enablerepo=epel install -y【パッケージ名】

その他パッケージの導入

以下のコマンドを実行し、今回必要なパッケージを導入します。

dnf -y install tar gcc make kernel-devel kernel-headers bzip2 perl zip unzip wget mlocate bash-completion postfix mailx vim-enhanced
dnf --enablerepo=epel -y install dkms

検索用データベース」の「アップデート」を実施します。

updatedb

全体の更新確認を実施します。

dnf -y update

Firewalld の設定と無効化

設定ファイル」を「バックアップ」します。

cp -p /etc/firewalld/firewalld.conf /etc/firewalld/firewalld.conf.old

設定ファイル」を編集します。
次に「AllowZoneDrifting=yes」を「AllowZoneDrifting=no」に書き換え後、上書き保存します。

vi /etc/firewalld/firewalld.conf
~ 最終行付近 ~
# based zones (including the default zone). Packets never drift from interface
# based zones to other interfaces based zones (including the default zone).
# Possible values; "yes", "no". Defaults to "yes".
AllowZoneDrifting=no ←「yes」から「no」に変更します。

差分チェック」を実施し、変更内容に不備がないか確認します。

diff /etc/firewalld/firewalld.conf /etc/firewalld/firewalld.conf.old
75c75
< AllowZoneDrifting=no
---
> AlloZoneDrifting=yes

firewalld サービス」を停止します。

systemctl disable firewalld.service

firewalld サービス」が停止されていることを確認します。

systemctl list-unit-files | grep firewall
firewalld.service                           disabled

その他サービスの停止

今回必要の無いサービスを停止します。

systemctl disable auditd.service
systemctl disable kdump

タイムサーバーの設定

設定ファイル」の「バックアップ」をとります。

cp -p /etc/chrony.conf /etc/chrony.conf.old

設定ファイル」を編集します。
次に「参照サーバー」を書き換え後、上書き保存します。

vi /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# pool 2.centos.pool.ntp.org iburst ← コメントアウトします。
server ntp1.jst.mfeed.ad.jp iburst  ← 追加します。
server ntp2.jst.mfeed.ad.jp iburst  ← 追加します。
server ntp3.jst.mfeed.ad.jp iburst  ← 追加します。

差分チェック」を実施し、変更内容に不備がないか確認します。

diff /etc/chrony.conf /etc/chrony.conf.old
3,6c3
< # pool 2.centos.pool.ntp.org iburst
< server ntp1.jst.mfeed.ad.jp iburst
< server ntp2.jst.mfeed.ad.jp iburst
< server ntp3.jst.mfeed.ad.jp iburst
---
> pool 2.centos.pool.ntp.org iburst

サービスを再起動します。

systemctl restart chronyd

時刻同期」を開始します。
(*)がつかない場合は複数回実施してください。

chronyc sources
210 Number of sources = 3
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ ntp1.jst.mfeed.ad.jp          2   6    17    37   -393us[ -371us] +/-   72ms
^* ntp2.jst.mfeed.ad.jp          2   6    17    38   -161us[ -139us] +/-   66ms
^+ ntp3.jst.mfeed.ad.jp          2   6    17    38   +759us[ +781us] +/-   95ms

rootユーザーの直接ログイン禁止設定

設定ファイル」の「バックアップ」を実施します。

cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.old

設定ファイル」を編集します。
rootの直接ログインを禁止」に書き換え後、上書き保存をします。

vi /etc/ssh/sshd_config
#LoginGraceTime 2m
PermitRootLogin no ←「yes」を「no」に変更します。
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

差分チェック」を実施し、変更内容に不備がないか確認します。

diff /etc/ssh/sshd_config /etc/ssh/sshd_config.old
43c43
< PermitRootLogin no
---
> PermitRootLogin yes

サービスの再起動」を実施します。

systemctl restart sshd

su出来るユーザーの制限設定

作成したユーザー」を「wheel」グループに追加します。

usermod -g wheel hogeuser

作成したユーザー」が「wheel」グループに参加しているか確認します。

id hogeuser
uid=1000(hogeuser) gid=10(wheel) groups=10(wheel)

設定ファイル」を「バックアップ」します。

cp -p /etc/pam.d/su /etc/pam.d/su.old

設定ファイル」を編集します。
下記内容の「コメントアウトを削除」し、上書き保存をします。

vi /etc/pam.d/su
#%PAM-1.0
auth required pam_env.so
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
auth required pam_wheel.so use_uid ← コメントアウトを外す
auth substack system-auth

差分チェック」を実施し、変更内容に不備がないか確認します。

diff /etc/pam.d/su /etc/pam.d/su.old
7c7
< auth          required        pam_wheel.so use_uid
---
> #auth         required        pam_wheel.so use_uid

vim 拡張機能の追加

ユーザー毎の固有環境」を編集します。
次に下記内容を「最終行」に追記して、上書き保存します。

vi ~/.bashrc
alias vi='vim'

設定を反映させます。

source ~/.bashrc

全体設定ファイル」を「バックアップ」します。

cp -p /etc/vimrc /etc/vimrc.old

全体設定ファイル」を編集します。
次に以下の内容を「追記・変更」します。その後上書き保存します。

vi /etc/vimrc
01.先頭に追記
set encoding=utf-8 "文字コードを指定

02.変更
" set fileencodings=ucs-bom,utf-8,latin1 コメントアウト
set fileencodings=utf-8,iso-2022-jp,sjis,euc-jp  "ファイルエンコードを指定

03.有効になっているか確認 (コメントアウトされていた場合は有効化)
set nocompatible   "独自拡張機能を使用
set history=50  " 検索履歴を残す世代数
set hlsearch    " 検索語にマッチした単語をハイライト
set autoindent  " 自動インデントを有効にする
syntax on   " 構文ごとに色分け表示

04.追記 はじめの方、set~が並んでいる行の後に追記
set fileformats=unix,dos " 自動認識させる改行コードを指定
set ignorecase " 検索時に大文字小文字を区別しない
set incsearch " インクリメンタルサーチを使用
set number " 行番号を表示
set list " 改行 ( $ ) やタブ ( ^I ) を可視化
set showmatch " 括弧入力時に対応する括弧を強調
set binary noeol " ファイルの末尾に改行を入れない
set wrap " ウィンドウ幅で行を折り返す
set tabstop=4 "タブをスペース4つ分にする 初期値:8
set smartcase "大文字で検索した際、大文字小文字を区別する。(大文字のみサーチする。)

05.syntax on の後に追記
highlight Comment ctermfg=LightCyan "syntax onの場合のコメント文の色を変更

差分チェック」を実施し、変更内容に不備がないか確認します。

diff /etc/vimrc /etc/vimrc.old
1d0
< set encoding=utf-8 "文字コードを指定
3,4c2
<     " set fileencodings=ucs-bom,utf-8,latin1
<     set fileencodings=utf-8,iso-2022-jp,sjis,euc-jp  "ファイルエンコードを指定
---
>    set fileencodings=ucs-bom,utf-8,latin1
9c7
< set ai                        " always set autoindenting on
---
> "set ai                       " always set autoindenting on
15,25d12
< set fileformats=unix,dos " 自動認識させる改行コードを指定
< set ignorecase " 検索時に大文字小文字を区別しない
< set incsearch " インクリメンタルサーチを使用
< set number " 行番号を表示
< set list " 改行 ( $ ) やタブ ( ^I ) を可視化
< set showmatch " 括弧入力時に対応する括弧を強調
< set binary noeol " ファイルの末尾に改行を入れない
< set wrap " ウィンドウ幅で行を折り返す
< set tabstop=4 "タブをスペース4つ分にする 初期値:8
< set smartcase "大文字で検索した際、大文字小文字を区別する。(大文字のみサーチする。)
<
66,67d52
< highlight Comment ctermfg=LightCyan "syntax onの場合のコメント文の色を変更

ユーザー毎の設定ファイル」を「新規作成」します。
次に以下の内容を記述後、保存終了します。

vi ~/.vimrc
highlight Comment ctermfg=LightCyan

メール送信設定

サービスの起動及び自動起動を設定します。

systemctl enable --now postfix

which sendmail」を実施し、「usr/bin/sendmail」が返ってくることを確認します。

[root@localhost ~]# which sendmail
/usr/sbin/sendmail

root 宛メール」の「転送設定」をします。

sed -i '/^root:/d' /etc/aliases
sh -c "echo 'root: exsample@exsample.com' >> /etc/aliases"
newaliases

テストメールを送信」し、正常に受信が出来ることを確認します。

echo test | mail root

LEMP環境の構築

Nginx の導入

利用可能なバージョン一覧」を確認します。

dnf module list nginx
CentOS Stream 8 - AppStream
Name            Stream             Profiles             Summary
nginx           1.14 [d]           common [d]           nginx webserver
nginx           1.16               common [d]           nginx webserver
nginx           1.18               common [d]           nginx webserver

Extra Packages for Enterprise Linux Modular 8 - x86_64
Name            Stream             Profiles             Summary
nginx           mainline           common               nginx webserver
nginx           1.20               common               nginx webserver

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

nginxのインストール」を実施します。
今回は、「1.18」の「common」を導入します。

dnf module -y install nginx:1.18/common

利用可能なバージョン一覧」を確認します。
今回は「1.18 [e]」、「common [d][i]」になっていることを確認します。

dnf module list nginx
CentOS Stream 8 - AppStream
Name           Stream            Profiles                Summary
nginx          1.14 [d]          common [d]              nginx webserver
nginx          1.16              common [d]              nginx webserver
nginx          1.18 [e]          common [d] [i]          nginx webserver

Extra Packages for Enterprise Linux Modular 8 - x86_64
Name           Stream            Profiles                Summary
nginx          mainline          common                  nginx webserver
nginx          1.20              common                  nginx webserver

PHP の導入

利用可能なバージョン一覧」を確認します。

dnf module list php
CentOS Stream 8 - AppStream
Name      Stream       Profiles                       Summary
php       7.2 [d]      common [d], devel, minimal     PHP scripting language
php       7.3          common [d], devel, minimal     PHP scripting language
php       7.4          common [d], devel, minimal     PHP scripting language

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

PHPのインストール」を実施します。
今回は「7.4」の「developer」を導入します。

dnf module -y install php:7.4/devel

利用可能なバージョン一覧」を確認します。
今回は「7.4 [e]」、「common [d], devel[i],minimal」になっていることを確認します。

dnf module list php
CentOS Stream 8 - AppStream
Name     Stream      Profiles                          Summary
php      7.2 [d]     common [d], devel, minimal        PHP scripting language
php      7.3         common [d], devel, minimal        PHP scripting language
php      7.4 [e]     common [d], devel [i], minimal    PHP scripting language

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

MariaDB の導入

利用可能なバージョン一覧」を確認します。

dnf module list mariadb
CentOS Stream 8 - AppStream
Name          Stream         Profiles                        Summary
mariadb       10.3 [d]       client, galera, server [d]      MariaDB Module
mariadb       10.5           client, galera, server [d]      MariaDB Module

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

MariaDBのインストール」を実施します。
今回は、「10.5」の「Server」を導入します。

dnf module -y install mariadb:10.5/server

利用可能なバージョン一覧」を確認します。
今回は「10.5 [e]」、「server [d][i]」になっていることを確認します。

dnf module list mariadb
CentOS Stream 8 - AppStream
Name         Stream        Profiles                           Summary
mariadb      10.3 [d]      client, galera, server [d]         MariaDB Module
mariadb      10.5 [e]      client, galera, server [d] [i]     MariaDB Module

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Webサーバー周りの初期設定

設定ファイル」の「バックアップ」を取得します。

cp -p /etc/nginx/nginx.conf /etc/nginx/nginx.conf.old

設定ファイル」を編集します。
次に「server_name」の値を変更し、上書き保存をします。

vi /etc/nginx/nginx.conf
server {$
    listen       80;
    listen       [::]:80;
    server_name  exsample.com; ← 「_;」を「サーバー名;」に変更
    root         /usr/share/nginx/html;

差分チェック」を実施し、変更内容に不備がないか確認します。

diff /etc/nginx/nginx.conf /etc/nginx/nginx.conf.old
41c41
<         server_name  exsample.com;
---
>         server_name  _;

サービスの起動」及び「自動起動の有効化」を実施します。

systemctl enable  --now php-fpm
systemctl enable --now nginx

osを再起動をします。

shutdown -r now

ブラウザーで「http://サーバ名」にアクセスし、ページが表示されることを確認します。

php.info」を作成します。

echo '<?php phpinfo(); ?>' > /usr/share/nginx/html/info.php

ブラウザーから「http://サーバー名/info.php」にアクセスし、phpinfoが表示されることを確認します。

Maria DB の初期設定

charset.cnf」を新規作成します。
次に以下の内容を記述後、保存終了します。

vi /etc/my.cnf.d/charset.cnf
[mysqld]
character-set-server = utf8mb4

[client]
default-character-set = utf8mb4

サービスの起動」及び「自動起動の有効化」、「再起動」を実施します。

systemctl enable --now mariadb
systemctl restart mariadb

MariaDBの初期設定」を実施します。

mysql_secure_installation
Enter current password for root (enter for none): 空白のままエンター
Switch to unix_socket authentication n
Change the root password? y ※rootパスワードを設定
Remove anonymous users? y
Disallow root login remotely? y
Remove test database and access to it? y
Reload privilege tables now? y

パスワード無しでログインできる場合」、改めてパスワードを設定します。

mysql -u root ← これでログインできる場合、以下の内容を設定
ALTER USER 'root'@'localhost' IDENTIFIED BY "Password"; ← PASSWORDは設定したいパスワードを入力します。
exit

パスワード無しでログインしようとした場合、「以下のメッセージ」が出れば問題ありません。

mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

再度「rootユーザー」で「ログイン」が出来るか確認します。

mysql -u root -p
exit

自己SSL証明書の作成

今回は、外部からの疎通をさせていない内部サーバーの為、自己証明書を作成して運用します。
外部公開サーバーや外部からの疎通(80番ポート)を許可している場合は、「cerbot等」を利用した、「Let’s Encrypt」等を利用する方法がお勧めです。

SSL証明書用のディレクトリ」を作成します。

mkdir /etc/nginx/ssl

秘密鍵、署名申請書、サーバー証明書」を発行します。

openssl genrsa -out /etc/nginx/ssl/server.key 2048
openssl req -new -key /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.csr
※Common Name には ドメイン名を入力
openssl x509 -days 3650 -req -signkey /etc/nginx/ssl/server.key -in /etc/nginx/ssl/server.csr -out /etc/nginx/ssl/server.crt

SSL証明書用ディレクトリ」に「3ファイルが作成」されていることを確認します。

ls /etc/nginx/ssl

Nginx SSL設定

ssl.conf」を新規作成します。
以下の内容を記述後、保存終了します。

vi /etc/nginx/conf.d/ssl.conf
server {
    listen       443 ssl http2 default_server;
    listen       [::]:443 ssl http2 default_server;
    server_name  サーバー名; ← 今回設定しているサーバー名を記述
    root         /usr/share/nginx/html;
    client_max_body_size 50M;

    # 証明書を設定
    ssl_certificate     /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers PROFILE=SYSTEM;
    ssl_prefer_server_ciphers on;

    include /etc/nginx/default.d/*.conf;
 
   location / {
    }
 
   error_page 404 /404.html;
        location = /40x.html {
    }
 
   error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

nginx.conf」を編集します。
次に「return ~」を追記して、上書き保存します。

vi /etc/nginx/nginx.conf
server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    return       301 https://$host$request_uri; ← 追加
    server_name  サーバー名;
    root         /usr/share/nginx/html;

サービスの再起動」を実施します。

systemctl restart nginx

ブラウザーで「https://サーバー名」でアクセスが出来るか確認します。

注意点

「nginx.conf」に追記した「HTTP=>HTTPS リダイレクト設定」及び「自己証明書(オレオレ証明書)」の環境下では「Wordpress」の「WP SuperCache」プラグインのキャッシュテストでエラーが発生します。
実働には問題ありませんが、詳細は下記ページをご参照ください。

PHP-FPMの設定

設定ファイル」の「バックアップ」を実施します。

cp -p /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.old

設定ファイル」を編集します。
以下の内容を変更後、上書き保存します。

vi /etc/php-fpm.d/www.conf
user  = nginx ← 「apache」から「nginx」に変更
group = nginx ← 「apache」から「nginx」に変更

listen.owner = nginx ←「nobody」から「nginx」に変更&コメントアウトを外す
listen.group = nginx ←「nobody」から「nginx」に変更&コメントアウトを外す
listen.mode  = 0660  ←コメントアウトを外す

差分チェック」を実施し、変更内容に不備がないか確認します。

diff /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.old
24c24
< user  = nginx
---
> user = apache
26c26
< group = nginx
---
> group = apache
48,50c48,50
< listen.owner = nginx
< listen.group = nginx
< listen.mode  = 0660
---
> ;listen.owner = nobody
> ;listen.group = nobody
> ;listen.mode = 0660

サービスの再起動」を実施します。

systemctl restart php-fpm
systemctl restart nginx

ブラウザーで「https://サーバー名」でアクセスが出来るか確認します。

WordPress の導入準備

投稿記事のカスタムパーマリンク対応

ssl.conf」を編集します。
次に「location / { }」内に「try_files ~」を追記後、上書き保存をします。

vi /etc/nginx/conf.d/ssl.conf
location / {
    try_files $uri $uri/ /index.php?$args; ← 追記
}

サービスの再起動」を実施します。

systemctl restart nginx

php.iniの設定

必要なモジュール」を導入します。

dnf config-manager --set-enabled powertools ※PowerTools の有効化
dnf --enablerepo=epel -y install php-pear php-mbstring php-pdo php-gd php-mysqlnd php-IDNA_Convert php-enchant enchant hunspell ImageMagick ImageMagick-devel
dnf install -y php php-devel php-pear make
pecl install imagick ※問い合わせは空白エンター
echo "extension=imagick.so" > /etc/php.d/20-imagick.ini

サービスの再起動」を実施します。

systemctl restart php-fpm

ライブラリの実行状況」を確認します。

php -m

ライブラリに「imagick のエラー」が発生した場合は以下を実施します。
(PHP Startup: Unable to load dynamic library ‘/usr/lib/php/modules/imagick.so’ ~)

pecl upgrade imagick

設定ファイル」を編集します。
次に「最終行に以下の内容を追記」後、上書き保存します。

vi /etc/php-fpm.d/www.conf
php_value[max_execution_time] = 600
php_value[memory_limit] = 256M
php_value[post_max_size] = 50M
php_value[upload_max_filesize] = 50M
php_value[max_input_time] = 600
php_value[max_input_vars] = 2000
php_value[date.timezone] = Asia/Tokyo
php_value[expose_php] = Off
php_value[mbstring.language] = Japanese
php_value[mbstring.internal_encoding] = UTF-8
php_value[mbstring.http_input] = UTF-8
php_value[mbstring.http_output] = pass
php_value[mbstring.encoding_translation] = On
php_value[mbstring.detect_order] = auto
php_value[mbstring.substitute_character] = none

サービスの再起動」を実施します。

systemctl restart php-fpm

MariaDB の設定

rootユーザー」でログインします。

mysql -u root -p

wordpress利用のデータベース」を作成します。

CREATE DATABASE データベース名;

データベースが作成されているか確認します。

show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wordpress_db       | ← 今回作成したデータベースです。
+--------------------+
4 rows in set (0.001 sec)

wordpress用ユーザーの作成」及び「WordPress用データベースへの実行権限」を付与します。

grant all privileges on データベース名.* to ユーザー名@'localhost' identified by 'password';

ユーザーが作成されていることを確認します。

select user, host from mysql.user;

+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| mariadb.sys | localhost |
| mysql       | localhost |
| root        | localhost |
| wpadmin     | localhost | ← 今回作成したユーザーです。
+-------------+-----------+
4 rows in set (0.001 sec)

念の為、「キャッシュをクリア」します。

flush privileges;

MariaDB」をログアウトします。

exit

WordPress の導入

今回はサブディレクトリを作成せず、ドキュメントルート直下にWordpressを展開しています。
naginxはrewriteルールの書き換えがいまいちうまくいかないのと検証しきれなかったのです…

導入ファイルのダウンロードから展開

テンポラリディレクトリー」に移動します。

cd /usr/tmp/

公式サイトより「wordpress の最新ファイル」をダウンロードします。

curl -O https://ja.wordpress.org/latest-ja.tar.gz

ダウンロードしたファイルを展開します。

tar zxvf latest-ja.tar.gz

展開したファイルを「ドキュメントルート直下に移動」します。

mv /usr/tmp/wordpress/* /usr/share/nginx/html/

展開元の「不要になったディレクトリーを削除」します。

rm -rf /usr/tmp/wordpress

ドキュメントルートにアクセス権を付与します。

chown -R nginx:nginx /usr/share/nginx/html

WordPress の展開

ブラウザーから「https://サーバー名」にアクセスし、「WordPressの初期画面」が表示される事を確認します。

以降は一般的なWordpressのセットアップを実施します。


参考サイト様