[CentOS]ローカル環境のPHPを7.2から7.4へアップグレード

Virtual Box / Vagrant / CentOS7 で構築してあるローカルのLAMP環境ですが、そろそろPHPのバージョンを7.2から7.4に上げようと画策。ちなみに遊び用Ubuntuは8.0にしているのでその話はまた改めて。
ローカル環境だし面倒なので、慎重さを最低限にして一気にやってしまおうと思います。
まずは最低限のバックアップとか何とか
ホームディレクトリでいいと思いますが、php-upgradeというフォルダを作っていくつかバックアップ的な?ことをします。
phpの本体の他にインストールする関連パッケージ類、モジュール、それから設定ファイルphp.ini、これぐらいでいいでしょう。
# フォルダ作る
$ mkdir php-upgrade && cd php-upgrade
# インストールしたパッケージ類をメモっとく
$ sudo yum list installed | grep php > php72-installed.txt
# 同様にモジュールも。
$ php -m > php72-modules.txt
# php.iniもバックアップとっとく。場所忘れてるので調べて。
$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
$ cp /etc/php.ini php72.ini
# で、こんな感じ。ll 超便利。一応、 ls -l のことね。
[php-upgrade]$ ll
合計 76
-rw-rw-r-- 1 vagrant vagrant  4453  3月 18 07:26 php72-installed.txt
-rw-rw-r-- 1 vagrant vagrant   379  3月 18 07:49 php72-modules.txt
-rw-r--r-- 1 vagrant vagrant 63232  3月 18 07:51 php72.ini
ここで、php72-installed.txtを見れば分かることなんですけど、
$ cat php72-installed.txt 
php.x86_64                            7.2.22-1.el7.remi              @remi-php72
php-PsrLog.noarch                     1.1.0-1.el7.remi               @remi      
php-bcmath.x86_64                     7.2.22-1.el7.remi              @remi-php72
php-cli.x86_64                        7.2.22-1.el7.remi              @remi-php72
php-common.x86_64                     7.2.22-1.el7.remi              @remi-php72
php-composer-ca-bundle.noarch         1.2.4-1.el7.remi               @remi      
php-composer-semver.noarch            1.5.0-1.el7.remi               @remi      
php-composer-spdx-licenses.noarch     1.5.2-1.el7.remi               @remi      
php-composer-xdebug-handler.noarch    1.3.3-1.el7.remi               @remi      
php-fedora-autoloader.noarch          1.0.0-1.el7.remi               @remi      
php-gd.x86_64                         7.2.22-1.el7.remi              @remi-php72
php-gmp.x86_64                        7.2.22-1.el7.remi              @remi-php72
php-google-recaptcha.noarch           1.2.3-1.el7.remi               @remi      
php-intl.x86_64                       7.2.22-1.el7.remi              @remi-php72
php-json.x86_64                       7.2.22-1.el7.remi              @remi-php72
php-jsonlint.noarch                   1.7.1-1.el7.remi               @remi      
php-justinrainbow-json-schema5.noarch 5.2.8-1.el7.remi               @remi      
php-mbstring.x86_64                   7.2.22-1.el7.remi              @remi-php72
php-mysqlnd.x86_64                    7.2.22-1.el7.remi              @remi-php72
php-paragonie-random-compat.noarch    2.0.18-1.el7.remi              @remi      
php-password-compat.noarch            1.0.4-1.el7.remi               @remi      
php-pdo.x86_64                        7.2.22-1.el7.remi              @remi-php72
php-pecl-zip.x86_64                   1.15.4-1.el7.remi.7.2          @remi-php72
php-phpmyadmin-motranslator.noarch    4.0-1.el7.remi                 @remi      
php-phpmyadmin-shapefile.noarch       2.1-1.el7.remi                 @remi      
php-phpmyadmin-sql-parser.noarch      4.3.2-1.el7.remi               @remi      
php-phpseclib.noarch                  2.0.21-1.el7.remi              @remi      
php-process.x86_64                    7.2.22-1.el7.remi              @remi-php72
php-psr-container.noarch              1.0.0-1.el7.remi               @remi      
php-recode.x86_64                     7.2.22-1.el7.remi              @remi-php72
php-seld-phar-utils.noarch            1.0.1-2.el7.remi               @remi      
php-symfony-browser-kit.noarch        2.8.51-2.el7.remi              @remi      
php-symfony-class-loader.noarch       2.8.51-2.el7.remi              @remi      
php-symfony-common.noarch             2.8.51-2.el7.remi              @remi      
php-symfony-config.noarch             2.8.51-2.el7.remi              @remi      
php-symfony-console.noarch            2.8.51-2.el7.remi              @remi      
php-symfony-css-selector.noarch       2.8.51-2.el7.remi              @remi      
php-symfony-debug.noarch              2.8.51-2.el7.remi              @remi      
php-symfony-dependency-injection.noarch
php-symfony-dom-crawler.noarch        2.8.51-2.el7.remi              @remi      
php-symfony-event-dispatcher.noarch   2.8.51-2.el7.remi              @remi      
php-symfony-expression-language.noarch
php-symfony-filesystem.noarch         2.8.51-2.el7.remi              @remi      
php-symfony-finder.noarch             2.8.51-2.el7.remi              @remi      
php-symfony-http-foundation.noarch    2.8.51-2.el7.remi              @remi      
php-symfony-http-kernel.noarch        2.8.51-2.el7.remi              @remi      
php-symfony-polyfill.noarch           1.12.0-1.el7.remi              @remi      
php-symfony-process.noarch            2.8.51-2.el7.remi              @remi      
php-symfony-var-dumper.noarch         2.8.51-2.el7.remi              @remi      
php-symfony-yaml.noarch               2.8.51-2.el7.remi              @remi      
php-symfony3-common.noarch            3.4.30-1.el7.remi              @remi      
php-symfony3-translation.noarch       3.4.30-1.el7.remi              @remi      
php-twig.noarch                       1.42.3-1.el7.remi              @remi      
php-twig-extensions.noarch            1.5.4-1.el7.remi               @remi      
php-xml.x86_64                        7.2.22-1.el7.remi              @remi-php72
phpMyAdmin.noarch                     4.9.0.1-1.el7.remi             @remi
PHP7.2をインストールする際に利用したリポジトリは @remiと@remi-php74だけ(remi-safeは明示的に殺したりしたはずだし)なので、
インストールする際にはenablerepoでremiとremi-php74を明示的に指定したのでいいかな。
PHP7.2を削除して、PHP7.4をインストール
phpパッケージの削除
$ sudo yum remove php-*
PHP7.4本体のインストール
$ sudo yum install --enablerepo=remi,remi-php74 php
読み込んだプラグイン:fastestmirror
remi                                                                                                                                                                                 | 3.0 kB  00:00:00     
remi/primary_db                                                                                                                                                                      | 2.9 MB  00:00:15     
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * remi: remi.mirror.digitalpacific.com.au
 * remi-php74: remi.mirror.digitalpacific.com.au
 * updates: ftp.nara.wide.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php.x86_64 0:7.4.16-1.el7.remi を インストール
