Не прошло и пол года, как дефолтная версия php 7.2 в стандартных репозиториях Centos слегка устарела и хочется чего-то новее. Недолго музыка играла :) Продолжаем бесконечную возню с устаревшими пакетами из стандартных репозиториев. Я перевел сайты wordpress с 7.2 на 7.4 и без тестов заметил значительный прирост производительности.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Введение
Ускорение от обновления версии php с 7.2 до 7.4 я заметил в первую очередь в админке сайтов, так как провожу там достаточно много времени. Из-за того, что там ничего не кэшируется, а сам wordpress не очень расторопен, тормоза заметны. И их стало заметно меньше, что видно невооруженным глазом, так что советую попробовать обновление php.
У меня есть статьи про настройку web сервера centos на базе nginx и apache. На момент их написания в стандартных репозиториях Centos была версия php 7.2, которая на тот момент была наиболее актуальной и поддерживаемой большинством движков. Сейчас ситуация изменилась и я бы советовал ставить версию 7.4.
Пошаговая инструкция (How-to)
Необходимое время: 10 минут
Итак, начинаем обновление php с 7.2 до 7.4 на Centos 8.
- Проверим текущую версию php.
# php -v
PHP 7.2.11 (cli) (built: Oct 9 2018 15:09:36) ( NTS ) - Подключаем репозиторий remi.
# dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
- Отключаем текущий модуль php:7.2.
# dnf module reset php:7.2
- Активируем модуль php:remi-7.4.
# dnf module enable php:remi-7.4
- Проверяем список модулей php.
# dnf module list php
- Запускаем обновление php 7.2 до 7.4
# dnf update
- Установка php дополнений для wordpress.
На всякий случай привожу список всех пакетов, которые необходимы для сайтов wordpress. Если у вас что-то не было раньше установлено, доустановится. Например, я не всегда ставлю imagick, так как он тянет за собой кучу зависимостей. Но все же лучше поставить, так как пакет пригодится для многих плагинов оптимизации изображений.
# dnf install php-dom php-simplexml php-ssh2 php-xml php-xmlreader php-curl php-date php-exif php-filter php-ftp php-gd php-hash php-iconv php-json php-libxml php-pecl-imagick php-mbstring php-mysqlnd php-openssl php-pcre php-posix php-sockets php-spl php-tokenizer php-zlib
- Проверяем новую версию php.
Если вы обновляетесь с версии 7.2, то ничего дополнительно настраивать не надо. Все старые конфиги актуальны.
# php -v
Теперь можно сходить в админку WordPress и посмотреть там на версию php.
Заключение
Такая простая инструкция по обновлению php получилась. Экспериментальный для меня формат статьи в виде how-to. Минимум слов, максимум настройки. Думаю, что буду периодически делать такие краткие заметки для рутинных операций, где достаточно простого копипаста.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Огромное спасибо за ваш труд, Ваш сайт кладезь полезной информации, я когда в яндексе поисковый запрос делаю рядом дописываю название сайта, чтоб первым линком шел он ибо здесь все четко по делу и понятным языком! Предлагаю заменить dnf update на dnf update php, так все же корректнее нежели обновлять все пакеты установленные в системе.
Спасибо большое ! Все получилось !
Везде, что не пробовал, не получается, ошибки с epel-release. Но странно, в данном случае не выдавало ошибок, хотя я пробую с 5.4 обновиться. Точнее не так, некоторые пакеты не стали. Но блин, почему мне до сих пор показывает версию 5.4? По идее я ее отключил, а если что-то не правильно пошло, то 7.4 не встала. Почему? Помогите, уже 4 час сижу бьюсь, CentOS 8, только обновился с чистой 7, мусора еще нет.
А как обновлялись? Если что, Centos не поддерживает обновление с релиза на релиз. Все статьи, которые предлагают обновление с 7 на 8, что я пробовал, были либо не рабочие, либо глючные. Centos 8 стоит ставить с нуля, если хотите стабильной и надежной работы системы. Я так подозреваю, что ваши проблемы как раз и из-за обновления с 7 на 8. Само по себе обновление php не представляет каких-то проблем. Статьи у меня на сайте есть по этой теме.
Да как раз обновление прошло без проблем, первой же попавшейся статьей, только на англоязычных ресурсах, так как русские все с зеркалами Яндекса, а у нас с этим проблемы.
Изначально хотел ставить сразу 8, но он отказался становиться ещё на этапе установки. Ни из boot образа, не из полного. Погугли, все советовали из-за этого ставить 7 и обновляться.
Возможно, не надо было ставить дополнительно пакет разработчика, который мне и подсунул PHP 5.4? Как-то не хочется опять по новому ставить, хочется разобраться в проблеме.
а теперь как назад на 7.2?)) а то у меня настроено по Настройка web сервера apache в CentOS 8 и хз как в конфиг mysql залезть, выходит теперь ошибка: sql_mode: STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION Режимы `STRICT*` не поддерживаются.
перепроверил, это не изза версии php, но всёж как то надо исправить.
Я начинаю любить этот сайт. Админ следит за нововведениями, обновляет и добавляет информативные новости
Спасибо, очень полезная информация
Статью бы дополнить установкой нескольких версий php на CentOS 8, не нашёл в интернете мануала на эту систему.
Лично я бы не стал морочиться с несколькими версиями php на сервере, а использовал бы docker для этого.
Спасибо, обновился, все ок-)
Где то руганулся на это
==================
PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /usr/share/pear/PEAR/PackageFile/v2/Validator.php on line 1933
PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /usr/share/pear/PEAR/PackageFile/v2/Validator.php on line 1933
PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /usr/share/pear/PEAR/PackageFile/v2/Validator.php on line 1933
==============