PHP pthreads v3在centos7平台下的安装与配置操作方法

本文实例讲述了PHP pthreads v3在centos7平台下的安装与配置操作方法。分享给大家供大家参考,具体如下:

我的centos版本是7.4.1708,php的版本是7.2.4(注意要是线程安全版),如下图所示:

首先我们在如下网址下载好pthreads的源码:

http://pecl.php.net/package/pthreads

如:pthreads-3.1.6.tgz

1、解压、并进入目录

> tar xf pthreads-3.1.6.tgz
> cd pthreads-3.1.6

2、运行phpize,生成configure,如果没有配置PATH的,可以打上绝对路径。

> phpize

3、运行configure

> ./configure --with-php-config=/data/php72/bin/php-config

4、运行make && make install

> make && make install

如果出现如下情况,说明你的PHP与pthreads版本不兼容,如下图所示:

我们需要在github上搜索pthreads

> https://github.com/krakjoe/pthreads

注意下载zip包,我们要用最新的,不要进去releases,如果你的PHP版本是7.1可以去试试。

如:pthreads-master.zip

> unzip pthreads-master.zip
> cd pthreads-master

其余步骤跟上面一样

如果你看到如下信息,说明你编译成功了。

(注意这里面有个坑,不要在php.ini下配置pthreads扩展,不然php-fpm无法启动,因为pthreads v3版本只能运行在cli下)

通过如下命令查看ini文件位置:

> php --ini

然后在php.ini目录下复制一份,命名为php-cli.ini

> cp php.ini php-cli.ini

修改php-cli.ini文件

extension_dir = "/data/php72/lib/php/extensions/no-debug-zts-20170718/"
extension=pthreads.so

重启php服务,查看pthreads扩展是否装上

> php -m | grep pthreads

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP进程与线程操作技巧总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

(0)

相关推荐

  • PHP pthreads v3下同步处理synchronized用法示例

    本文实例讲述了PHP pthreads v3下同步处理synchronized用法.分享给大家供大家参考,具体如下: 之所以会用到同步,是因为如果多个线程中对同一个资源进行操作时,会发生混乱. 比如2个线程对变量进行加1操作,第1个线程还没来的及改写数据时,第2个线程就对变量进行操作了,那变量最终的结果就是未知的,这个时候就需要同步来进行控制了. 例子如下: <?php class Count extends Thread { public $cnt = 0; public function r

  • php异步多线程swoole用法实例

    本文实例讲述了php异步多线程swoole用法.分享给大家供大家参考.具体分析如下: swoole重新定义PHP语言的高性能网络通信框架,提供了PHP语言的异步多线程服务,下面的实例就可以证实这一功能. 一般来说,Swoole提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询. swoole以前听过, 拿来做游戏服务器简直是神器-今天稍微的感受了一下,  在 ubuntu 下搭建了

  • PHP安装threads多线程扩展基础教程

    一.下载pthreads扩展 下载地址:http://windows.php.net/downloads/pecl/releases/pthreads 二.判断PHP是ts还是nts版 通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版. 三.根据PHP ts\nts版选择对应pthreads的版本 本人php版本是5.4.17的所以下载php_pthreads-0.1.0-5.4-t

  • PHP pthreads v3下worker和pool的使用方法示例

    本文实例讲述了PHP pthreads v3下worker和pool的使用方法.分享给大家供大家参考,具体如下: 有些人会想,明明用thread已经可以很好的工作了,为什么还要搞个worker和pool? 之所以要用到worker和pool还是因为效率,因为系统创建一个新线程代价是比较昂贵,每个创建的线程会复制当前执行的整个上下文. 尽可能的重用线程可以让我们的程序更高效. 一个简单的worker例子: <?php //创建自定义work类,给work取个名字,方便查看 class Work e

  • php多线程并发实现方法

    本文实例讲述了php多线程并发实现方法.分享给大家供大家参考,具体如下: java里多线程就是一个new thread的事情,php依赖apache靠着linux底层有一个多线程的办法. 这里就来说说如果你无法操控apache的服务器,如何模拟php并发 <?php if(function_exists('date_default_timezone_set')) { date_default_timezone_set('PRC'); } function a() { $time = time()

  • 实现PHP多线程异步请求的3种方法

    在网上看过很多版本的PHP异步请求方法,这里简单总结几个常用方法分享给大家 1.用CURL实现一步请求 CURL扩展是我们在开发过程中最常用的一种方法,他是一个强大的HTTP命令行工具,可以模拟POST/GET等HTTP请求,然后得到和提取数据,显示在"标准输出"(stdout)上面. 示例: 复制代码 代码如下: <?php $cl = curl_init(); $curl_opt = array(CURLOPT_URL, 'http://www.uncletoo.com/de

  • php使用pthreads v3多线程实现抓取新浪新闻信息操作示例

    本文实例讲述了php使用pthreads v3多线程实现抓取新浪新闻信息.分享给大家供大家参考,具体如下: 我们使用pthreads,来写一个多线程的抓取页面小程序,把结果存到数据库里. 数据表结构如下: CREATE TABLE `tb_sina` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `url` varchar(256) DEFAULT '' COMMENT 'url地址', `title` varchar

  • php pthreads多线程的安装与使用

    安装Pthreads 基本上需要重新编译PHP,加上 --enable-maintainer-zts 参数,但是用这个文档很少:bug会很多很有很多意想不到的问题,生成环境上只能呵呵了,所以这个东西玩玩就算了,真正多线程还是用Python.C等等 一.安装 这里使用的是 php-7.0.2 ./configure \ --prefix=/usr/local/php7 \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc

  • 使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)

    我之前的文章中说过,大多数网站的性能瓶颈不在PHP服务器上,因为它可以简单地通过横向增加服务器或CPU核数来轻松应对(对于各种云主机,增加VPS或CPU核数就更方便了,直接以备份镜像增加VPS,连操作系统.环境都不用安装配置),而是在于MySQL数据库. 如果用 MySQL 数据库,一条联合查询的SQL,也许就可以处理完业务逻辑,但是,遇到大量并发请求,就歇菜了. 如果用 NoSQL 数据库,也许需要十次查询,才能处理完同样地业务逻辑,但每次查询都比 MySQL 要快,十次循环NoSQL查询也许

  • PHP pthreads v3下的Volatile简介与使用方法示例

    本文实例讲述了PHP pthreads v3下的Volatile简介与使用方法.分享给大家供大家参考,具体如下: 由于pthreads v3中引入了Threaded对象自动不变性的概念,所以当我们在构造函数中给成员设置为数组时,在其他地方就无法对成员再次改写了. 例子如下: <?php //pthreads v3引入了Threaded对象自动不变性的概念 //如果成员被设置成Threaded对象,那么它将不能被再次改写 //当然,这主要还是为了性能优化,但有时我们又需要改写成员,那么就需要继承自

  • PHP pthreads v3使用中的一些坑和注意点分析

    本文实例讲述了PHP pthreads v3使用中的一些坑和注意点.分享给大家供大家参考,具体如下: 一.子线程无法访问父线程的全局变量,但父线程可以访问子线程的变量 <?php class Task extends Thread { public $data; public function run() { global $num; var_dump($num); $this->data = 'abc'; //这是打印null var_dump($GLOBALS); $GLOBALS['te

随机推荐