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
  • 相关阅读:
    工厂方法
    简单工厂
    单例模式
    MVC中Cookies的简单读写操作
    windows服务开启(收藏url)
    WCF的三种模式
    SvcUtil.exe导入WCF
    简述wcf应用
    sql的几种常用锁简述
    Lucene.Net和盘古分词应用
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575373.html
Copyright © 2011-2022 走看看