#author("2022-02-15T09:20:42+09:00","default:kuji","kuji")
#author("2023-02-20T08:53:22+09:00","default:kuji","kuji")
[[PHP 5.5 から PHP 5.6 へアップグレード]]

CONTENTS 
#contents
----
Lastmodified &lastmod;
----
*phpBB3 3.3.10 [#cda0ab04]
https://www.phpbb.com/downloads/

*8.0から7.4 [#i79edca8]
 pkg set -o lang/php80:lang/php74   y
 pkg info \*php8\* > ~/installed-php-ports-list
 
 pkg remove '*php80*'      y
 portinstall lang/php74    ZTS
 
 cd /usr/ports/lang/php74-extensions && make config
 portinstall lang/php74-extensions
 portinstall mod_php74      ZTS 
 portinstall databases/phpmyadmin devel/pecl-APCu graphics/pecl-imagick --batch && apachectl restart


* mod_php80 [#p42a278b]
 ===>   NOTICE:
 ******************************************************************************
 
 If you are building PHP-based ports in poudriere(8) or Synth with ZTS enabled,
 add WITH_MPM=event to /etc/make.conf to prevent build failures.
 
 ******************************************************************************

This port is deprecated; you may wish to reconsider installing it:


*7.4から8.0 [#vb55436a]

 pkg set -o lang/php74:lang/php80   y
 # pkg info \*php7\* > ~/installed-php-ports-list

 pkg remove '*php74*'      y
 portinstall lang/php80    ZTS
 cd /usr/ports/lang/php80-extensions
 make config
 make install clean
 portinstall mod_php80      ZTS
 portinstall databases/phpmyadmin
  Nextcloud 稼働サーバだとこれも↓念為
 portinstall devel/pecl-APCu
 portinstall graphics/pecl-imagick
 
 apachectrl restart

----


 pkg set -o lang/php74:lang/php80   y
 pkg info \*php7\* > ~/installed-php-ports-list
 
 pkg remove '*php74*'      y
 portinstall lang/php80    ZTS
 
 cd /usr/ports/lang/php80-extensions && make config
 portinstall lang/php80-extensions --batch
 portinstall mod_php80      ZTS 
 portinstall databases/phpmyadmin devel/pecl-APCu graphics/pecl-imagick --batch && apachectl restart


* 20220125: [#e01919f9]
** 影響:lang / php74のユーザー  著者:tz@FreeBSD.org [#zeb7bea0]

 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 [#jd4b2228]

 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 へアップグレード [#i5f23774]

 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 [#i96a2f59]

** pkg remove '*php56*' [#l8377851]

php56版のNextcloudとPhpMyAdminも消えるょ

** pkg set -o lang/php56:lang/php71 [#ec19cc91]

y

** portinstall lang/php71 [#p3992a79]

for worker

&ref(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 もお忘れ無く [#k7c6f08e]
**  cd /usr/ports/lang/php71-extensions/ [#a253823f]
*** make config [#ce0b7277]
** portinstall lang/php71-extensions --batch [#u173f376]
** portinstall databases/phpmyadmin [#ha45902c]



* phpBB3 on php71 [#m1f9d0ad]

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 [#p1f14f1e]

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




*Wordpress 真っ白 [#kb65b116]
プラグイン「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 &counter(total);:本日 &counter(today);:昨日 &counter(yesterday);
#counter([total|today|yesterday]);

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS