Multithreading mit pthread in PHP ?  Kein Problem. Sollte man zumindest denken. Leider ist es hier so wie so oft, es hakt an Kleinigkeiten. Leider können gerade diese Dinge unheimlich Zeit kosten.

Achtung: Stand 2018/04 verhindert ein Bug unter Windows pthread mit PHP 7.x !

Begonnen wird mit dem download der korrekten Version:
http://windows.php.net/downloads/pecl/releases/pthreads/

Nur leider stellt sich dann, wenn man nach der readme vorgeht schnell Ernüchterung ein. Fehlermeldung bezüglich php_pthreads.dll und/oder phtreadVC2.dll.

Das Archiv das man bei php erhält, hat für den Windowsnutzer nur 3 interessante Dateien:

  • php_pthreads.dll
  • pthreadVC2.dll
  • README.md

Die Installationsanweisung ist kurz, und nicht vollständig:

##### Simple Windows Installation

* Add `pthreadVC2.dll` (included with the Windows releases) to the same directory as `php.exe` eg. `C:\xampp\php`
* Add `php_pthreads.dll` to PHP extention folder eg. `C:\xampp\php\ext`

Ein wichtiges Detail fehlt:

php_threads.dll bzw. pthreadVC2.dll muss entweder der Apache konfiguration hinzugefügt werden, oder in xampp/apache/bin kopiert werden. Leider ist das nirgendwo erwähnt, findet sich aber wenn man lang genug nach diesem Problem bei Google sucht.

Die Vollständige Installation lautet demnach:

„pthreadVC2.dll“ nach „/xampp/php/“ kopieren
„php_pthreads.dll“ nach „/xampp/php/ext“ kopieren
„pthreadVC2.dll“ nach „/xampp/apache/bin“ kopieren
„php_pthreads.dll“ nach „/xampp/apache/bin“ kopieren

in /php/php.ini die Zeile “ extension=php_pthreads.dll“ hinzufügen

Dann funktionierts auch mit den Threads 😉


0 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert