Apache2的,并行线程.致命错误.pthreads不支持apache2handler SAPI

Але*_*тов 3 php ubuntu pthreads apache2 php-7

我的ubuntu上有apache2 web服务器.我需要安装pthreads,所以我从rep(copy到/ ext /)克隆了php7和pthreads的源代码.我为php安装了所有库,然后我跑了

./buildconf 
Run Code Online (Sandbox Code Playgroud)

./configure --prefix =/usr --with-config-file-path =/etc --enable -bcmath --enable-calendar --enable-cli --enable-debug --enable-dba --enable- exif --enable-ftp --enable -gd-native-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-maintainer-zts --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 --with-mhash --with -jpeg-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-fpm-user = _www --with-fpm-group = _www --with -curl --with-mysqli = mysqlnd --with-pdo-mysql = mysqlnd --with-mcrypt --enable-pthreads.

它完成得很好,我执行'make'和'make install'.然后我在console中执行了下一个命令:

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
Run Code Online (Sandbox Code Playgroud)

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

PHP致命错误:第0行的未知中的pthreads不支持apache2handler SAPI PHP致命错误:无法在第0行的Unknown中启动pthreads模块未知(0):致命错误 - pthreads不支持apache2handler SAPI未知(0 ):致命错误 - 无法启动pthreads模块

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

我怎么解决这个问题?

Joe*_*ins 9

pthreads v3禁止加载除CLI之外的任何内容.

为响应客户端,在Web服务器上下文中创建线程从未有意义.创建除服务器创建的线程之外的线程,破坏稳定性和可伸缩性.

在其他多线程,多进程应用程序中创建多线程应用程序,没有任何正确的方法使应用程序正确识别并为另一个做好准备,这是一个可怕的想法; 它无法可靠地工作,因此被禁用.

您必须为命令行保留多线程,这是安全且合理的.

构建pthreads共享(--enable-pthreads = shared),并仅在CLI中加载它将解决您的问题.