PHP 5.5 から PHP 5.6 へアップグレード

CONTENTS


Lastmodified 2023-02-20 (月) 08:53:22


20220125:

影響:lang / php74のユーザー 著者:tz@FreeBSD.org

PHPのデフォルトバージョンが7.4から8.0に切り替えられました。

バイナリパッケージを使用する場合は、phpパッケージのリストを作成する必要があります
'pkg upgrade'を実行する前:

#pkg info \*php7\* > ~/installed-php-ports-list

アップグレード後、すべてのphp拡張機能があるかどうかをそのようなリストで確認してください
まだインストールされており、必要に応じて再インストールします。

mod_php74を使用する場合は、それをアンインストールしてmod_php80をインストールする必要があります。
# pkg set -o lang/php74:lang/php73

or

# pkg set -o lang/php80:lang/php73
# pkg info \*php7\* > ~/installed-php-ports-list
mod_php73-7.3.33
php73-7.3.33
php73-bcmath-7.3.33
php73-bz2-7.3.33
php73-calendar-7.3.33
php73-ctype-7.3.33
php73-curl-7.3.33
php73-dba-7.3.33
php73-dom-7.3.33
php73-enchant-7.3.33
php73-exif-7.3.33
php73-extensions-1.0
php73-fileinfo-7.3.33
php73-filter-7.3.33
php73-ftp-7.3.33
php73-gd-7.3.33
php73-gettext-7.3.33
php73-gmp-7.3.33
php73-hash-7.3.33
php73-iconv-7.3.33
php73-imap-7.3.33
php73-interbase-7.3.33
php73-intl-7.3.33
php73-json-7.3.33
php73-ldap-7.3.33
php73-mbstring-7.3.33
php73-mysqli-7.3.33
php73-odbc-7.3.33
php73-opcache-7.3.33
php73-openssl-7.3.33
php73-pcntl-7.3.33
php73-pdo-7.3.33
php73-pdo_dblib-7.3.33
php73-pdo_firebird-7.3.33
php73-pdo_mysql-7.3.33
php73-pdo_odbc-7.3.33
php73-pdo_pgsql-7.3.33
php73-pdo_sqlite-7.3.33
php73-pecl-APCu-5.1.21
php73-pecl-imagick-3.5.1
php73-pecl-pdflib-4.1.4_1
php73-pgsql-7.3.33
php73-phar-7.3.33
php73-posix-7.3.33
php73-pspell-7.3.33
php73-readline-7.3.33
php73-recode-7.3.33
php73-session-7.3.33
php73-shmop-7.3.33
php73-simplexml-7.3.33
php73-snmp-7.3.33
php73-sockets-7.3.33
php73-sodium-7.3.33
php73-sqlite3-7.3.33
php73-sysvmsg-7.3.33
php73-sysvsem-7.3.33
php73-sysvshm-7.3.33
php73-tidy-7.3.33
php73-tokenizer-7.3.33
php73-wddx-7.3.33
php73-xml-7.3.33
php73-xmlreader-7.3.33
php73-xmlrpc-7.3.33
php73-xmlwriter-7.3.33
php73-xsl-7.3.33
php73-zip-7.3.33
php73-zlib-7.3.33
phpMyAdmin-php73-4.9.7
pkg remove '*php73*'
portinstall lang/php74    ZTS
cd /usr/ports/lang/php74-extensions
make config
make install clean
portinstall mod_php74      ZTS
portinstall databases/phpmyadmin
 Nextcloud 稼働サーバだとこれも↓念為
portinstall devel/pecl-APCu
apachectrl restart

php71 to 72 with Nextcloud

pkg set -o lang/php71:lang/php72
pkg info | fgrep php71 > /tmp/php.txt

で、一応、ファイル群のインストールリストを作成

pkg remove '*php71*'

で、

pkg install `sed -e 's/-7.1.*$//' -e 's/php71/php72/' -e 's/extensions.*/extensions/' /tmp/php.txt `

するも、インストールされない。ので、

portinstall lang/php72
cd /usr/ports/lang/php72-extensions
make config

で、オプション確認して、インストール

後 /usr/ports/security/mcrypt mod_pnp72, databases/phpmyadmin

portinstall graphics/pecl-imagick

などもインストール

apachectrl restart

http://freebsd.sing.ne.jp/daily/12/06/02.html

/usr/bin/su -m www -c "php /usr/local/www/nextcloud/occ upgrade

