当前位置: 首页 >数据库 > ubuntu多版本php如何切换

ubuntu多版本php如何切换

  最近想要学习一下swoole,虽然机子上装的是php7.0,但是考虑到一些有关swoole的轮子要依赖更高版本(例如swooletw),所以就在机子上升级了php7.2,下面是在网上搜索或者自己折腾出来的一些笔记。

 

版本升级操作(直接从7.0升级到7.2):

sudo add-apt-repository ppa:ondrej/phpsudo apt-get updatesudo apt-get upgrade php# 拓展升级sudo apt-get install php7.2-mbstringsudo apt-get install php7.2-gdsudo apt-get install php7.2-domsudo apt-get install php7.2-mysqlsudo 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,需要执行下面操作:

# 切换clisudo update-alteatives --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杀死进程的方法

 文章转自:http://www.kaotop.com/it/263520.html

作者:圆柱模板
来源链接:https://www.cnblogs.com/68xi/p/15340087.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/database/117827.html

标签:MySQL升级
分享给朋友:

“ubuntu多版本php如何切换” 的相关文章