zoukankan      html  css  js  c++  java
  • 如何在 Ubuntu 中切换多个 PHP 版本

    如何在 Ubuntu 中切换多个 PHP 版本

    有时,最新版本的安装包可能无法按预期工作。你的程序可能与更新的软件包不兼容,并且仅支持特定的旧版软件包。在这种情况下,你可以立即将有问题的软件包降级到其早期的工作版本。请参阅我们的旧指南,在这了解如何降级 Ubuntu 及其衍生版中的软件包以及在这了解如何降级 Arch Linux 及其衍生版中的软件包。但是,你无需降级某些软件包。我们可以同时使用多个版本。例如,假设你在测试部署在 Ubuntu 18.04 LTS 中的LAMP 栈的 PHP 程序。过了一段时间,你发现应用程序在 PHP 5.6 中工作正常,但在 PHP 7.2 中不正常(Ubuntu 18.04 LTS 默认安装 PHP 7.x)。你打算重新安装 PHP 或整个 LAMP 栈吗?但是没有必要。你甚至不必将 PHP 降级到其早期版本。在这个简短的教程中,我将向你展示如何在 Ubuntu 18.04 LTS 中切换多个 PHP 版本。它没你想的那么难。请继续阅读。

    在多个 PHP 版本之间切换

    要查看 PHP 的默认安装版本,请运行:

    $ php -v
    PHP 7.2.7-0ubuntu0.18.04.2 (cli) (built: Jul 4 2018 16:55:24) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.7-0ubuntu0.18.04.2, Copyright (c) 1999-2018, by Zend Technologies

    如你所见,已安装的 PHP 的版本为 7.2.7。在测试你的程序几天后,你会发现你的程序不支持 PHP7.2。在这种情况下,同时使用 PHP5.x 和 PHP7.x 是个不错的主意,这样你就可以随时轻松地在任何支持的版本之间切换。

    你不必删除 PHP7.x 或重新安装 LAMP 栈。你可以同时使用 PHP5.x 和 7.x 版本。

    我假设你还没有在你的系统中卸载 PHP 5.6。万一你已将其删除,你可以使用下面的 PPA 再次安装它。

    你可以从 PPA 中安装 PHP 5.6:

    $ sudo add-apt-repository -y ppa:ondrej/php
    $ sudo apt update
    $ sudo apt install php5.6

    从 PHP 7.x 切换到 PHP 5.x.

    首先使用命令禁用 PHP 7.2 模块:

    $ sudo a2dismod php7.2
    Module php7.2 disabled.
    To activate the new configuration, you need to run:
    systemctl restart apache2

    接下来,启用 PHP 5.6 模块:

    $ sudo a2enmod php5.6

    将 PHP 5.6 设置为默认版本:

    $ sudo update-alternatives --set php /usr/bin/php5.6

    或者,你可以运行以下命令来设置默认情况下要使用的全局 PHP 版本。

    $ sudo update-alternatives --config php

    输入选择的号码将其设置为默认版本,或者只需按回车键保持当前选择。

    如果你已安装其他 PHP 扩展,请将它们设置为默认值。

    $ sudo update-alternatives --set phar /usr/bin/phar5.6

    最后,重启 Apache Web 服务器:

    $ sudo systemctl restart apache2

    现在,检查 PHP 5.6 是否是默认版本:

    $ php -v
    PHP 5.6.37-1+ubuntu18.04.1+deb.sury.org+1 (cli)
    Copyright (c) 1997-2016 The PHP Group
    Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

    从 PHP 5.x 切换到 PHP 7.x.

    同样,你可以从 PHP 5.x 切换到 PHP 7.x 版本,如下所示。

    $ sudo a2enmod php7.2
    $ sudo a2dismod php5.6
    $ sudo update-alternatives --set php /usr/bin/php7.2
    $ sudo systemctl restart apache2

    提醒一句:

    最终稳定版 PHP 5.6 于 2017 年 1 月 19 日达到活跃支持截止。但是,直到 2018 年 12 月 31 日,PHP 5.6 将继续获得对关键安全问题的支持。所以,建议尽快升级所有 PHP 程序并与 PHP 7.x 兼容。

    如果你希望防止 PHP 将来自动升级,请参阅以下指南。

    就是这些了。希望这有帮助。还有更多的好东西。敬请关注!


     

    The mbstring extension is missing. Please check your PHP configuration.

    平台:阿里云

    系统:Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-52-generic x86_64)

    问题:安装phpmyadmin后,打开http://ip/phpmyadmin报错:The mbstring extension is missing. Please check your PHP configuration.

    解决办法:(参考https://blog.csdn.net/huanglin6/article/details/107314909)

    sudo apt-get update

    sudo apt-get install libapache2-mod-php7.*
    sudo apt-get install php7.*-mbstring
    sudo service apache2 restart


    比如php7.1撤换为php7.4,原来正常访问的网站,如果出现如下提示信息:

    Your PHP installation appears to be missing the MySQL extension which is required by WordPress.

    解决办法  参考https://blog.csdn.net/wbryfl/article/details/82729477

    补充:

    sudo apt-get install php-mysql
    sudo /etc/init.d/apache2 restart
    sudo /etc/init.d/mysql restart

    Ubuntu18.04 安装 Phpmyadmin

    有关phpmyadmin mbstring模块没有启用的问题

    Discuz在服务器配置安装时出现xml_parser_create()不支持 

    如果ubuntu下安装不同php版本的,不指定当前具体使用的什么版本,可以通过"php -v"查看当前使用的php版本,如果要切换不同php版本,出现

    xml_parser_create()不支持 ,一般安装相应的phpx.y-xml包即可,操作方法如下“

    假如要使用php7.4.9版本,可以通过如下命令

    sudo apt-get update

    sudo apt-get install php7.4-xml

    即可完美解决”xml_parser_create()”不支持“问题或“discuz Call to undefined function xml_parser_create()”等现象。

    更新完php7.4-xml,然后重启apache2即可解决。

     

    NMP下解决配置phpmyadmin【The mbstring extension is missing……】问题

  • 相关阅读:
    JSP + JavaBean + Servlet实现MVC设计模式
    编译时提示软件包 javax.servlet.http 不存在 import javax.servlet.http.HttpServletRequest;
    SmartUpload控件 中文乱码问题解决办法
    Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    Java Web 常用在线api汇总(不定时更新)
    EL函数库
    JSTL格式化标签库
    JSTL核心库
    JSTL标签概述
    iText创建一个含有中文的pdf文档
  • 原文地址:https://www.cnblogs.com/it-tsz/p/13621374.html
Copyright © 2011-2022 走看看