サイトアイコン アラコキからの Raspberry Pi 電子工作

PHPを 7.3 → 7.4に バージョンアップ

Webサーバー サイトの運用
Raspberry Pi + nginx + php + wordpress
phpだけのバージョンアップ
 
WordPressの「サイトヘルスステータス」に、「サイトが古いバージョンの PHP を実行しています」と表示され、PHPを新しいバージョンに更新するよう勧められる。
 
 
以下、この指摘に従って「phpだけをバージョンアップ」した記録。
 

 

スポンサー リンク

 

 
 
 
 
 
1. WordPressの稼働環境
 
現行Webサーバーのバージョン。
Raspbian : Buster with desktop Release date:2019-09-26
Nginx : Stable version 1.16.1
PHP7.3.15 – 2020.02.24
MariaDB : 10.3.17
WordPress : 5.4.2
 
 
WordPressのダッシュボードでの「サイトヘルスステータス」は、【Good】になっている。
 
しかし、サイトヘルス画面を見てみると「1つのおすすめの改善」があり、その内容は「サイトが古いバージョンの PHP を実行しています」となっている。
 
詳細を確認すると、「PHP の最低推奨バージョンは7.4です。」との指摘がある。
 
サーバーの「 /etc/php 」の内容。
 
PHPの、現行バージョンを確認する。
php -v
php -version
 
確認結果。

yaopi@Luxeritas:~ $ php --version

PHP 7.3.15-4+0~20200224.55+debian10~1.gbpbea824 (cli) (built: Feb 24 2020 18:37:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.15, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.15-4+0~20200224.55+debian10~1.gbpbea824, Copyright (c) 1999-2018, by Zend Technologies

 
PHPの、導入可能なバージョンを調べる。。
sudo apt-cache policy php
sudo apt policy php
 
確認結果。

yaopi@Luxeritas:~ $ sudo apt policy php

php:
  インストールされているバージョン: (なし)
  候補:               2:7.4+76+0~20200511.26+debian10~1.gbpc9beb6
  バージョンテーブル:
     2:7.4+76+0~20200511.26+debian10~1.gbpc9beb6 500
        500 https://packages.sury.org/php buster/main armhf Packages     2:7.3+69 500
        500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages

 
 
 
 
 
2. 関連サービスの停止と現行PHPの削除
 
関連サービスの停止。
sudo systemctl stop mariadb.service
sudo systemctl stop php7.3-fpm.service
sudo systemctl stop nginx.service
 
現在のPHPを削除。
sudo apt-get remove php*
 
PHPの削除結果。
 
 
 
3. 最新のPHPをインストール
 
最新のPHPをインストール。
sudo apt-get update
sudo apt-get install php php-mbstring php-gd php-mysql php-pspell php-xml php-xmlrpc php-fpm php-curl php-imagick php-zip
 
WordPressの「サイトヘルス」対策として、php-imagick と php-zip も、インストールする。
 
最新PHPのインストール結果。
 
インストールされた、新しいPHPのバージョン。
yaopi@Luxeritas:~ $ php -v
PHP 7.4.7 (cli) (built: Jun 12 2020 07:47:45) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.7, Copyright (c), by Zend Technologies
 
サーバーの「 /etc/php 」の内容。
 
 
 
4. PHPに関する設定の編集
 
変更が必要な設定ファイル。
①./etc/nginx/conf.d/default.conf 
②.php-fpm.conf 
③.pool.d/www.conf 
④.etc/php/7.4/fpm/php.ini 
 
 
①./etc/nginx/conf.d/default.conf の編集。
sudo nano /etc/nginx/conf.d/default.conf
 
location ~ .php$ {
 fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;↓
 ↓
 fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
 
②.php-fpm.conf の編集。
sudo nano /etc/php/7.4/fpm/php-fpm.conf 
 
# コメントを外して有効化
101行目:;daemonize = yes

daemonize = yes
 
③.pool.d/www.conf の編集。
sudo nano /etc/php/7.4/fpm/pool.d/www.conf
 
# user と group をnginxに変更
23行目:user = www-data → user = nginx
24行目:group = www-data → group = nginx
 
# パスを修正
36行目:listen = /run/php/php7.4-fpm.sock
 → listen = /var/run/php/php7.4-fpm.sock
 
# listen.owner と listen.group をnginxに変更
48行目:listen.owner = www-data → listen.owner = nginx
49行目:listen.group = www-data → listen.group = nginx
 
# listen.modeのコメントを外して、一部変更
50行目:;listen.mode = 0660 → listen.mode = 0666
 
341行目:;request_terminate_timeout = 0
 → request_terminate_timeout = 600
 
④.etc/php/7.4/fpm/php.ini の編集。
sudo nano /etc/php/7.4/fpm/php.ini
 
0388行目:max_execution_time = 600
0409行目:memory_limit = 512M
0694行目:post_max_size = 512M
0713行目:default_charset = “UTF-8”
0798行目:cgi.fix_pathinfo = 0
0837行目:file_uploads = On
0846行目:upload_max_filesize = 512M
0857行目:allow_url_fopen = On
0962行目:date.timezone = Asia/Tokyo
1622行目:mbstring.language = Japanese
 
 
 
5. 関連サービスの再起動と稼働確認
 
関連サービスの再起動。
mariadbのサービスを再起動。
sudo systemctl start mariadb.service
 
php-fpmのサービスを再起動。
sudo systemctl restart php7.4-fpm.service
 
所有者がnginxになっているか確認。
sudo chown -R nginx:nginx /var/run/php/php7.4-fpm.sock
 
Nginxの設定ファイルに問題が無いかチェック。
sudo nginx -t
 
Nginxの設定再読み。
sudo nginx -s reload
 
Nginxの再起動。
sudo systemctl restart nginx
 
WordPressの「サイトヘルスステータス」から、「サイトが古いバージョンの PHP を実行しています」は消える。
 
しかし、「オプションのモジュール imagick がインストールされていないか、無効化されています。」が表示されるようになった。
 
【php-imagick】をインストールしたが、
php -m  (Show compiled in modules)
コマンドで調べると、【imagick】は存在しない。
 
どうすればよいか・・・。 
 
 
 
6. imagick のインストール
 
先に、【ImageMagick】をインストールする。
 
次のコマンドを実行。
cd /tmp
rm -rf ImageMagick
git clone https://github.com/ImageMagick/ImageMagick
cd ImageMagick
./configure --without-perl
make
sudo make install
 
インストール結果を確認するために、チェック用プログラムを実行。
make check
 
次のようなエラーが出る。
 
============================================================================
Testsuite summary for ImageMagick 7.0.10
============================================================================
# TOTAL: 86
# PASS: 85
# SKIP: 0
# XFAIL: 0
# FAIL: 1
# XPASS: 0
# ERROR: 0
============================================================================
See ./test-suite.log
Please report to https://github.com/ImageMagick/ImageMagick/issues
============================================================================
make[3]: *** [Makefile:12025: test-suite.log] エラー 1
make[3]: ディレクトリ '/tmp/ImageMagick' から出ます
make[2]: *** [Makefile:12133: check-TESTS] エラー 2
make[2]: ディレクトリ '/tmp/ImageMagick' から出ます
make[1]: *** [Makefile:12346: check-am] エラー 2
make[1]: ディレクトリ '/tmp/ImageMagick' から出ます
make: *** [Makefile:12348: check] エラー 2
 
バージョン確認。
magick --version
 
バージョン確認での、エラーメッセージ。
 
magick: error while loading shared libraries: libMagickCore-7.Q16HDRI.so.7: cannot open shared object file: No such file or directory
libMagickCore-7.Q16HDRI.so.7
 
次のコマンドを入力。
sudo ldconfig /usr/local/lib
 
・・・これで、解決!。
 
 
続いて、【php-imagick】のインストール。
sudo apt-get install php-imagick
 

これで、WordPressの「サイトヘルスステータス」から、「オプションのモジュール imagick がインストールされていないか、無効化されています。」が消える。
 
 
以上。
(2020.07.06)
 

 

スポンサー リンク

 

             

 

 

 
モバイルバージョンを終了