Назад | Перейти на главную страницу

SAPI apache2handler не поддерживается потоками pthreads

Уже несколько недель я не могу установить pthreads. Я собираюсь перечислить журналы ошибок, а затем перечислю свои параметры конфигурации.
Я получаю следующие ошибки:
(Журнал ошибок Apache)

SAPI apache2handler не поддерживается потоками pthreads в Unknown в строке 0

apachectl -V вывод

Server version: Apache/2.4.18 (Unix) Server built: Jan 10 2016 14:54:48 Server's Module Magic Number: 20120211:52 Server loaded: APR 1.4.8, APR-UTIL 1.5.2 Compiled using: APR 1.4.8, APR-UTIL 1.5.2 Architecture: 64-bit Сервер MPM: рабочий threaded: yes (fixed thread count) forked: yes (variable process count)

Между тем журналы ошибок PHP:
(Журнал ошибок PHP)
bin / php -m
PHP Warning: Module 'pthreads' already loaded in Unknown on line 0 [PHP Modules] Core date pcre pthreads Reflection SPL standard

Нет другого ini файлы, которые загружают extension=pthreads.so, Все эти ошибки возникают только тогда, когда я включаю extension=pthreads.so в php-cli.ini файл.

Без php-cli.ini файл, php -m перечисляет эти модули: bin / php -m
[PHP Modules] Core date pcre Reflection SPL standard

С этой точки зрения PHP И APACHE работают отлично, за исключением того, что класс pthreads не распознается.

Параметры конфигурации Apache ./configure \ --prefix=path/apache \ --exec-prefix=path/apache \ --with-pcre=path/apache/pcre \ --enable-module=so \ --with-mpm=worker

Параметры конфигурации PHP ./configure \ --prefix=path \ --exec-prefix=path \ --with-apxs2=path/apache/bin/apxs \ --with-config-file-scan-dir=path/php/lib \ --with-config-file-path=path/php/lib \ --disable-all \ --enable-maintainer-zts \ --enable-pthreads=shared

Потому что снова и снова pthreads НЕ поддерживается apache (PHP-CGI), только версией CLI

https://github.com/krakjoe/pthreads

Поддержка SAPI

pthreads v3 ограничен работой только в CLI: я потратил много лет, пытаясь объяснить, что потоки на веб-сервере просто не имеют смысла, после того, как 1,111 фиксируется на pthreads, я понял, что мой совет остается без внимания.

Так что я продвигаю совет к твердому и быстрому факту: вы не можете безопасно и разумно использовать pthreads где-либо, кроме CLI.

Спасибо за прослушивание ;)

На данный момент я думаю, вы знаете, почему вы получили эту ошибку. Если вы хотите использовать pthreads в CLI и JUST CLI (вы знаете, почему) и не загружать его в apache, у вас есть два варианта. 1- скомпилируйте php с параметром --enable-pthreads = shared. для этого вы должны загрузить pthreads в / path / php / ext и удалить файл конфигурации, затем выполнить ./buildconf --force для создания чистой конфигурации, и, наконец, ./configure --enable-pthreads = shared будет работать нормально. не добавляйте это расширение в php.ini. 2- скомпилируйте источник pthreads с помощью phpize и запустите любой сценарий php с -d extention = {path_to_pthreads.so}.