PHP - PHP 8.0 → 8.2 - PHP アップグレード
1. 概要 「PHP 7.4」を「PHP 8.0」へ変更したときに倣って。 「PHP 8.0」をアンインストールしてから、「PHP 8.2」をインストールすることにします。 2. アンインストール 「ports」で「make deinstall clean」すると依存するものが残って、明示的に削除するのに苦労します。 よって、「pkg」で「delete」していきます。 いきなり、「-y」オプションをつける手もありますが、依存するもので、削除されても支障ない、あるいは、後で明示的にインストールす必要があることを確認しつつ、削除していきます。 pkg delete php80 とここで。 Updating database digests format: 100% No packages matched for pattern 'php80' Checking integrity... done (0 conflicting) 1 packages requested for removal: 0 locked, 1 missing と表示されてびっくり。 「phpinfo」では、「PHP Version 8.0.30」と表示されているのですが。 php --version で見ると。 PHP 8.1.27 (cli) (built: Feb 21 2024 11:59:34) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.27, Copyright (c) Zend Technologies なんと、ここれは、中身は「PHP 8.1」。 そりゃぁ、「laravel」の動きもおかしくなるわけだ。 更新を怠った、つけが回ってきているわけです。 で。 pkg delete php81 今度は。 Checking integrity... done (0 conflicting) Deinstallation has been requested for the following 31 packages (of 0 packages in the universe): Installed packages to be REMOVED: php80-composer: 2.6.6 php80-ctype: 8.0.30 php80-curl: 8.0.30 php80-dom: 8.0.30 php80-extensions: 1.1 php80-fileinfo: 8.0.30 php80-filter: 8.0.30 php80-gd: 8.0.30 php80-gettext: 8.0.30 php80-iconv: 8.0.30 php80-intl: 8.0.30_1 php80-mbstring: 8.0.30 php80-mysqli: 8.0.30 php80-opcache: 8.0.30 php80-pdo: 8.0.30 php80-pdo_sqlite: 8.0.30 php80-pecl-memcached: 3.2.0 php80-pgsql: 8.0.30 php80-phar: 8.0.30 php80-posix: 8.0.30 php80-session: 8.0.30 php80-simplexml: 8.0.30 php80-sqlite3: 8.0.30 php80-tokenizer: 8.0.30 php80-xml: 8.0.30 php80-xmlreader: 8.0.30 php80-xmlwriter: 8.0.30 php80-zlib: 8.0.30 php81: 8.1.27_1 phpmailer6: 6.8.0 smarty3-php80: 3.1.48 Number of packages to be removed: 31 The operation will free 43 MiB. Proceed with deinstalling packages? [y/N]: と表示されます。 「php81」に「php80」のモジュールが、くっついていたのね。 上記をメモして、y で答えて削除します。 おおかたの依存するモジュールは、削除されるはずでして。 後は。 pkg delete mod_php80 これは、単独でしたので、いちいちはりつけませんが。 y で答えて削除します。 3. インストール cd /usr/ports/lang/php82 make make install cd /usr/ports/lang/php82-extensions make make install cd /usr/ports/www/mod_php82 make make install cd /usr/ports/devel/php-composer make make install cd /usr/ports/www/smarty3 make make install 「phpmailer」は、「laravel」の中のものを使っているから、大丈夫なのかな? 4. 設定 vi /usr/local/etc/php.ini 下記を記述します。 (行番号は、だいぶメンテナンスしているので、、デフォルトとは、ずれていると思います) include_path = ".:/usr/local/share/smarty3-php82:/usr/local/share/phpmailer" ここで。 service apache24 configtest 問題がないことを確認して。 service apache24 restart 「phpinfo」を確認して、「PHP 8.2」で動作していることが確認できました。
pkg delete php80
Updating database digests format: 100% No packages matched for pattern 'php80' Checking integrity... done (0 conflicting) 1 packages requested for removal: 0 locked, 1 missing
php --version
PHP 8.1.27 (cli) (built: Feb 21 2024 11:59:34) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.27, Copyright (c) Zend Technologies
pkg delete php81
Checking integrity... done (0 conflicting) Deinstallation has been requested for the following 31 packages (of 0 packages in the universe): Installed packages to be REMOVED: php80-composer: 2.6.6 php80-ctype: 8.0.30 php80-curl: 8.0.30 php80-dom: 8.0.30 php80-extensions: 1.1 php80-fileinfo: 8.0.30 php80-filter: 8.0.30 php80-gd: 8.0.30 php80-gettext: 8.0.30 php80-iconv: 8.0.30 php80-intl: 8.0.30_1 php80-mbstring: 8.0.30 php80-mysqli: 8.0.30 php80-opcache: 8.0.30 php80-pdo: 8.0.30 php80-pdo_sqlite: 8.0.30 php80-pecl-memcached: 3.2.0 php80-pgsql: 8.0.30 php80-phar: 8.0.30 php80-posix: 8.0.30 php80-session: 8.0.30 php80-simplexml: 8.0.30 php80-sqlite3: 8.0.30 php80-tokenizer: 8.0.30 php80-xml: 8.0.30 php80-xmlreader: 8.0.30 php80-xmlwriter: 8.0.30 php80-zlib: 8.0.30 php81: 8.1.27_1 phpmailer6: 6.8.0 smarty3-php80: 3.1.48 Number of packages to be removed: 31 The operation will free 43 MiB. Proceed with deinstalling packages? [y/N]:
pkg delete mod_php80
cd /usr/ports/lang/php82 make make install cd /usr/ports/lang/php82-extensions make make install cd /usr/ports/www/mod_php82 make make install cd /usr/ports/devel/php-composer make make install cd /usr/ports/www/smarty3 make make install
vi /usr/local/etc/php.ini
include_path = ".:/usr/local/share/smarty3-php82:/usr/local/share/phpmailer"
service apache24 configtest
service apache24 restart