我想使用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中添加此扩展名?
答案 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无效。