とかすると、以下の様なエラーログがでる。

PHP Deprecated:  Directive 'track_errors' is deprecated in Unknown on line 0

Deprecated: Directive 'track_errors' is deprecated in Unknown on line 0
Nextcloud is already latest version
{"reqId":"6zvbYeW8vdGzBg7azPV7","level":3,"time":"2019-11-02T02:46:16+00:00",
"remoteAddr":"","user":"--","app":"PHP","method":"","url":"--","message":"Directive 'track_errors' is 
deprecated at Unknown#0","userAgent":"--","version":"16.0.5.1"}

と言うエラーログがでる。

対処法は、

/usr/local/etc/php.ini

track_errors = On
     ↓
;track_errors = On

Nextcloud のバージョンアップ版がでていたので、portupgrade -r --batch したら、こんなメッセージ。  

This version of Nextcloud requires at least PHP 7.0
You are currently running 5.6.37. Please update your PHP version.
root@sun1:~:18_09_12:5:17 #

ということで、

PHP 5.6 から PHP 7.x へアップグレード

drwxr-xr-x  3 root  wheel   512 Sep 29  2016 php55/
drwxr-xr-x  2 root  wheel   512 Sep 29  2016 php55-extensions/
drwxr-xr-x  3 root  wheel   512 Aug 17 10:03 php56/
drwxr-xr-x  2 root  wheel   512 Feb  1  2018 php56-extensions/
drwxr-xr-x  3 root  wheel   512 Aug  4 03:20 php70/
drwxr-xr-x  2 root  wheel   512 May 15 05:48 php70-extensions/
drwxr-xr-x  3 root  wheel   512 Aug 20 15:53 php71/
drwxr-xr-x  2 root  wheel   512 Jan 29  2017 php71-extensions/
drwxr-xr-x  3 root  wheel   512 Aug 20 15:53 php72/
drwxr-xr-x  2 root  wheel   512 Feb  1  2018 php72-extensions/

Portsには上記のバージョンがサポートされていて、72だと、Nextcloudがエラーする。具体的には、ログイン画面は出るが、ログインするとそこでエラーとなる。 で、7.2から7.0でダウングレード?した。

PHP 5.5 から PHP 5.6 へアップグレード を参考にして、56を72にしたが、72から70へは、簡単に php72 php72-extensions でuninstall して、

pkg set -o lang/php72:lang/php70

の後、残骸のモジュールを

pkg remove '*php72*'  ← コレすると、NextcloudもPhpMyAdminも消えるw

してから、portinstall した。

取り敢えず、Nextcloudは動いた。


php56 to 71

pkg remove '*php56*'

php56版のNextcloudとPhpMyAdminも消えるょ

pkg set -o lang/php56:lang/php71

y

portinstall lang/php71

for worker

php71_for_worker.PNG

check ZTS

[Wed Sep 12 06:28:52.197731 2018] [php7:crit] [pid 2077:tid 34397577216] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.
AH00013: Pre-configuration failed

 mod_php71 もお忘れ無く

cd /usr/ports/lang/php71-extensions/

make config

portinstall lang/php71-extensions --batch

portinstall databases/phpmyadmin

phpBB3 on php71

https://www.phpbb.com/community/viewtopic.php?t=2399941&p=14636006

mysql-driverは長い間廃止されており(php 5.4以降)、php 7.0で削除されているため、mysqli-driverを使う必要があります。config.phpを

// phpBB 3.2.x auto-generated configuration file
// Do not change anything in this file!
$dbms = 'phpbb\\db\\driver\\mysql';

         ↓

$dbms = 'phpbb\\db\\driver\\mysqli';

OpenPNE3

OpenPNE 3.9.2 on PHP7.1 www2.smb.net OK

Wordpress 真っ白

プラグイン「StatPress Reloaded」がFetal error

Elegant theme では、Warning: Illegal string offset in がでる。 https://wp-doctor.jp/blog/2016/03/10/wordpress-%E3%83%AF%E3%83%BC%E3%83%89%E3%83%97%E3%83%AC%E3%82%B9%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E8%A7%A3%E8%AA%AC%EF%BC%9Awarning-illegal-string-offset-in/

/usr/local/www/data/wordpress/wp-config.php に下記追加で、エラー表示抑制した

ini_set('display_errors','Off');
ini_set('error_reporting', 0 );
define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);

Total access 3541:本日 1:昨日 1

Counter: 3541, today: 1, yesterday: 1

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS