WordPress と PHP8

PHP8でWordpressは動くがjitコンパイラをONにするとバージョンアップで不幸になるお話し。

「オタクのサイト502 BADGATEWAY って出てるよ」

タイトルの通りです。

対策としては・・・

  1. opcache.jit = * tracingを off にする。
  2. もしくは別途バッチを作成し、502が出たらばphp-fpmリスタートする。
  3. オートアップデートをOFFにして手動で行う
  4. opcache.revalidate_freq=0
  5. php-fpmを使わない

1についてはjitを絶対使いたいという方に以外はコレ、即解決。

2については、JITは使いたいが商用でうるさい事言う人がいないサイトの場合はおすすめできる。

3については、めんどくさいのでおすすめしたくないが、金がもらえるならやる。(仕事でやっている方)

4については実験したがjitには関係ないようで、エラーが出た。jit側へのチェックはしてないの?

5についてはfpm敗北、apache+mod_php

2のコードは以下のような感じなのを作りCRONにセットする。

#!/usr/bin/perl
foreach (`curl -I https://www.hogehoge.co.jp/`){
        if (/^HTTP/){
                /(\d\d\d)/;
                $code = $1;
                if ($code == 502){
                        `/usr/bin/systemctl restart php-fpm`;
                }
        }
}

ななし: