WordPressのステータスエラーを解消して新しいエディタGutenberg(グーテンベルク)を使う

WordPress5以降にバージョンアップすると、サイトヘルスというものがあり色々と足りないと申しております。PHPに関するものやデータベースなど、このままでは新エディタのGutenberg(グーテンベルク)が使えません。クラッシックエディタがまだ使えますが、2021年末にはにサポートが切れてしまいます。

PHPのモジュールなど足りないものをインストールすることにしました。

PHPの削除とインストール

PHPに関して2つのエラーが出ています。

  • 古いバージョンのPHPを使っている。
  • 1つ以上の推奨モジュールが存在しない。(php-zip,php-imagick)

PHP7.3.18で古いといわれても、まぁ2020年10月現在PHPは7.4になっていますが・・・。常に最新にしろということですね。PHPを7.4にしてみましょう。インストールはyumパッケージで行うと古いパッケージがインストールされてしまうので外部リポジトリのEPEL、remiから行います。足りないモジュールも含めてインストールしましょう。インストールで上書きしてくれますが、まずは以前のPHPを削除しておくほうがいいですかね。

PHPの削除(ワイルドカードを使う)

[root@cserver ~]# yum remove php-*

PHPの外部リポジトリを追加

まず外部リポジトリを追加します。

# 外部リポジトリを追加#
[root@cserver ~]# yum install epel-release
[root@cserver ~]# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

PHPとWordpressに必要なモジュールを含めてインストールします。インストールが完了したらPHPモジュールの確認をしてみます。

今回インストールしたPHPモジュール

php-pdo php-mbstring php-xml php-bcmath php-zip php-mysql php-imagick php-gd php-opcache

# phpをインストール
[root@cserver ~]# yum install --enablerepo=remi,remi-php74 php php-pdo php-mbstring php-xml php-bcmath php-zip php-mysql php-imagick php-gd php-opcache

# phpの確認#
[root@cserver ~]# rpm -qa | grep php
php-xml-7.4.11-1.el7.remi.x86_64
php-json-7.4.11-1.el7.remi.x86_64
oniguruma5php-6.9.5+rev1-2.el7.remi.x86_64
php-7.4.11-1.el7.remi.x86_64
php-cli-7.4.11-1.el7.remi.x86_64
php-gd-7.4.11-1.el7.remi.x86_64
php-bcmath-7.4.11-1.el7.remi.x86_64
php-pdo-7.4.11-1.el7.remi.x86_64
php-pecl-imagick-3.4.4-10.el7.remi.7.4.x86_64
php-pecl-zip-1.19.1-1.el7.remi.7.4.x86_64
php-opcache-7.4.11-1.el7.remi.x86_64
php-mysqlnd-7.4.11-1.el7.remi.x86_64
php-sodium-7.4.11-1.el7.remi.x86_64
php-mbstring-7.4.11-1.el7.remi.x86_64
php-common-7.4.11-1.el7.remi.x86_64

#apacheの再起動#
[root@cserver ~]# systemctl restart httpd.service

PHPモジュールの確認ができたたらapacheの再起動をして完了です。

#apacheの再起動#
[root@cserver ~]# systemctl restart httpd.service

データベースのインストール

古いデータベースサーバーとなっていますのでMariaDBを最新へ更新します。

MariaDB公式サイトよりリポジトリをダウンロードしてbashコマンドで書き込みます。

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash

mariadb.repoの確認をしてみます。

ファイルの場所は/etc/yum.repos.d/mariadb.repoです。

[root@cserver ~]# nano /etc/yum.repos.d/mariadb.repo
[mariadb-main]
name = MariaDB Server
baseurl = https://downloads.mariadb.com/MariaDB/mariadb-10.5/yum/rhel/7/x86_64
gpgkey = file:///etc/pki/rpm-gpg/MariaDB-Server-GPG-KEY
gpgcheck = 1
enabled = 1


[mariadb-maxscale]
# To use the latest stable release of MaxScale, use "latest" as the version
# To use the latest beta (or stable if no current beta) release of MaxScale, use "beta" as the vers$
name = MariaDB MaxScale
baseurl = https://dlm.mariadb.com/repo/maxscale/latest/yum/rhel/7/x86_64
gpgkey = file:///etc/pki/rpm-gpg/MariaDB-MaxScale-GPG-KEY
gpgcheck = 1
enabled = 1

[mariadb-tools]
name = MariaDB Tools
baseurl = https://downloads.mariadb.com/Tools/rhel/7/x86_64
gpgkey = file:///etc/pki/rpm-gpg/MariaDB-Enterprise-GPG-KEY
gpgcheck = 1
enabled = 1

MariaDBのインストールをします。

[root@cserver ~]# yum -y update MariaDB-client MariaDB-server

インストールされたMariaDBのバージョン確認

[root@cserver ~]# rpm -qa | grep -i mariadb
MariaDB-server-10.5.10-1.el7.centos.x86_64
MariaDB-compat-10.5.10-1.el7.centos.x86_64
MariaDB-client-10.5.10-1.el7.centos.x86_64
MariaDB-common-10.5.10-1.el7.centos.x86_64

MariaDBの初期設定とデータベース作成は以前のバージョンと同じです。

PHP設定ファイルの編集

PHPの設定がおかしいと言われているのでphp.iniを編集しなおします。

post_max_sizeupload_max_filesizeの値が違うといわれました。設定を同じにしてる方がいいということですね。それぞれの値を2000Mに設定しました。

# php.iniの編集#
[root@cserver ~]# nano /etc/php.ini

697行目あたり
post_max_size = 2000M

846行目あたり
upload_max_filesize = 2000M

#apacheの再起動#
[root@cserver ~]# systemctl restart httpd.service

最後のREST APIは正しく動作しませんでしたの解決

最後のREST APIは正しく動作しませんでしたはapacheのモジュールです。モジュールが有効になっているかと、apacheの設定ファイルを確認します。

まずモジュールの確認のため

/etc/httpd/conf.modules.d/00-base.conf

を開きます。

モジュールの

LoadModule rewrite_module modules/mod_rewrite.so

が有効になっているか確認します。有効になっていなければ#を削除して有効にします。

モジュールの確認ができたらapacheの設定ファイルの確認です。ドキュメントルートのDirectoryの設定を確認します。

nano /etc/httpd/conf/httpd.confの146行目あたりの〈Directory”/var/www/html”〉のOptionsAllowOverrideを編集します。

Options Indexes FollowSymLinksを無効にして
Options FollowSymLinks Includes ExecCGI
を書き込みます。

Indexesはindex.htmlが存在しないとディレクトリのファイル一覧を表示させてしまいます。セキュリティ上よくないのでOptionsから外しておく方がいいです。

AllowOverride NoneになっていたらAllowOverride allにします。

編集出来たらapacheを再起動します。

[root@cserver ~]# nano /etc/httpd/conf.modules.d/00-base.conf

#有効にするモジュール#
LoadModule rewrite_module modules/mod_rewrite.so
#apacheの設定ファイルの編集#
[root@cserver ~]# nano /etc/httpd/conf/httpd.conf

#設定の確認133行目あたりから#
〈Directory"/var/www/html"〉
  #Options Indexes FollowSymLinks
  Options FollowSymLinks Includes ExecCGI

  #AllowOverride None
  AllowOverride all
〈/Directory〉

変更を有効にするためにapacheを再起動します。

#apacheの再起動#
[root@cserver ~]# systemctl restart httpd.service

ここまで出来れば次のようにサイトヘルスに問題がないようになると思います。

すっきりしましたね!