pthreads php 安装全过程(二)

pthreads php 安装全过程(二)

大家好,又见面了,我是全栈君。

编译php

因为 pthreads 是需要开启线程安全的,默认是不开启的,所以需要重新进行编译

  1. 首先获取我们的configure配置

     `php -i | grep configure`
    
  2. 下载 php : https://www.php.net/downloads.php

     tar -zxvf php7.2.tar.gz
    
     cd php7.2
    
  3. 添加配置项开启多进程安全 '--enable-maintainer-zts' '--enable-pthreads'

执行

	./configure '--prefix=/usr/local/php7.2' '--with-config-file-path=/usr/local/php7.2' '--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' '--with-curl=/usr/local/curl' '--enable-mbregex' '--enable-mbstring' '--enable-intl' '--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' '--enable-maintainer-zts' '--enable-pthreads'

make 

make install
  1. 配置php全局

     cp /usr/local/php7.2/bin/php* /usr/bin
    
     php -v 查看 php 版本
    
     php -m 查看php配置加载项
    
  2. php-fpm配置全局

     cp /usr/local/php7.2/sbin/php-fpm /usr/local/sbin/php-fpm
    
  3. 开启php-fpm

     `systemctl satrt php-fpm.service` 或者 `service start php-fpm`  获取 `sudo /usr/local/php7.2/sbin/php-fpm`
    
     chkconfig php-fpm on  // 设置开机自启
    
     : 域名站点自己配置, 建立一个输出phpinfo()文件即可
    

pthreads 下载

wget -c https://github.com/krakjoe/pthreads/archive/master.zip
或者
git clone https://github.com/krakjoe/pthread

进入到 pthreads 中后进行编译

`--with-php-config=/usr/local/php7.1/bin/php-config` 这是关联的php版本编译

phpize
./configure --with-php-config=/usr/local/php7.1/bin/php-config
make
make install
echo "extension=pthreads.so" >> /etc/php.ini 或者
echo "extension=pthreads.so" >> /usr/local/php7.2/php.ini

保持 /usr/local/php7.2/php.ini 和 /etc/php.ini 同步即可

存放 pthreads.so 我尝试过很多种方法,不止上面两种, 自己摸索一下也好

然后查看 php -m 是否加载 pthreads

官方文档: https://www.php.net/manual/zh/book.pthreads.php

相关的文章

php7 扩展安装pthread: https://blog.51cto.com/quietnight/1765370

PHP版本升级:从php7.1升级到php7.2 : https://my.oschina.net/wangyongtao/blog/1790863

相关的命令

systemctl restart php-fpm.service - 重启php-fpm
systemctl restart nginx.service - 重启nginx

netstat -nlpt | grep php-fpm - 查看php-fpm经常

php -i | grep configure - 获取相关的配置加载项

ssh root@ip 链接服务器

版本不一致问题的解决

在使用是发现 php -v 和 phpinfo 不一致的问题

分析: php -v 是有全局变量决定的,可以查看 /usr/local/php7.2/bin/ (这是我的php版本位置), bin下有 php 和 phpize

phpinfo是由php-fpm决定的,位置在 /usr/local/php7.2/sbin/php-fpm

要解决版本不一致,我们首先 find / -name php-fpm (寻找php-fpm的位置)

默认加载的php-fpm一般位于 /usr/local/sbin 目录下,

我们执行当前版本的覆盖老版本, cp /usr/local/php7.2/sbin/php-fpm /usr/local/sbin/php-fpm

输入 php -ef | grep php

kill -9进程号

然后 systemctl satrt php-fpm.service 或者 service start php-fpm 获取 sudo /usr/local/sbin/php-fpm 都可以,现在基本上就是你想要的版本咯

参考文章: https://blog.csdn.net/haif_city/article/details/81315372

总结

我感觉心态已经蹦了,总结了安装pthreads中有个错误要点,我是尝试学习php中的进程管理的, 所以才安装他, 但是在安装过程中,到了make的时候大多数时候报了错误。

尽量选择github最新版,pthreads 3.1.6 只支持 php7.2, 注意。 我建议重新配置一台服务器重新开始编译php,并开启进程安全, 编译的时候增加 '--enable-maintainer-zts' '--enable-pthreads' 即可

