版本晋级操作(间接从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开发自学
抱歉,评论功能暂时关闭!