Webサーバーでphp5.5を使用しています。ここで、pthreadを使用します。これが私のphp設定です: http://dd19010.kasserver.com/infophp.php55
このコードを実装した後.....
<?php
class AsyncOperation extends Thread
{
public function __construct($threadId)
{
$this->threadId = $threadId;
}
public function run()
{
printf("T %s: Sleeping 3sec\n", $this->threadId);
sleep(3);
printf("T %s: Hello World\n", $this->threadId);
}
}
$start = microtime(true);
for ($i = 1; $i <= 5; $i++) {
$t[$i] = new AsyncOperation($i);
$t[$i]->start();
}
echo microtime(true) - $start . "\n";
echo "end\n";
?>
...問題はこのまさにエラーです: 致命的なエラー:クラス「スレッド」が見つかりません。いくつか含める必要がありますか include_once またはそれを機能させるために類似した何か?何をしなければならないのですか?
こんにちは、私はこの問題に遭遇し、なんとかそれを解決しました。
最初に、VCバージョンのPHPおよびVC拡張機能のバージョン。私の場合、拡張機能pthreads.dll
バージョンVC14の http://windows.php.net/downloads/pecl/releases/pthreads/ but my PHP VCバージョンはVC11です。PHPのVCバージョンと一致する下位バージョンを探してください。
Second、多分あなたはPHPページでステップ3を見逃した。それはpthreadVC2.dll
別のフォルダーに。完全な手順は次のとおりです。
Phpinfo()を使用して、「PHP拡張ビルド」バージョンを確認します。これを使用できます- http:// localhost /?phpinfo = 1
PHPバージョン(32ビットまたは64ビット)とPHP拡張ビルド(現在使用されているVC11)に一致するpthreadをダウンロードします。ダウンロードにはこのリンクを使用します- http://windows.php.net/downloads/pecl/releases/pthreads/
Zipを解凍します-php_pthreads.dllを「bin\php\ext \」ディレクトリに移動します。 pthreadVC2.dllを「bin\php \」ディレクトリに移動します。 pthreadVC2.dllを「bin\Apache\bin」ディレクトリに移動します。 pthreadVC2.dllを「C:\ windows\system32」ディレクトリに移動します。
Php\php.iniを開き、extension = php_pthreads.dllを追加します
リファレンス: https://secure.php.net/manual/en/pthreads.installation.php
Phpinfoは、スレッドセーフが無効になっているphpがあることを示しています。 pthreadを使用するには、スレッドセーフなバージョンのphpをインストールする必要があります。ただし、これは現在の問題を解決する場合としない場合があります。
pthreadsVC2.dll
をWebサービスのbinディレクトリにもコピーする必要がある場合があります。
/etc/php55/fpm/
Php.iniが含まれるフォルダーを探しています。
Php.iniファイルに次の行が追加されていることを確認してください。
extension=php_pthreads.dll
1)phpファイルを1つ作成します
phpinfo(); ->実行
例:Info
PHPバージョン:5.6.31
コンパイラー:MSVC11(Visual C++ 2012)
アーキテクチャ:x64
2)ウェブサイトにアクセス:
http://windows.php.net/downloads/pecl/releases/pthreads/
例2.0.9ファイル
コンパイラ:VC11
Architecture:x64
php_pthreads-2.0.9-5.6-ts-vc11-x64。Zipダウンロード。
3)php_pthreads.dllおよびpthreadVC2.dllを抽出します。
wamp\bin\php\php5.6。31\ext \->copy php_pthreads .dll
wamp\bin\php\php5.6。31 \->copy pthreadVC2.dll
wamp\bin\Apache\apache2.4.27\bin->copy pthreadVC2.dll
4)php.iniを編集します
wamp\bin\Apache\apache2.4.27\bin \php.ini\->extension = php_pthreads.dllを追加
wamp\bin\php\php5.6。31 \php.ini\->拡張子の追加= php_pthreads.dll
5)Now Restart Wamp
私はWAMPを使用していますが、pthreadVC2.dllは代わりにApacheフォルダーに移動する必要があることがわかりました。
C:\ wamp\bin\Apache\apache2.4.9\bin
README.md で記述されているものとは異なり、PHPフォルダーに置く必要はありませんが、php_pthreads .dllは引き続き次の場所に移動する必要があります。
C:\ wamp\bin\php\php5.5.12\ext
この後、このファイルを検索します。
C:\ wamp\bin\Apache\apache2.4.9\bin\php.ini
;extension=php_pgsql.dll
の場合、extension=php_pthreads.dll
を新しい行に追加します(はい、Apacheフォルダーのbin\php.iniで、PHPフォルダー内のものではありません) )。
WAMPを終了して再起動します。 WAMPメニューのPHP> PHP extensions)、新しいphp_pthreads拡張。
デフォルトでは、スレッドはPHPに実装されておらず、phpinfoによるとロードされていないようです。モジュールのセットアップ/設定方法については、 PHPマニュアル をご覧ください。
Php.iniファイルに拡張機能を含める必要があると思います。これは、設定に表示されないためです。各ライブラリにはMySQLのような独自のセクションがあることがわかりますが、スレッドにはそのようなセクションはありません。私はスレッドを使用したことはありませんが、そこから始めるのに適した場所であるはずです。