Я использую php5.5 на своем веб-сервере. Теперь я хочу использовать pthreads. Вот мой php config: 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"; ?>
… проблема в этой самой ошибке: Fatal error: Class 'Thread' не найден . Должен ли я включать некоторые include_once или что-то подобное, чтобы заставить его работать? Что мне нужно сделать??
Ваша phpinfo показывает, что у вас есть php с отключением потока. Вам нужно установить версию php, которая является потокобезопасной для использования pthreads. Это может или не может исправить вашу текущую проблему.
Возможно, вам придется скопировать файл pthreadsVC2.dll
в каталог bin вашего веб-сервиса.
/etc/php55/fpm/
Вы ищете папку с php.ini в ней.
Убедитесь, что в файле php.ini добавлена строка:
extension=php_pthreads.dll
Привет, я столкнулся с этой проблемой и смог ее решить.
Сначала рассмотрим версию VC вашего PHP и версию расширения VC. В моем я прикреплял расширение pthreads.dll
с версией VC14 от http://windows.php.net/downloads/pecl/releases/pthreads/, но моя версия VC VC11. Ищите более низкую версию, соответствующую версии VC вашего PHP.
Во-вторых , возможно, вы пропустили шаг №3 на странице PHP. В нем указано, что вам нужно скопировать pthreadVC2.dll
в другую папку. Вот полная инструкция.
Узнайте, что такое ваша версия PHP Extension Build, используя phpinfo (). Вы можете использовать это : http: // localhost /? Phpinfo = 1
Загрузите pthreads, которые соответствуют вашей версии php (32-разрядная или 64-разрядная версия) и расширению php-расширения (в настоящее время используется VC11). Используйте эту ссылку для загрузки – 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 и добавьте расширение = php_pthreads.dll
Ссылка: https://secure.php.net/manual/en/pthreads.installation.php
Я использую 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 \ внутр
После этого выполните поиск в этом файле:
C: \ WAMP \ Bin \ Apache \ apache2.4.9 \ Bin \ php.ini
For ;extension=php_pgsql.dll
и добавьте extension=php_pthreads.dll
в новую строку после него (да, это bin \ php.ini в папке Apache, а не в папке PHP).
Выйдите из WAMP и запустите его снова. Теперь вы должны увидеть в меню WAMP в разделе PHP> PHP extensions , новое расширение php_pthreads .
Я думаю, вам нужно включить расширения в файл php.ini, потому что я не вижу его в конфиге. Вы можете видеть, что каждая библиотека имеет свой собственный раздел, такой как MySQL, но для потоков не существует. Я никогда не использовал темы, но это должно быть хорошим местом для начала.
По умолчанию потоки не реализованы в PHP, и, согласно вашей phpinfo, она не загружается. Ознакомьтесь с руководством по настройке и настройке модуля.