• 编译一个支持多线程的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
  • 相关阅读:
    JavaScript中的数据类型转换
    JavaScript中的变量
    set_uid set_gid stick_bit 软硬链接
    chmod、chown、umask、lsattr/chattr
    环境变量、cp、mv、cat 等命令
    相对和绝对路径 mkdir cd rm 等命令
    linux 系统 目录,以部分及相关命令
    单用户模式 和救援模式 、以及相互登陆(免密)
    putty 、xshell的使用 和 putty 、xshell、 shell 间免密登陆
    vmware NAT 网络出现问题的解决方法
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575373.html
Copyright © 2020-2023  润新知