[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のバージョンアップは完了です。
めでたしめでたし。
ディスカッション
コメント一覧
まだ、コメントがありません