Мне нужно было попробовать 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
Есть ли какое-нибудь простое решение этого беспорядка, или мне нужно просто заново установить всю машину разработки.
Я собираюсь найти докер и, возможно, прислушусь к этому совету. Стесняюсь сказать, что слышал об этом, но еще не изучал. Я нуб, пытаюсь разработать веб-стек для Centos 7. Мне просто нужно переустановить эту машину разработки, которая действует как серверная песочница.
Когда вы используете remi installs, вы можете вместо этого использовать репозиторий remi-safe. Это позволяет использовать отдельные пути установки для установок PHP, не влияя на установку основного репо. Подобно репозиториям IUS или SCL. Чтобы выполнить полное удаление, используйте yum history undo <id> и последовательно откатывайте каждую запись истории, пока вы не вернетесь к исходной конфигурации. access.redhat.com/solutions/64069 Имейте в виду, что это не отменит никаких изменений файла конфигурации, которые вы сделали вручную - например, с php.ini.
@fyrye Ваше решение сработало отлично. Я отмечу как правильный ответ, если вы отправите его как ответ.






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