2012-12-29 41 views
5

Pthreads PHP extensionに問題があります。私はZTSを有効にしたPHP(--enable-maintainer-zts)をコンパイルし、peclを使ってpthreadをインストールし、手動でコンパイルを試みました。UbuntuでPthreads PHP拡張機能を使用する方法

私は実際にそれを使用する方法を知らないようです。私は他の組み込みクラスと同じようにPHPでThreadクラスを使用できると仮定しましたが、PHPはそれを認識しないため運がありません。 POSIX関数が動作するようです。

私はmod_php 5.4.6でUbuntu 12.10 Server 64ビットを使用しています。

+0

私はapacheエラーログを調べましたが、pthreads.soは未知のシンボルがあるため読み込めないようです:sapi_globals_id ... pthreadsを静的な拡張としてコンパイルしようとしましたが、違いはありません。 –

+0

ドキュメントには5.3用のことが明記されています。 「5.6.4」は「5.4.6」を意味すると思いますか?もしそうなら、5.4から5.3に行って、それがうまくいくかどうかを見てください。もしそうであれば、5.4のサポートについて、メンテナーに問題を提出したいでしょう。 – Charles

+0

ええ、それはタイプミスで、私はPHP 5.4.6を実行しています。現時点では、pthreadsが稼働しています。 –

答えて

3

エクステンションクラスにアクセスできない場合、ロードされません。

私は、構成ラインが不正であると回答したバグレポートを開いたと思います。

使用するconfigure行は次のとおりです。

./configure --enable-pthreads --enable-maintainer-zts 

上記のコマンドはDSOとしてpthreadsを構築します。

./configure --enable-pthreads=static --enable-maintainer-zts 

上記のコマンドは、PHPに静的にpthreadを構築します。

両方とも、5.3,5.4および5.5で等しくサポートされています。あなたは、あなたがあなたのPHP実行ファイルが/usr/binである場合、例えば、特定の--prefixを使用する必要があり、あなたのシステムのインストールを上書きしている場合

また、(あなたが確認することができた「とPHP」)、そして--prefix=/usrお使いのシステムのインストールを上書きします。

古いインストールを削除します(ソースがまだ利用可能な場合はアンインストールしてください)。もう一度やり直して、システムのインストールを上書きするか、完全に分離してください。

問題を解決した時点でバグレポートを更新してください。

+0

まあ、私はUbuntu全体を再インストールして、あなたが提案したコマンド(--enable-pthreads = static)でPHPを静的に構築しました。この時点では何の問題もないので、PHP構成に不具合があったようです。私を助けてくれてありがとう。 –

+0

インストールされているすべてのPHP(CGI、CLI、SAPI/Apache)でZTSを有効にする必要はありますか?または、CLI専用のpthreadを使用する予定がある場合は、他のものに対してZTSを無効にしてもかまいませんか? – robguinness

+0

pthreadsがロードされている場所はZTSが必要です。もしあなたが望むなら、pthreadsをサポートするPHPの独立したインスタンスを構築することができます... –

関連する問題