pthread与php 7.0.8(ZTS)

时间:2016-07-04 12:16:48

标签: php nginx pthreads debian php-7

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

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

注意:fpm正在运行,pid 25546

     

注意:准备好处理连接

我使用pecl添加pthread扩展名:pecl install pthreads-3.1.6并将extension = pthreads.so添加到我的php.ini中。但重启php7-fpm后,php-fpm没有运行:

  

通知:完成......

     

通知:退出,再见!

我有一个502 nginx错误。

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

1 个答案:

答案 0 :(得分:2)

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

  • 首先,将php.ini复制到php-cli.ini:

    library(ggplot2)
    library(dplyr)
    
    set.seed(12345)
    
    toPlot <-
      data.frame(
        group = factor(sample(LETTERS[1:10],1000,TRUE))
      ) %>%
      mutate(value = rnorm(1000) + 
               as.numeric(group)/10)
    
    basePlot <-
      ggplot(toPlot) +
      stat_summary(aes(x = group
                       , y = value)
                   , fun.data = mean_cl_normal) +
      theme_minimal()
    
    basePlot
    
    lineAdd <-
      data.frame(
        x = range(as.numeric(toPlot$group)) + c(-.5,.5)
        , ymax = 1.2
        , ymin = 0.8
      )
    
    basePlot +
      geom_ribbon(
        data = lineAdd
        , mapping = aes(x = x
                        , ymax = ymax
                        , ymin = ymin)
        , col = "light gray"
        , alpha = 0.2
      ) +
      geom_hline(yintercept = 1)
    
  • 然后,使用PECL安装pthreads(如果用PHP编译php) cp /PATH_OF_YOUR_PHP_INSTALLATION/php.ini /PATH_OF_PHP_INSTALLATION/php-cli.ini

    --enable-maintainer-zts \ --enable-pthreads=shared \ --with-tsrm-pthreads
  • 然后,将扩展的配置添加到php-cli.ini:

    pecl install pthreads
    
  • Finnaly,重启你的php7-fpm服务:

    echo "extension=/PATH_OF_EXTENSION/pthreads.so" >>/PATH_OF_PHP_INSTALLATION/php-cli.ini
    

您可以测试pthread安装是否正在创建测试类并使用php执行它: 创建文件:ImportWorker.php

service php7-fpm restart

执行:<?php class ImportWorker extends Worker { private $data; public function __construct($_data) { $this->data = $_data;// } public function run(){ var_dump("Worker test"); } } - &gt;如果您有任何错误,那就是pthreads无效。