pthread with php 7.0.8 (ZTS)


pthread with php 7.0.8 (ZTS)

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

--enable-maintainer-zts '
--enable-pthreads=shared '
--with-tsrm-pthreads '

注意:fpm正在运行,pid 25546

注意:准备好处理连接

我添加pthread扩展pecl: pecl install pthreads-3.1.6和我添加extension=pthreads。进入我的php。ini。但是在重新启动php7-fpm后,php-fpm没有运行:

注意:整理…

注意:退出,再见!

我有一个502 nginx错误。

如何在我的php.ini中添加这个扩展而不退出php-fpm ?

您应该使用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
    
  • 然后,用PECL安装pthreads(如果php是用--enable-maintainer-zts ' --enable-pthreads=shared ' --with-tsrm-pthreads)

    pecl install pthreads
    
  • 然后,将扩展的配置添加到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");
    }
}

执行:php ImportWorker.php ->如果你有任何错误,那就是pthreads不工作