首页 > 解决方案 > 在 Centos 7 上完全卸载并重新安装 PHP

问题描述

我需要在 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

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

标签: phpmysqlinstallationcentos7yum

解决方案


首先删除有关旧 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

不要忘记重新启动并检查 sudo apachectl restart systemctl status httpd

如果您正在使用 NGinX 运行 fpm,则使用以下卸载(这将保留配置只是 o 删除包/依赖项)

    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 提供删除选项)


推荐阅读