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_sizeとupload_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”〉のOptionsとAllowOverrideを編集します。
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
ここまで出来れば次のようにサイトヘルスに問題がないようになると思います。
すっきりしましたね!