thrift的安装和php的简单示例

  • 首先,请粗略查看Thrift安装说明文档,这里列出了不同系统需要的各种依赖,后面编译安装失败的原因有可能是缺少依赖,第一步就是把需要的依赖解决,我的系统是Ubuntu 16.04 LTS,所以参照的是这里的说明;

  • 其次,下载thrift源码和示例,下载完成后可用md5sum校验文件是否下载完整。解压文件tar -xzvf thrift-0.10.0.tar.gz,解压后目录里包含很多文件,有现有可使用thrift的各种语言的库,在lib目录里,以及对应语言的使用示例,在tutorial目录;

  • 然后,配置,编译,安装:

  1. ./configure && make
  2. sudo make install
  3. 检查是否安装成功thrift -version,我的显示Thrift version 0.10.0,安装成功,版本为0.10.0
    > 可参考官方文档Building from source
  • 最后,创建php服务端和用户端,开发流程:
  1. 配置环境.PHP的php-fpm,Nginx等.
  2. 根据需求,编写thrift接口定义文件(IDL定义文件),解压的目录里已经包含各种示例所需的IDL文件,在解压目录/tutorial/.
  3. 使用thrift程序,为不同的语言生成代码.
  4. 根据需求,修改生成的代码(主要是Server端),编写实际的业务逻辑.
    > 参考博客
  • 实际步骤:
  1. 移动到PHP项目目录下.
  2. 创建目录mkdir thrift_php_server_client_demo.
  3. 复制上面解压目录PHP相关文件到thrift_php_server_client_demo目录下:
    > cp -r 你的解压目录/lib/php/lib/Thrift/ xxx/thrift_php_server_client_demo
    > cp -r 你的解压目录/tutorial/php/ xxx/thrift_php_server_client_demo
    > cp 你的解压目录/tutorial/tutorial.thrift xxx/thrift_php_server_client_demo
    > cp 你的解压目录/tutorial/shared.thrift xxx/thrift_php_server_client_demo
  4. 生成php代码thrift -r --gen php tutorial.thrift
    > 可参考官方文档Apache Thrift Tutorial
  5. 运行PHP服务端php -S localhost:8080
  6. 运行客户端php php/client.php --http,即可以看到结果运行结果,运行服务端的终端也会显示请求过程.
    > 注:我在运行客户端文件时,一直提示server.php里\tutorial\CalculatorProcessor类找不到,开始以为是我命名空间或其它配置有问题,后来查看对比了这个php-thrift-server项目才知道,我使用步骤4生成的目录文件(gen-php/tutorial/Calculator.phpgen-php/shared/SharedService.php)里都缺少相关内容,这个可太坑了,花费了好长时间才发现;我clone了这个项目后,用这个项目里的thrift文件生成代码后也缺少相关类的内容,我怀疑是我安装的thrift版本的问题,把内容加上就正常了。
  7. 我的github示例地址,下载代码即可使用上述步骤5和步骤6运行.

Published by

Leave a Reply