php5.6.29添加protobuf和swoole扩展


(参考的原著地址--http://hello1010.com/php-protobuf)

一、下载安装protobuf

1、先介绍下protobuf

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前只提供了 C++、Java、Python 三种语言的 API。官方不支持PHP,不用担心,高手在民间。上Github搜索一下就有了。

编译protobuf扩展

在Google上搜索 protobuf php 可在github上找到两个与之相关的开源项目,它们是: allegro/php-protobuf 和 drslump/Protobuf-PHP 。在这里主要介绍allegro的编译方法,drslump我也没有试过。原著说他电脑编译不过。(别问为什么,因为drslump的编译方法在我的电脑上不成功 -_- ||)。

wget https://github.com/allegro/php-protobuf/archive/master.zip
unzip master.zip
cd php-protobuf-master

原著说要安装 yum install php-devel 但我是用源码安装的php所以不用安装这个。 执行phpize  假如phpize命令找不到的话就到php的安装目录下面的bin目录下面,或者用which phpize查找

phpize (我这里是/data/php/bin/phpize)

我这里执行的时候报错了:

要安装autoconf

yum install autoconf

再运行phpize成功

2、编译安装

./configure --with-php-config=/data/php/bin/php-config
make
make install

编译完后会在目录下面生成一个.so文件

在php的配置文件里面添加这个扩展文件

 

二、下载安装swoole

1、先介绍下swoole

swoole是PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器异步TCP/UDP网络客户端异步MySQL异步Redis数据库连接池AsyncTask消息队列毫秒定时器异步文件读写异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端Http2.0服务器端

除了异步IO的支持之外,Swoole为PHP多进程的模式设计了多个并发数据结构和IPC通信机制,可以大大简化多进程并发编程的工作。其中包括了并发原子计数器并发HashTableChannelLock进程间通信IPC等丰富的功能特性。

Swoole2.0支持了类似Go语言的协程,可以使用完全同步的代码实现异步程序。PHP代码无需额外增加任何关键词,底层自动进行协程调度,实现异步。Swoole可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。 使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。

2、确认安装环境

  • 仅支持Linux操作系统,核心代码兼容FreeBSD,需要调整某些编译的参数和细节才能通过
  • Linux内核版本2.3.32以上
  • PHP5.3.10以上版本
  • gcc4.4以上版本。核心代码兼容clang,需要关闭CPU亲和设置特性
  • cmake2.4+,编译为libswoole.so作为C/C++库时,需要使用cmake

3、安装配置

有两种安装方法,可pecl直接在线安装,或下载 releases版本的swoole编译安装 

(1)、pecl安装swoole扩展

pecl不可用的请确认php安装目录的bin目录或者确认已加入系统变量

/data/php/bin/pecl install swoole

 (2)、编译安装swoole扩展

从此处下载: http://pecl.php.net/package/swoole

# cd swoole
# phpize
# ./configure
# make && make install

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM