Проблемы с pthreads в PHP - PullRequest
       51

Проблемы с pthreads в PHP

0 голосов
/ 02 января 2019

У меня проблема с pthreads в PHP.

Когда я запускаю apache, я вижу такую ​​ошибку:

php.exe - Entry point not found
The procedure entry point was not found _zend_hash_update@@12 in library D:\xampp\php\ext\php_pthreads.dll

Когда я выполняю скрипт в CMD, у меня появляется предупреждение:

PHP Warning:  PHP Startup: Unable to load dynamic library 'php_pthreads.dll' (tried: D:\xampp\php\ext\php_pthreads.dll

Я скопировал pthreadVC2.dll в:

C:/windows/system32
D:/xampp/php
D:/xampp/apache/bin

И я скопировал последний файл php_pthreads.dll в:

D:/xampp/ext

Я добавил в строку php.ini:

extension=php_pthreads.dll

Моя конфигурация:

  • XAMPP в Windows 10
  • PHP версия 7.3.0
  • Компилятор: MSVC15 (Visual C ++ 2017)
  • Архитектура: x86
  • Безопасность потока включена
  • API-интерфейс потоков - потоки Windows
  • php_threads 3.1.6 x86 загружено с https://windows.php.net/downloads/pecl/releases/pthreads/3.1.6/

Я пытался в php 7.2.x, и у меня была та же проблема, но с другим сообщением об ошибке запуска apache. Может быть, кто-то может мне помочь.

1 Ответ

0 голосов
/ 03 января 2019

Моя проблема была решена!

Мои советы:

  • Переход на версию 7.2.x PHP на xampp (поскольку pthreads 3.2.0 совместима с php 7.2)
  • Загрузите и установите php_pthreads-3.2.0 (который скомпилирован MSVC 15 так же, как PHP. Ссылка: https://github.com/krakjoe/pthreads/releases)
  • Удалить pthreadVC2.dll из apache / bin (потому что он не нужен)
  • Сделать копию php.ini и сохранить копию как php-cli.ini
  • Из php.ini удалить строку с расширением = php_pthreads.dll (эта строка должна существовать в php-cli.ini)

Попробуйте ввести команду CMD: php --ini и проверьте загруженный файл конфигурации. Это должно быть установлено как php-cli.ini. А также попробуйте команду: php -i и найдите pthreads в результате.

...