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
  • 相关阅读:
    判断文件结束,feof……
    第五篇 分治思想(例子待加)
    第四篇 枚举思想
    第三篇 贪心思想
    第二篇 递归思想
    第一篇 递推思想
    爬虫系列
    整数划分问题
    html中a标签做容器的问题
    H5学习小结——div+css创建电子商务静态网页
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575373.html
Copyright © 2011-2022 走看看