花原です。

最近(1〜2週間以内) portsツリー を最新にして、古い apache24 + mod_php74 
の環境を apache24 + mod_php81 にアップデイトしようとしました。
そうしたら i386 のマシンで core を吐いてクラッシュするようになりました。

結論から言うと mod_php81を gcc(gcc12)でコンパイルすればクラッシュしなくなりました。

    # pkg install gcc12
    # cd /usr/ports/www/mod_php81
    # make CC=/usr/local/bin/gcc12 install 

私は、ports-mgmt/portconf を使っているので、/usr/local/etc/ports.conf に
次の行を加え、「portupgrade www/mod_php81」でビルドしました。

    www/mod_php81: CC=/usr/local/bin/gcc12

gcc12を使うのは、www/mod_php81 のみで、他のモジュールには FreeBSD標準の
コンパイラを使っていることになります。


-----
以下、試行錯誤の記録。

クラッシュを確認した環境は以下とおり。

    FreeBSD 12.4-RELEASE-p2 (i386)
    FreeBSD 13.2-RELEASE (i386)

amd64 では問題は起きてません。

最初、/var/log/httpd-error.log に出力が出る前に死ぬので原因がわかりませ
んでした。 /var/log/messages には (core dumped) と記録されていました。
apache24 の httpd.conf設定ファイルで、libphp.so をロードしている行をコメ
ントアウトしたら正常に立ち上がったので、mod_phpが悪いのは間違いないなー
と思ってました。

そうこうしながら Web検索してたら、以下の記事が見つかりました。

    apache24 with mod_php82 won't start up.
    
https://forums.freebsd.org/threads/apache24-with-mod_php82-wont-start-up.86779/
    
https://forums.freebsd.org/threads/apache24-with-mod_php82-wont-start-up.86779/page-2#post-585497

この _martin さんの記事がビンゴ だったようです。

databases/postgresql*-server も i386環境だとコンパイラにgcc使うので、何
らかの問題があるのかもしれません。


Portsは、自前でソースからビルドしてるので、FreeBSDのバイナリパッケージだ
と問題が起こらないのかどうかは判りません。

以上、参考までにお知らせいたします。

-- 
Yoshihiro Hanahara <hanah...@meiko.co.jp>


Reply via email to