zoukankan      html  css  js  c++  java
  • 编译一个支持多线程的php安装包

    前言

    因为项目上的需要,需要用到php,一般来说,用默认的版本和配置就可以满足大多数的场景,因为需要加入多线程,所以需要自己编译一个包

    一般来说,发行的包的版本的配置选项和代码都是最稳定的,所以在大多数情况下,我都不会直接去拿原始的源码做编译,这里我的经验是用别人发布版本的源码包,然后根据自己的需要,做修改,然后打包,这次的处理方法还是一样

    获取源码

    地址:

    https://uk.repo.webtatic.com/yum/el7/SRPMS/RPMS/
    

    这个是webtatic发行的php版本,做了一些修改和优化

    选择需要的版本

    [root@lab8106 myphp]# wget https://uk.repo.webtatic.com/yum/el7/SRPMS/RPMS/php56w-5.6.26-1.w7.src.rpm
    

    解压安装包

    [root@lab8106 myphp]# rpm2cpio php56w-5.6.26-1.w7.src.rpm |cpio -div
    

    解压完成了后,当前目录下面会有很多文件
    修改当前目录下面的php56.spec
    在编译相关的configure后面增加

    --enable-maintainer-zts

    拷贝解压和修改的文件到源码编译目录

    [root@lab8106 myphp]# cp -ra * /root/rpmbuild/SOURCES/
    

    编译rpm包

    [root@lab8106 myphp]# rpmbuild -bb php56.spec
    

    如果提示缺依赖,就把相关的依赖包安装好就可以了,编译环境最好跟最终使用环境是一样的环境,执行完成了以后,会生成rpm安装包

    增加多线程支持

    pecl install pthreads-2.0.9
    

    这个会下载源码,然后自动编译成可用的内核模块,将这个内核模块的配置文件和模块文件拷贝到最终使用环境即可

    检查是否安装成功

    [root@lab8106 ceph]# php -m|grep pth
    pthreads
    

    可用看到已经支持了

    变更记录

    Why Who When
    创建 武汉-运维-磨渣 2016-10-10
  • 相关阅读:
    postman一健导入swagger api所有接口
    pycharm 通过project interpreter国内镜像源设置
    Linux常用软件tree,autojump,lrzsz安装
    文献下载好用网站推荐
    SCIP,Clp,Gurobi和Cplex安装
    Linux下SuperLU安装
    【微服务理论】康威定律
    项目实战:动态系统的设计(类似朋友圈)
    认知提升:工作和薪资
    博客园美化 Cnblogs-Theme-SimpleMemory
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575373.html
Copyright © 2011-2022 走看看