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