--> 依存性の処理をしています: php-cli(x86-64) = 7.4.16-1.el7.remi のパッケージ: php-7.4.16-1.el7.remi.x86_64
--> 依存性の処理をしています: php-common(x86-64) = 7.4.16-1.el7.remi のパッケージ: php-7.4.16-1.el7.remi.x86_64
--> 依存性の処理をしています: php-sodium(x86-64) = 7.4.16-1.el7.remi のパッケージ: php-7.4.16-1.el7.remi.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ php-cli.x86_64 0:7.4.16-1.el7.remi を インストール
---> パッケージ php-common.x86_64 0:7.4.16-1.el7.remi を インストール
--> 依存性の処理をしています: php-json(x86-64) = 7.4.16-1.el7.remi のパッケージ: php-common-7.4.16-1.el7.remi.x86_64
---> パッケージ php-sodium.x86_64 0:7.4.16-1.el7.remi を インストール
--> 依存性の処理をしています: libsodium.so.23()(64bit) のパッケージ: php-sodium-7.4.16-1.el7.remi.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ libsodium.x86_64 0:1.0.18-1.el7.remi を インストール
---> パッケージ php-json.x86_64 0:7.4.16-1.el7.remi を インストール
--> 依存性解決を終了しました。
依存性を解決しました
======================================================================================================================
 Package                                         アーキテクチャー                            バージョン                                               リポジトリー                                     容量
======================================================================================================================
インストール中:
 php                                             x86_64                                      7.4.16-1.el7.remi                                        remi-php74                                      3.4 M
依存性関連でのインストールをします:
 libsodium                                       x86_64                                      1.0.18-1.el7.remi                                        remi                                            148 k
 php-cli                                         x86_64                                      7.4.16-1.el7.remi                                        remi-php74                                      5.2 M
 php-common                                      x86_64                                      7.4.16-1.el7.remi                                        remi-php74                                      1.2 M
 php-json                                        x86_64                                      7.4.16-1.el7.remi                                        remi-php74                                       71 k
 php-sodium                                      x86_64                                      7.4.16-1.el7.remi                                        remi-php74                                       83 k
