ubuntu多版本php切换-php教程

资源魔 28 0
比来想要学习一下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杀死过程的办法

以上就是ubuntu多版本php切换的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学

抱歉,评论功能暂时关闭!