如何在linux中升级和切换php版本
如何在linux中升级和切换php版本?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联公司是一家集网站建设,永修企业网站建设,永修品牌网站建设,网站定制,永修网站建设报价,网络营销,网络优化,永修网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
最近想要学习一下swoole,虽然机子上装的是php7.0,但是考虑到一些有关swoole的轮子要依赖更高版本(例如swooletw),所以就在机子上升级了php7.2,下面是在网上搜索或者自己折腾出来的一些笔记。
版本升级操作(直接从7.0升级到7.2):
sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get upgrade php # 拓展升级 sudo apt-get install php7.2-mbstring sudo apt-get install php7.2-gd sudo apt-get install php7.2-dom sudo apt-get install php7.2-MySQL sudo apt-get install php7.2-curl ......
有需要可以安装swoole:
https://wiki.swoole.com/wiki/page/6.html
这里建议直接用pecl install swoole安装,一步到位,如果手动编译,貌似会出现各种因为版本对应不上的问题。
切换版本:
# 禁用7.0版本 sudo a2dismod php7.0 # 启用7.2版本 sudo a2enmod php7.2 # 重启nginx(或apache) sudo service nginx restart
如果出现ERROR: Module php7.0 does not exist! ,执行sudo apt-get install libapache2-mod-php7.0再执行上面操作
这时候在浏览器查看phpinfo()应该就可以看到7.2版本了,但是命令行cli那里还是7.0,需要执行下面操作:
# 切换cli sudo update-alternatives --set php /usr/bin/php7.2
这样在命令行执行php -v也能看到7.2版本了
如果有两个版本,其实可以直接用sudo service php7.0-fpm stop/restart来进行切换,当然这只能切换php-fpm,也就是web端,命令行cli端还是不能切换的
Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE):
升级版本后,我还折腾了php7.1,然后第二天回来启动电脑就发现所以laravel项目都报这样的错,网上搜索后知道是版本问题,但是看了下php -v没问题就是7.2,这时候打算重启php报错,以下的报错就是问题所在了:
ERROR: unable to bind listening socket for address '127.0.0.1:9001': Address already in use (98)
大致就是端口被占用,然后php fastCGI程序启动失败
解决方法:
ps aux|grep php查看所有php-fpm进程,发现有个php7.1-fpm进程,拿到进程id,再kill掉就能够重启了。
网上查询的解决方法是killall php-pfm这个命令,执行后只有显示 php-pfm:没有发现操作,这种方法没用,最后使用上面这种查询进程,然后根据进程id杀死进程的方法
关于如何在linux中升级和切换php版本问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。
网站标题:如何在linux中升级和切换php版本
文章地址:http://pwwzsj.com/article/pdiojh.html