输入,pthreads.致命错误.pthreads不支持apache2handler SAPI


Apache2,pthreads. Fatal error. The apache2handler SAPI is not supported by pthreads

我的ubuntu上有apache2 web服务器。我需要安装pthreads,所以我从rep(复制到/ext/)克隆了一个php7和pthreads的源代码。我安装了php的所有库,然后运行

./buildconf 

。/configure——prefix=/usr——with-config-file-path=/etc——enable-bcmath——enable-calendar——enable-cli——enable-debug——enable-dba——enable-exif——enable-ftp——enable-gd- local -ttf——enable-mbregex——enable-mbstring——enable-pcntl——enable-shmop——enable-soap——enable-opcache——enable-sockets——enable-sysvmsg——enable-sysvsem——enable-sysvshm——enable-wddx——enable-zip ——enable- maintainerzts ——with-freetype-dir=/usr/local/opt/freetype——with-openssl——with-gd——with-gettext=/usr/local/opt/gettext——with-iconv-dir=/usr——with-icu-dir=/usr/local/opt/jpeg——with-kerberos=/usr——with-libedit——with-mhash——with-png-dir=/usr/local/opt/libpng——with-zlib=/usr ——with-apxs2=/usr/bin/apxs——libexecdir=/usr/local/php7/7.0.0/libexec——with-bz2=/usr——enable-fpm——with- fdm -user=_www——with- fdm -group=_www——with-curl——with-mysqli=mysqlnd——with-pdo-mysql=mysqlnd——with-mcrypt ——enable-pthreads.

完成的很好,我执行了make和make install。然后在控制台中执行下一个命令:

sudo a2dismod php5
sudo cp /etc/apache2/mods-available/php5.conf /etc/apache2/mods-enabled/php7.conf
sudo rm -rf /usr/bin/php && sudo ln -s /etc /usr/bin/php
sudo service apache2 restart

通过这种方式,我得到了apache2与php7,但它没有启动并为我提供日志:

PHP致命错误:pthreads不支持apache2handler SAPIPHP致命错误:无法启动pthreads模块in Unknown on line 0 Unknown(0): Fatal error - The apache2handlerSAPI不支持pthreads Unknown(0):致命错误-无法启动pthreads模块

如果我配置php7没有——enable-pthreads,它工作。我执行了phpinfo()并得到了结果。

我该如何解决这个问题?

pthreads v3禁止在CLI之外的任何地方加载。

在web服务器上下文中创建线程来响应客户端是没有意义的。在服务器创建的线程之外再创建线程,会破坏稳定性和可伸缩性。

在其他多线程、多进程应用程序中创建多线程应用程序,而没有任何适当的方法使其中一个应用程序正确地感知并为另一个应用程序做好准备,这是一个糟糕的想法;它不能可靠地工作,因此被禁用。

你必须为命令行保留多线程,在那里它是安全和合理的。

构建pthreads shared(——enable-pthreads=shared),并且只在CLI中加载它将解决您的问题。