zoukankan      html  css  js  c++  java
  • ubuntu多版本php切换

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

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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    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:

    1

    https://wiki.swoole.com/wiki/page/6.html

    这里建议直接用pecl install swoole安装,一步到位,如果手动编译,貌似会出现各种因为版本对应不上的问题。

    切换版本:

    1

    2

    3

    4

    5

    6

    # 禁用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,需要执行下面操作:

    1

    2

    # 切换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端还是不能切换的

    1

    Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE):

    升级版本后,我还折腾了php7.1,然后第二天回来启动电脑就发现所以laravel项目都报这样的错,网上搜索后知道是版本问题,但是看了下php -v没问题就是7.2,这时候打算重启php报错,以下的报错就是问题所在了:

    1

    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杀死进程的方法

  • 相关阅读:
    Silverlight 4版本升级到4.0.60531.0
    Silverlight实例教程 理解Navigation导航框架Page类
    微软官方在线培训课程汇总2011版
    分享Silverlight/WPF/Windows Phone一周学习导读(07月11日07月17日)
    Linux内核简介
    Brief Summary of IaaS, PaaS, SaaS
    On Amazon EC2's Underlying Architecture
    Linux进程管理(2)
    一个诡异的时间问题追查[转]
    查看一个进程打开了哪些文件的命令
  • 原文地址:https://www.cnblogs.com/heyue0117/p/11871784.html
Copyright © 2011-2022 走看看