• 技术文章 >后端开发 >PHP问题

    linux怎么安装php thread扩展

    藏色散人藏色散人2021-10-26 10:29:45原创403

    linux安装php thread扩展的方法:1、在lnmp安装目录中找到lnmp.conf文件;2、在“PHP_Modules_Options”里添加“--enable-maintainer-zts”;3、编译pthreads即可。

    本文操作环境:Ubuntu 16.04系统、PHP7.1版、DELL G3电脑

    linux怎么安装php thread扩展?

    Ubuntu 下 PHP 安装 pthreads 扩展:

    pthreads 是一个PHP使用多线程的扩展。这里就不再过多介绍了,相信既然都已经做过了解,不了解直接看文档吧。

    文档地址:https://www.php.net/manual/zh/book.pthreads.php

    这里就讲讲安装过程吧,有些曲折,也查阅了很多资料,才正式安装上。写出来自己做个记录,也给后来的朋友一个参考少踩一些坑。

    安装环境

    这里需要注意,这个扩展通过 pecl install pthreads 是安装不成功的。需要自己下载源码编译安装并且,只能从 GitHub 主干分支上下载。其它的源码貌似都有问题,我就最开始就是从 http://pecl.php.net 下载,但是编译老是失败。后来查询资料说是有问题。需要从 GitHub 下载才行。

    GitHub: https://github.com/krakjoe/pthreads

    配置PHP环境

    默认大家都是已经将 lnmp 环境安装好的,还没安装好的话,请出门左转 Google 一下。
    因 pthreads 需要PHP已线程安全的方式运行,所以在编译PHP的时候需要加上 --enable-maintainer-zts 但是 lnmp 集成包默认是线程不安全的。

    这里到你的 lnmp 安装目录,找到一个 lnmp.conf 文件

    95c1d70941ec45936c7467f9a512cba.png

    在 PHP_Modules_Options 里添加 --enable-maintainer-zts 就是我截图一样。

    编译PHP

    1. 新装环境,直接按照 lnmp 的按照流程一步步按照就好。安装完成之后php 就是线程安全的了。
    2. 已安装好的lnmp 环境 这里我们可以使用 lnmp 提供的升级脚本,将php升级一下(PS:脚本没有检测当前版本号,如果我们输入当前的版本号,就是重新安装PHP)操作完成。
    3. ** 手动编译PHP ** 进入 lnmp1.4-full/src 目录(根据自己的实际情况),我的目录在 /home/src/lnmp1.4-full/src 看看有没有php 的压缩包,如果没有自己下载一个
    sudo wget http://cn2.php.net/distributions/php-7.0.20.tar.bz2
    tar -jxvf php-7.0.20.tar.bz2

    注:地址可以自己去php官网获取,我这里给出的,是当前可用的。

    继续:

    ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/conf.d --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-intl --enable-pcntl --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-xsl --enable-maintainer-zts
    make
    sudo make install

    这段代码是从 lnmp1.4-full/include/php.sh 里面摘出来的,大家可以自己去研究一下。
    打开phpinfo();

    5e8cedac4c3bb24c68549091981abcc.png

    确认 Thread Safety 是 enabled 状态.

    编译pthreads 关键时刻来了

    将 pthreads 源码包放到 php 源码的 ext 目录,我的目录在:lnmp1.4-full\src\php-7.0.19\ext [根据自己情况调整]
    进入 pthreads 目录

    phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config
    make
    sudo make install

    php-config 路径根据自身情况调整。如果用的是 lnmp 默认的话,就是这了

    执行到这里就应该会出现 提示 pthreads.so 编译成功的提示。如果没有,请检查之前的步骤。

    配置php.ini

    网上一般的教程到此处之后就会说:将 pthreads.so 加入php.ini 文件重启 php-fpm 就完事了。
    此处是一坑。你如果直接加入 php.ini 会发现php-fpm 启动不了了,提示无法加载 pthreads.so

    正确的姿势:
    将 php.ini 复制一份 命名 php-cli.ini
    将 pthreads.so 放到 php.cli.ini 里面
    然后 php -m | grep pthreads 看看是不是已经出现了。

    到这里才能算是完成了。

    注意: pthreads不要在生产环境用 有bug,自己玩玩,跑跑命令行任务可以。通过最后的安装你也发现了,只能通过 cli 方式运行。哈哈哈哈。

    最后提示一下,windows 安装 pthreads 包里面有很多 demo 可以看。

    windows 版本下载地址:https://windows.php.net/downloads/pecl/releases/pthreads/

    推荐学习:《PHP视频教程

    以上就是linux怎么安装php thread扩展的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Ubuntu pthreads
    上一篇:php读取word乱码怎么办 下一篇:php怎么关闭自动转义
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• php pthreads 使用mutex时 CLI has stop• php pthreads多线程的安装与使用• 使用pthreads实现真正的PHP多线程的方法• php pthreads的使用方法
    1/1

    PHP中文网