Полное удаление и повторная установка PHP на Centos 7

Мне нужно было попробовать PHP 5.6 и 5.5 на Centos 7. Итак, я установил их поверх идеальной рабочей установки 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. Я протестировал то, что хотел протестировать, и попытался переключиться обратно, отключив репозитории и удалив все 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

Есть ли какое-нибудь простое решение этого беспорядка, или мне нужно просто заново установить всю машину разработки.

Реми Сез: «Я не виноват, что мои пакеты ломают ваш сервер, вы не должны были их использовать». 1. Удалите все это и используйте докер, если вам нужны параллельные установки на Centos. 2. Вместо этого используйте репо ВМС. 3. Используйте версию PHP без EOL, которая составляет 7.1-7.3 атм.

Sammitch 09.01.2019 20:34

Я собираюсь найти докер и, возможно, прислушусь к этому совету. Стесняюсь сказать, что слышал об этом, но еще не изучал. Я нуб, пытаюсь разработать веб-стек для Centos 7. Мне просто нужно переустановить эту машину разработки, которая действует как серверная песочница.

raw-bin hood 09.01.2019 20:42

Когда вы используете remi installs, вы можете вместо этого использовать репозиторий remi-safe. Это позволяет использовать отдельные пути установки для установок PHP, не влияя на установку основного репо. Подобно репозиториям IUS или SCL. Чтобы выполнить полное удаление, используйте yum history undo <id> и последовательно откатывайте каждую запись истории, пока вы не вернетесь к исходной конфигурации. access.redhat.com/solutions/64069 Имейте в виду, что это не отменит никаких изменений файла конфигурации, которые вы сделали вручную - например, с php.ini.

Will B. 09.01.2019 21:26

@fyrye Ваше решение сработало отлично. Я отмечу как правильный ответ, если вы отправите его как ответ.

raw-bin hood 10.01.2019 02:48
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
20 475
1

Ответы 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

не забудьте перезагрузить и проверить sudo apachectl перезапуск systemctl статус httpd

Если вы используете fpm с NGinX, используйте следующую деинсталляцию (это сохранит конфигурацию только для удаления пакетов / зависимостей)

    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, чтобы гарантировать удаление связанных зависимостей, которые могут конфликтовать с основными пакетами. См. Раздел yum remove в man7.org/linux/man-pages/man8/yum.8.html для получения дополнительной информации.

Will B. 09.01.2019 22:14

Другие вопросы по теме