トランザクションの要約
======================================================================================================================
インストール  1 パッケージ (+5 個の依存関係のパッケージ)
総ダウンロード容量: 10 M
インストール容量: 42 M
Is this ok [y/d/N]: y
Downloading packages:
(1/6): libsodium-1.0.18-1.el7.remi.x86_64.rpm                                                                                                                                        | 148 kB  00:00:01     
(2/6): php-sodium-7.4.16-1.el7.remi.x86_64.rpm                                                                                                                                       |  83 kB  00:00:00     
(3/6): php-json-7.4.16-1.el7.remi.x86_64.rpm                                                                                                                                         |  71 kB  00:00:03     
(4/6): php-common-7.4.16-1.el7.remi.x86_64.rpm                                                                                                                                       | 1.2 MB  00:00:07     
(5/6): php-7.4.16-1.el7.remi.x86_64.rpm                                                                                                                                              | 3.4 MB  00:00:07     
(6/6): php-cli-7.4.16-1.el7.remi.x86_64.rpm                                                                                                                                          | 5.2 MB  00:00:11     
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                                        895 kB/s |  10 MB  00:00:11     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : php-json-7.4.16-1.el7.remi.x86_64                                                                                                                                           1/6 
  インストール中          : php-common-7.4.16-1.el7.remi.x86_64                                                                                                                                         2/6 
  インストール中          : php-cli-7.4.16-1.el7.remi.x86_64                                                                                                                                            3/6 
  インストール中          : libsodium-1.0.18-1.el7.remi.x86_64                                                                                                                                          4/6 
  インストール中          : php-sodium-7.4.16-1.el7.remi.x86_64                                                                                                                                         5/6 
  インストール中          : php-7.4.16-1.el7.remi.x86_64                                                                                                                                                6/6 
  検証中                  : php-7.4.16-1.el7.remi.x86_64                                                                                                                                                1/6 
  検証中                  : libsodium-1.0.18-1.el7.remi.x86_64                                                                                                                                          2/6 
  検証中                  : php-common-7.4.16-1.el7.remi.x86_64                                                                                                                                         3/6 
  検証中                  : php-sodium-7.4.16-1.el7.remi.x86_64                                                                                                                                         4/6 
  検証中                  : php-json-7.4.16-1.el7.remi.x86_64                                                                                                                                           5/6 
  検証中                  : php-cli-7.4.16-1.el7.remi.x86_64                                                                                                                                            6/6 
インストール:
  php.x86_64 0:7.4.16-1.el7.remi                                                                                                                                                                            
依存性関連をインストールしました:
  libsodium.x86_64 0:1.0.18-1.el7.remi    php-cli.x86_64 0:7.4.16-1.el7.remi    php-common.x86_64 0:7.4.16-1.el7.remi    php-json.x86_64 0:7.4.16-1.el7.remi    php-sodium.x86_64 0:7.4.16-1.el7.remi   
完了しました!
本体インストール中に依存性によりいくつかのパッケージが同時にインストールされます。
- 
php-json
 - 
php-common
 - 
php-cli
 - 
libsodium
 - 
php-sodium
 
関連パッケージの選定とインストール
では、上記と先のphp72-installed.txt などなどを踏まえて足りないものを入れます。
- php-gd
 - php-mbstring
 - php-mysqlnd
 - php-pdo
 - php-google-recaptcha
 - php-xml
 - php-xmlrpc
 - php-pecl
 - php-pecl-mcrypt
 - php-pecl-mysql
 - phpMyAdmin
 
$ sudo yum -y install --enablerepo=remi,remi-php74 php-gd php-mbstring php-mysqlnd php-pdo php-google-recaptcha php-xml php-xmlrpc php-pecl php-pecl-mcrypt php-pecl-mysql
依存性関連で
- libmcrypt
 - oniguruma5
 - php-fedora-autoloader
 
