【问题标题】:Complete uninstall and re-install of PHP on Centos 7在 Centos 7 上完全卸载并重新安装 PHP
【发布时间】:2019-01-09 19:29:27
【问题描述】:

我需要在 Centos 7 上尝试 PHP 5.6 和 5.5。所以,我将它们安装在 PHP 7.1 的完美工作安装之上。我按照这里的说明进行操作:https://www.mojowill.com/geek/howto-install-php-5-4-5-5-or-5-6-on-centos-6-and-centos-7/

基本上,我编辑了 remi repo 配置文件以启用 PHP 5.6 和 5.5 并安装了 PHP 5.6。我测试了我想要测试的内容,并尝试通过禁用 repos 并卸载所有 php 然后重新安装来切换回来。现在我有问题。

这是症状和我尝试过的方法。

我在安装 WordPress 时收到一条消息“Your PHP installation appears to be missing the MySQL extension which is required by WordPress.

# php -v
PHP **7.2.14** (cli) (built: Jan  8 2019 14:05:15) ( NTS )
Copyright (c) 1997-2018 The PHP Group

<? phpinfo() ?> works but says php version **7.1.24**

我尝试检查是否仍然安装了 php-mysql:

# yum list installed | grep php
php.x86_64                              7.2.14-1.el7.remi              @remi-php72
php-cli.x86_64                          7.2.14-1.el7.remi              @remi-php72
php-common.x86_64                       7.2.14-1.el7.remi              @remi-php72
php-gd.x86_64                           7.2.14-1.el7.remi              @remi-php72
php-json.x86_64                         7.2.14-1.el7.remi              @remi-php72
php-mysqlnd.x86_64                      7.2.14-1.el7.remi              @remi-php72
php-pdo.x86_64                          7.2.14-1.el7.remi              @remi-php72
php-pecl-mcrypt.x86_64                  1.0.1-6.el7.remi.7.2           @remi-php72


# yum install php-mysql
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.layeronline.com
 * epel: mirror.uic.edu
 * extras: centos.mirror.globo.tech
 * nux-dextop: mirror.li.nux.ro
 * remi: repo1.ash.innoscale.net
 * remi-php72: repo1.ash.innoscale.net
 * remi-safe: repo1.ash.innoscale.net
 * updates: centos.mirror.ca.planethoster.net
 * webtatic: us-east.repo.webtatic.com
Package php-mysql-5.4.45-16.el7.remi.x86_64 is obsoleted by php-mysqlnd-7.2.14-1.el7.remi.x86_64 which is already installed

是否有任何简单的解决方案来解决这个混乱,或者我应该重新安装整个开发机器。

【问题讨论】:

  • Remi sez:“如果我的包裹破坏了你的服务器,这不是我的错,你不应该使用它们。” 1. 如果您需要在 Centos 上进行并行安装,请彻底解决并使用 docker。 2. 改用IUS repo。 3. 使用非 EOL 版本的 PHP,即 7.1-7.3 atm。
  • 我要去看看 docker,也许会接受这个建议。不好意思说我听说过,但还没有调查过。我正在尝试为 Centos 7 开发 Web 堆栈。我只需要重新安装这台充当服务器沙箱的开发机器。
  • 当你使用 remi 安装时,你可以使用remi-safe repo。这允许您为 PHP 安装使用单独的安装路径,而不会影响您的核心 repo 安装。类似于 IUS 或 SCL 存储库 要进行完全删除,请使用 yum history undo &lt;id&gt; 并按顺序回滚每个历史记录条目,直到您恢复到原始配置。 access.redhat.com/solutions/64069 请记住,这不会撤消您手动所做的任何配置文件更改 - 例如使用 php.ini。
  • @fyrye 您的解决方案运行良好。如果您将其作为答案提交,我将标记为正确答案。

标签: php mysql installation centos7 yum


【解决方案1】:

首先删除有关旧 php 版本的所有内容(需要一些时间...)

    sudo yum remove --setopt=clean_requirements_on_remove=1 php php-pear php-mysql php-cli php-common mod-php

然后,安装更新的版本(将花费更多时间)

    sudo yum install mod_php70u php70u-cli php70u-mysqlnd

不要忘记重新启动并检查 须藤 apachectl 重启 systemctl 状态 httpd

如果您使用 NGinX 运行 fpm,请使用以下卸载(这将保留配置,仅删除包/依赖项)

    sudo yum remove --setopt=clean_requirements_on_remove=1 php-fpm php-cli php-common php7-fpm php7-cli php7-common

并安装

    sudo yum install php7-fpm-nginx php7-cli php7-mysqlnd

(如果需要,请使用 [72] 而不是 [7])

保存,退出并重启

    sudo systemctl restart php-fpm
    sudo systemctl restart nginx #(or whatever you use)

请考虑降级到 7.1 版本,因为与最新版本相比,连接模块的痛苦可能会少一些,尤其是在总是有问题的 centOS 上

(感谢@fyrye 提供删除选项)

【讨论】:

  • 我还建议将--setopt=clean_requirements_on_remove=1 添加到您的yum remove,以确保也删除可能与核心包冲突的相关依赖项。请参阅man7.org/linux/man-pages/man8/yum.8.html 的 yum remove 部分了解更多信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-31
  • 1970-01-01
  • 1970-01-01
  • 2014-09-01
  • 1970-01-01
  • 2021-07-18
  • 2019-06-22
相关资源
最近更新 更多