レ点腫瘍学ノート

Top / 日記 / 2021年 / 11月27日

Pukiwiki 1.5.4 RCを試してみた。

pukiwiki PHP8

199830c78b.jpg

PHP 8.1に対応したpukiwiki 1.5.4のRCがリリースされていたので、早速このサイトに適用してみました。とは言っても、このサイトのpukiwikiはスキン以外にもかなりあちこちに手を入れているのでずいぶんと苦労しました。今でもまだ正しく表示されていないページもありますが、ひとまず動く状態にはなったので一段落。

PHP 8はエラーに厳しい

PHP 7.4に比べてPHP 8の優位性はそのスピードです。PHPなどをキャッシュ化させるなどして動作速度を向上させたJIT機能の実装などで、WordpressなどのPHPで動くサイトは表示が高速化されるようです。

一方で、今までPHPは型の違いとかクオーテーションマークの抜けを見逃してくれてたのにPHP 8はそう甘くなくてPHPエラーが出まくります。本当にPHP 7.4までと比べて修正すべき点が多数あります。なかなかエラーに気がつけず修正に時間がかかった点もありました。

例えば自作のogp.inc.phpプラグイン

例えば今まで自作のOGPカード表示プラグインogp.inc.phpを使っていましたが、どうしてもこのプラグインを使用するページでエラーが出ます。これの原因は下記のようなチョットした表記ミスでした。PHP 7.4までなら見逃してくれていたのに、PHP 8は見逃してくれません。

// 誤りの例
$title = $ogpcache[title];
// 正しい例
$title = $ogpcache["title"];

当サイトで改造して使用していたプラグインをひとまず置いておきます。使用は、かならずバックアップを取ってから、自己責任でお願いします。

fileogp.inc.php //OGPカード表示プラグイン
filetweet.inc.php //ツイート引用プラグイン
fileref.inc.php //画像のlazyloadやwebP fallbackなどを実装済み

URL短縮プラグインは動く

一番心配していたURL短縮プラグインは、PHP 8.0でも動作しました。これが動かせない場合はページ名が変わってしまうところが多数出るので、ちゃんと動いてホッとしました。バリューサーバーがPHP 8.1に対応していないのでまだ試せていませんが、おそらくPHP 8.1も大丈夫でしょう。

PukiWikiのクソ長いURLをURL短縮ライブラリを組み込んで解決する!
PukiWikiだけの問題ではないが、一般的にWikiでは日本語ページのURLがクソ長くなり、特に各種SNSへ連動するときにネックになる。そこで、PukiWikiのURLを短縮する方法を検討し、実際にURL短縮ライブラリを作成して組み込んで解決したので、図入りで詳細に解説する。
https://dajya-ranger.com/pukiwiki/embed-url-shortener/

pukiwiki 1.5.4RCの短縮プラグイン用

pukiwiki 1.5.4版のlib/func.phpとlib/make_link.phpをそれぞれ短縮URL用に置き換える必要がありますので、当サイトで今回書き換えたものを置いておきます。

filefunc.php
filemake_link.php

動かなくなっているプラグイン

PHP 7.4までは問題なく使えていたのにPHP 8.0になって使えなくなってしまったプラグインもあります。

代表的なところではsonotsさんのサイトで公開されていた #contentsx や #tag プラグインが使えなくなっています。#includex も使えませんね。sonotsさんのプラグインは非常に高機能で魅力的ですが、sonotsさん自身はもうpukiwikiの開発からは身を引くと宣言されており、これらのプラグインがPHP 8対応になる見込みはほとんどないと言わざるを得ません。一括置換プラグイン(regexp.inc.php)も動かないので、現状では動作させたいときは一旦PHP 7.4環境に戻してから一括置換するなどの対応が必要です。

また便利で多用されているプラグインとしてはattachref.inc.phpも動きませんね。

対応してほしいなぁと思うプラグイン

動作しないプラグインが少なくないため、現在は一旦Pukiwiki 1.5.4のままでPHP 7.4に戻しています。

高速化の恩恵も

なぜそこまでしてPHP 8に対応するかですが、一番大きなメリットは高速化ではないでしょうか。PHP 8は様々な高速化のための工夫をこらしており、とくにJITはPHPの動作速度を大きく向上させると期待されています。

PHP 8.0登場、JIT導入で高速化 - 新機能がもりだくさん
PHPデベロップメントチームは11月26日(米国時間)、PHPの次期メジャーアップグレードバージョンとなる「PHP 8.0.0」の公開を伝えた。PHP 8.0.0にはJITが導入され、従来のバージョンと比較して実行速度の高速化が実現されている。
https://news.mynavi.jp/article/20201129-1534026/

試しにTTFB(Time to First Byte)を測定してみたところ、従来と比べて30%ほどは速くなっている印象です。1ヶ月あたりのレンタルサーバー代金が400円を切っているバリューサーバーのスタンダードプランでこれだけのTTFBが出ていれば十分ですね?

しかも来月にはバリューサーバーのスタンダードプランのレンタルサーバーはCPU・メモリ強化や全SSD化などの高速化のためのバージョンアップが予定されているので、これよりさらに速度向上する可能性があります。楽しみですね!

ちなみにPHP 7.4から8.0にしてTTFBは少し速くなっている。バリューサーバーで200ms切ることはあまりなかったが、今は東京大阪で114msと140msになっている。30〜40%短縮されている印象。 pic.twitter.com/Go7I4eepVB

— レ点.bot💉💊🧬 (@m0370) November 26, 2021

関連記事

pukiwiki 以前からPukiwiki 1.5.4 RCを導入していましたが、2022年4月にPukiwiki 1.5.4の正式版を導入しました。PHPは今のところVersion 8.1.0 RC5で動作させています。手順URL短縮プラグイン s.inc.php が標準で利用しやすく短縮URLから正式URLへの逆変換移行

この記事に対するコメント

このページには、まだコメントはありません。

お名前:


添付ファイル: fileogp.inc.php 339件 [詳細] filetweet.inc.php 299件 [詳細] fileref.inc.php 308件 [詳細] filemake_link.php 289件 [詳細] filefunc.php 275件 [詳細]

更新日:2021-11-27 閲覧数:4691 views.