もインストールされました。
oniguruma ってのは初耳だったんですけど、なんでも正規表現のライブラリだそうです。
確認
$ php -v
PHP 7.4.16 (cli) (built: Mar  2 2021 10:35:17) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
$ sudo yum list installed | grep php
oniguruma5php.x86_64                 6.9.6-1.el7.remi                @remi      
php.x86_64                           7.4.16-1.el7.remi               @remi-php74
php-cli.x86_64                       7.4.16-1.el7.remi               @remi-php74
php-common.x86_64                    7.4.16-1.el7.remi               @remi-php74
php-fedora-autoloader.noarch         1.0.1-2.el7.remi                @remi      
php-gd.x86_64                        7.4.16-1.el7.remi               @remi-php74
php-google-recaptcha.noarch          1.2.4-1.el7.remi                @remi      
php-json.x86_64                      7.4.16-1.el7.remi               @remi-php74
php-mbstring.x86_64                  7.4.16-1.el7.remi               @remi-php74
php-mysqlnd.x86_64                   7.4.16-1.el7.remi               @remi-php74
php-pdo.x86_64                       7.4.16-1.el7.remi               @remi-php74
php-pecl-mcrypt.x86_64               1.0.4-1.el7.remi.7.4            @remi-php74
php-pecl-mysql.x86_64                1.0.0-0.23.20190415.d7643af.el7.remi.7.4
                                                                     @remi-php74
php-sodium.x86_64                    7.4.16-1.el7.remi               @remi-php74
php-xml.x86_64                       7.4.16-1.el7.remi               @remi-php74
php-xmlrpc.x86_64                    7.4.16-1.el7.remi               @remi-php74
関連パッケージは以前よりだいぶん減ったけど、前はいらないものも随分入ってしまっていたので、これでスッキリしていい感じだと思います!!
あとはphpMyAdminですが、これは手動でやるつもり。
これで、ブラウザで何かこの環境のワードプレスを動かしてみます。
ある程度プラグインを使っているサイトを見てみましたが、問題無しでした。
7.2 → 7.4 ぐらいでは大して問題は起きにくいのでしょう!
phpinfoについて
phpinfo();のみを記述したファイルを作ってinfo.phpなどとして確認するという、まあよくやるアレですが、やってみても表示されるバージョンが上がってないということがあります。ありましたww
多分キャッシュなんですけど、いったん外にでてvagrant reloadしてやれば、まあ治る。
phpMyAdminのインストール
手動でやります。
PHPのバージョンが7.4に上がったので、phpMyAdminはバージョン4.9から5に上げます。
で、公式(https://www.phpmyadmin.net/downloads/)にアクセスしたら、5.1.0がイケるようなので、それにします。
Current version compatible with PHP 7.1 and newer and MySQL/MariaDB 5.5 and newer.
で、リリース日が2021-02-24となってるのでPHP8.0でもいけるんだろうか?
ここを読んだところでは、php8.0への言及は1行だけ
Fix for several PHP 8 warnings or errors, giving this release full compatibility with PHP 8
マジか?さらっとfull compatibility達成て書いてるけど。
とりあえず、サクッとやってしまいましょう。
$ cd /var/www/html/
$ sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.1.0/phpMyAdmin-5.1.0-all-languages.tar.gz
--2021-03-18 17:46:02--  https://files.phpmyadmin.net/phpMyAdmin/5.1.0/phpMyAdmin-5.1.0-all-languages.tar.gz
files.phpmyadmin.net (files.phpmyadmin.net) をDNSに問いあわせています... 89.187.160.52
files.phpmyadmin.net (files.phpmyadmin.net)|89.187.160.52|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 13687393 (13M) [application/octet-stream]
`phpMyAdmin-5.1.0-all-languages.tar.gz' に保存中
100%[==================================================>] 13,687,393  1.70MB/s 時間 9.4s   
2021-03-18 17:46:11 (1.39 MB/s) - `phpMyAdmin-5.1.0-all-languages.tar.gz' へ保存完了 [13687393/13687393]
$ sudo tar xvfz phpMyAdmin-5.1.0-all-languages.tar.gz
$ ls | grep phpMyAdmin
phpMyAdmin-5.1.0-all-languages
phpMyAdmin-5.1.0-all-languages.tar.gz
# アーカイブは削除、解凍済みのフォルダをリネーム
$ sudo rm -rf phpMyAdmin-5.1.0-all-languages.tar.gz & sudo mv phpMyAdmin-5.1.0-all-languages phpMyAdmin
とりあえずこれでアクセスしてみま。
blowfish_secretのアレをアレしたらOK!!!
一応参考まで:phpMyAdminの手動インストール](https://blog.at-human.com/2021/03/vagrant-ubuntu/#toc_id_7)。
はい、これでとりあえずPHPのバージョンアップは完了です。
めでたしめでたし。






ディスカッション
コメント一覧
まだ、コメントがありません