使用PHP7.0.8(ZTS)的pthread

使用PHP7.0.8(ZTS)的pthread,php,nginx,pthreads,debian,php-7,Php,Nginx,Pthreads,Debian,Php 7,我想在PHP7.0.8(ZTS)中使用pthreads(手动编译和配置) 我在编译php时添加了以下配置: --enable-maintainer-zts \ --enable-pthreads=shared \ --with-tsrm-pthreads \ 注意:fpm正在运行,pid 25546 注意:准备好处理连接了吗 我使用pecl:pecl安装pthreads-3.1.6添加pthread扩展,并将extension=pthreads.so添加到php.ini中。但重新启动php7

我想在PHP7.0.8(ZTS)中使用pthreads(手动编译和配置) 我在编译php时添加了以下配置:

--enable-maintainer-zts \
--enable-pthreads=shared \
--with-tsrm-pthreads \
注意:fpm正在运行,pid 25546

注意:准备好处理连接了吗

我使用pecl:
pecl安装pthreads-3.1.6
添加pthread扩展,并将extension=pthreads.so添加到php.ini中。但重新启动php7 fpm后,php fpm未运行:

注意:整理

注意:退出,再见

我有一个502 nginx错误


如何在不退出php fpm的情况下在php.ini中添加此扩展?

您应该使用php cli来使用pthreads。您可以为CLI创建第二个php.ini配置:

  • 首先,如果不存在php.ini,请将其复制到php-cli.ini:

    cp /PATH_OF_YOUR_PHP_INSTALLATION/php.ini /PATH_OF_PHP_INSTALLATION/php-cli.ini
    
    echo "extension=/PATH_OF_EXTENSION/pthreads.so" >>/PATH_OF_PHP_INSTALLATION/php-cli.ini
    
  • 然后,使用PECL安装pthreads(如果使用
    --启用维护器zts \--启用pthreads=shared \--与tsrm pthreads一起使用

  • 然后,将扩展的配置添加到php-cli.ini中:

    cp /PATH_OF_YOUR_PHP_INSTALLATION/php.ini /PATH_OF_PHP_INSTALLATION/php-cli.ini
    
    echo "extension=/PATH_OF_EXTENSION/pthreads.so" >>/PATH_OF_PHP_INSTALLATION/php-cli.ini
    
  • 最后,重新启动php7 fpm服务:

    service php7-fpm restart
    
您可以测试pthread安装是否正在创建一个测试类并使用php执行它: 创建文件:ImportWorker.php

<?php
class ImportWorker extends Worker {
    private $data;

    public function __construct($_data) {
        $this->data = $_data;//
    }

    public function run(){
        var_dump("Worker test");
    }
}