当然,还是会出现各种各样的问题,因为有些问题,以为现在的水平我无法进行定位,例如全部安装完成,目录引用正确,按 照官方实例一模一样,可以使还是 `php -m`的时候没有显示加载, 对于这方面的原理性问题,我能力不足。

不过好处在于,重新学习了一下编译php、nginx配置设置等等,在服务器端之间进行操作,对个人的能力也有很大的提升吧。 也了解到了间接的了解到了cli 、fpm等一系列的原理性问题,虽然不多,但依旧是成长。 身边也没有好的擅长这方面的前辈,提问也没人回答,一切只能自己慢慢摸索了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111689.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQL Server基本操作练习「建议收藏」

    SQL Server基本操作练习「建议收藏」代码实现:use test_0425goselect *from student– 查专业是什么学的select *from studentwhere stspecialty like’%学’– 查分72-87的 并且 专业是什么文的select *from studentwhere stscore like ‘[7-8][2-7]’ and stspecialty …

    2022年8月18日
    6
  • 怎么安装wget_Debian安装wget

    怎么安装wget_Debian安装wget第一步:执行wgetwww.baidu.com,若没有,会提示:-bash:wget:commandnotfound第二步:通过这个http://ftp.gnu.org/gnu/wget/下载wget的源代码wget-1.5.3.tar.gz第三步:通过命令行进入到下载后的文件夹,如:cdDownloads第四步:执行tar-zxvfwget-1.5.3.tar….

    2022年10月16日
    4
  • 26.学习Camera之——PDAF(相位对焦)的基本原理

    26.学习Camera之——PDAF(相位对焦)的基本原理在自动对焦的时候总是有一个困惑,知道图像是不清楚的,但是lens应该向前还是向后移动呢?总是要前后移动lens一下才知道,普通的反差法对焦就是这么做的,爬山嘛。PDAF的出现就是为了解决这个lens移动的问题,可以根据图像,预判lens运动的方向。PDAF最早运用在单反上,已经是非常成熟的技术了,原理如下图。左图为CCD在焦后的情况,右图为焦前。当CCD在焦后时,在线阵CCD1和CCD2上会发现聚焦点CCD1的在左,反之,则聚焦点CCD2的在左(图中红色标记的光线)。这种方法需要加.

    2025年9月24日
    5
  • 迈克菲杀毒软件创始人(John McAfee)被发现在监狱死亡「建议收藏」

    迈克菲杀毒软件创始人(John McAfee)被发现在监狱死亡「建议收藏」律师近日告诉路透社,西班牙高等法院批准将出生于英国的美国科技企业家JohnMcAfee引渡到美国后,周三他在巴塞罗那监狱自杀身亡。McAfee的律师JavierVillalba表示,今年75岁的迈克菲杀毒软件创始人约翰·迈克菲日前被发现死于位于巴塞罗那一家监狱的牢房中。而死亡时间刚好是西班牙法院判决他被引渡回美国几个小时后。这位反病毒软件先驱在九个月的监禁中因绝望而上吊。75岁的McAfee在上个月的法庭听证会上表示,鉴于他这个年纪,如果在美国被定罪,他将在监狱中度过余生。他说:“我希望..

    2022年9月23日
    2
  • springcloud原理详解_数据库底层实现原理

    springcloud原理详解_数据库底层实现原理天天喊着微服务,微服务的,微服务怎么牛逼,微服务有多强大,学好微服务三天不用吃饭的那种?那我心里不禁一紧微服务到底是个啥?往下看!总有东西有点帮助!先来个简单的介绍吧!SpringCloud框架针对这个架构图我分层介绍一下:1、是web服务器的选型,这个我选择的是nginx+keepalived,haproxy也是一个选择,但是haproxy在反向代理处理跨域访问的时候问题很多…

    2025年9月6日
    4
  • 写给那些没有用过oracle存储过程但又准备学习的同志们

    写给那些没有用过oracle存储过程但又准备学习的同志们公司属于外包公司,公司所用的是oracle数据库,所以,避免不了操作oracle数据库,而且动不动就是调用存储过程,但是发现一个问题,对于存储过程的学习还是有相对有限的系统性的学习资料。都是一些零碎的学习资料,东一榔头西一棒槌。所以本人在这里就给大家操作一波存储过程,从基础语法到java程序调用存储过程。这几篇文章只是学习的起步,但又是学习存储过程至关重要的一个环节,相信你看完这篇文章可以说是对存…

    2022年7月17日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号