PHP5から、PHP7に乗り換えるときに、いろいろと動かなくなって苦労した記憶がある。今度は、今年の秋にPHP8がリリースされる。PHP7との互換性は、多少損なわれているそうなので、また、移行の苦しみがあるようだ。
自分で、PHPを使ったプログラムは開発していないけれど、PHPのアプリケーションは使っているので、しばらくは対応待ち。そのあとで、移行がある。そして、また、微妙に動かない部分が出たり、忘れた頃に不具合が見つかったりするのだろう。PHP8が出たあとの移行は、すんなりと行くだろうか。
PHP5から、PHP7に乗り換えるときに、いろいろと動かなくなって苦労した記憶がある。今度は、今年の秋にPHP8がリリースされる。PHP7との互換性は、多少損なわれているそうなので、また、移行の苦しみがあるようだ。
自分で、PHPを使ったプログラムは開発していないけれど、PHPのアプリケーションは使っているので、しばらくは対応待ち。そのあとで、移行がある。そして、また、微妙に動かない部分が出たり、忘れた頃に不具合が見つかったりするのだろう。PHP8が出たあとの移行は、すんなりと行くだろうか。
WordPressのcocoonテーマで、下記のエラーが表示される。
/wp-content/themes/cocoon-master/lib/open-graph.php(356)
調べると、curlを使った処理でエラーになっていた。PHPのモジュールでcurlが入っているかみたところ、インストールされていなかった。FreeBSDのパッケージからcurlのモジュールをインストールして、apacheを再起動した。これで、解決した。
pkg install php73-curl
PHPをPHP5.6からPHP7.3に上げたところ、Wordpressで以下のエラーが発生した。
Fatal error: Uncaught Error: Call to undefined function xml_parser_create()
PHPのオプションで、xmlに関するモジュールがインストールされていないことが原因だった。FreeBSDでパッケージからインストールしているので、下記のようにpkgコマンドでインストール。その後、Apacheを再起動し、無事にエラーは解消。
pkg install php73-xml-7.3.8
PHP5.6からPHP7.3にアップデートしたところ、pukiwikiでエラーが発生。このエラーの前に、pukiwikiはPHP7対応版の1.5.2にバージョンアップした。アップグレード用のパッチを当てたが、それでも下記のエラーが発生した。
Parse error: syntax error, unexpected 'new' (T_NEW) in /usr/xxxxxx/xxxxxx/wiki/plugin/rssreader.inc.php on line 56
エラーを調べてみると、PHP7では「NEWで生成されたオブジェクトは参照として代入できない」ので、エラーになっていることが判明。とりあえず、動作するようにしたかったので、参照渡しをやめるようにコードを変更した。
変更した記述は、下記。
//変更前 //$r =& new XML_RSS($rdf); //変更後 =& を = に変更。エラー原因の参照渡しをやめている。 $r = new XML_RSS($rdf);
参考
https://www.shirokuma-systems.com/seisaku/wordpress/284.html
https://www.slideshare.net/yohgaki/php56php70