finfo_fileメソッドを使用すると、PHPでsegfaultが発生するようです。

finfo_fileメソッドを使用すると、PHPでsegfaultが発生するようです。

奇妙なエラーが発生しました。 Fileinfoを使用してファイルのMIMEタイプを確認したい場合(http://www.php.net/manual/en/function.finfo-file.php)拡張、PHP(またはApache?以下を参照)がクラッシュしているようです。

パスワード:

<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE, null);
$info = finfo_file($finfo, "index.php");

apache2を介してWebで開くと、エラーログにsegfaultが報告されます。

[Wed Oct 23 14:32:25 2013] [notice] child pid 29084 exit signal Segmentation fault (11)

たとえば、CLIで実行すると、php -q test.php出力は良好です。

php -v
PHP 5.5.4-pl0-gentoo (cli) (built: Oct 18 2013 19:11:02)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies

/usr/sbin/apache2 -v
Server version: Apache/2.2.25 (Unix)
Server built:   Sep 20 2013 14:16:11

どんな手がかりがありますか?

答え1

解決策を試してみませんか?https://bugs.gentoo.org/show_bug.cgi?id=467756同様の問題があるようです。

apache2をmod_phpからphp-fpmを使用して切り替えて問題を解決した方法の追加の説明:

  1. /etc/portage/package.useを編集し、dev-lang/phpに "fpm"有効フラグを追加します。

  2. 「emerge php」でphpを再マージしてください。

  3. 「emerge mod_fastcgi_handler」で fastcgi モジュールをインストールします。

  4. /etc/conf.d/apache2 を編集して「-D FASTCGI_HANDLER」を追加し、「-D PHP5」を削除します。

  5. /etc/php/fpm-php5.4/php-fpm.conf を編集し、「listen=/var/run/php-fpm.sock」を介してソケットを使用するように「listen」ステートメントを変更します。


  6. /etc/apache2/modules.d/20_mod_fastcgi_handler.confを編集し、最後にAddHandlerを追加します。 fcgi:/var/run/php-fpm.sock .php .php5 .phtml .phps DirectoryIndex index.php index.phtml

  7. Apacheを再起動してphp-fpmを起動します

この手順を使用してphp-fpmに切り替えた後、Apacheの競合はすぐに消え、サンプルスクリプトが期待どおりに機能しました。だから私はmod_phpが犯人だと思う。

または、apr-utilsにUSE = nssを追加する必要があります。

PS問題のプログラムバージョンだけでなく、使用フラグも表示します。

PPS PHPにapache2使用フラグを追加することを忘れないでください(デフォルトではオフ)

関連情報