Nextcloud on PHP8 の懸念点解消

FreeBSD上でNextcloudをphp-fpmで動かしているときの 謎の問題2つが解決した。

  1. php-fpmのメインプロセスがCPU率100%で貼り付き続けたり、 php occ をコマンドライン起動すると何回かに一度CPU100%で 処理が一切進まなくなる。
  2. Snappymailで草稿を書くときにSubjectに日本語があると 「保存に失敗しました」と出て保存できない。

1つ目の方は、コマンドラインで ktrace -i php occ して 立ち往生するときを捕まえて kdump したところ、 sched_yield を無限に繰り返していることがわかり、それを手がかりに 検索したらFreeBSD13の libomp のせいとわかり、それをリンクしている imagick.so を -lomp しないようにビルドし直したら直った。 imagickのほうはconfigureで有無を言わさずリンクしちゃうので、 configureが終わったら手で config.h から HAVE_LIBOMP と HAVE_OMP_PAUSE_RESOURCE_ALL をコメントアウトし、 Makefile から -lomp を外す必要がある。

2つ目の方は php 8.x 本体のconfigure時に --without-iconv をつけて解決。