Что такое PHP-версия, база данных MySQL и как их выбрать?

Что такое PHP?

PHP (Hypertext Preprocessor) — это серверный язык программирования, созданный Расмусом Лердорфом в 1995 году. Да, вы не ослышались: 1995. Это не опечатка. PHP старше, чем большинство современных фреймворков, и даже старше, чем некоторые из вас, дорогие читатели.

Но возраст — не приговор. Наоборот, это признак зрелости. PHP прошёл через эпохи: от простых скриптов для подсчёта посетителей до сложнейших архитектур, управляющих миллиардными бизнесами. WordPress, Facebook (в ранние годы), Wikipedia, Slack (частично), Magento — всё это работает или работало на PHP.

Но ключевой момент здесь — версия. PHP не статичен. Он развивается. И каждая версия — это не просто номер, а целая философия, набор возможностей, уровень безопасности и производительности.

Если вы заглянете в историю PHP, то увидите два мира:

До PHP 7 — эпоха медленного, небезопасного, но гибкого языка. PHP 5.x доминировал более десяти лет. Многие до сих пор используют его — особенно на старых хостингах, где никто не обновлял окружение с 2013 года.

После PHP 7 началась настоящая революция. В 2015 году вышла версия PHP 7.0 — и это был не просто очередной апдейт. Это был прорыв. Производительность выросла почти вдвое, потребление оперативной памяти заметно сократилось, а в язык наконец пришли механизмы, делающие код надёжнее: строгая типизация, возможность указывать типы для простых значений (чисел, строк, логических величин), явное задание типа возвращаемого функцией результата, а также удобный оператор для безопасной работы с возможными пустыми значениями (так называемый «оператор объединения с null»).

С тех пор каждая новая крупная версия — 7.1, 7.2 и далее вплоть до 8.3 — несла с собой значимые улучшения.

В PHP 8.0 (2020 год) появился так называемый JIT-компилятор (от англ. Just-In-Time — «точно в срок»), который в определённых сценариях ускорил выполнение кода в несколько раз — особенно это заметно в вычислительно сложных задачах, хотя для типичных веб-сайтов выигрыш скромнее, но всё равно ощутим.

PHP 8.1 (2021) принёс поддержку перечислений (специальных типов, которые могут принимать только заранее заданный набор значений), свойства, доступные только для чтения (их нельзя изменить после инициализации), а также упрощённый синтаксис для передачи функций как значений.

В PHP 8.2 (2022) разработчики пошли дальше: теперь целые классы можно объявлять «только для чтения», а также появилась возможность безопасно обращаться к свойствам объектов, даже если промежуточные звенья в цепочке могут оказаться пустыми — без риска вызвать фатальную ошибку.

Наконец, PHP 8.3 (выпущен в ноябре 2023 года) добавил встроенную функцию для проверки корректности JSON-данных, позволил указывать типы для констант внутри классов и упростил динамическое обращение к константам. Кроме того, в этой версии ещё больше укрепили защиту от потенциальных уязвимостей.

В сообществе PHP действует чёткая политика поддержки версий, и она строится на трёх этапах:

Полная поддержка — на этом этапе разработчики языка выпускают обновления для всего: исправляют ошибки в работе, устраняют уязвимости и добавляют новые возможности.

Поддержка только безопасности — версия больше не получает новых функций и не исправляется по мелким багам. Но если обнаруживается критическая уязвимость, которая может привести к взлому или утечке данных, для неё выпускается экстренный патч.

Прекращение поддержки — с этого момента версия официально «умирает». Никаких обновлений больше не будет: ни исправлений, ни патчей, ни даже самых опасных уязвимостей. Никогда.

На момент написания статьи актуальные версии:

  • PHP 8.4 — выйдет в ноябре 2025 (пока в стадии разработки).
  • PHP 8.3 — активная поддержка до ноября 2026.
  • PHP 8.2 — активная поддержка до декабря 2024, затем только безопасность до декабря 2025.
  • PHP 8.1 — EOL с ноября 2023. Не поддерживается.
  • PHP 8.0 — EOL с ноября 2022.
  • PHP 7.4 — EOL с ноября 2022.
  • PHP 7.3 и ниже — мёртвы. Совсем.

Да, вы правильно прочитали: PHP 8.1 больше не получает обновлений безопасности. Если ваш сайт работает на нём — вы рискуете. Серьёзно.

Почему это важно?

Потому что уязвимости в PHP — это не теоретическая угроза. Это реальные дыры, через которые хакеры получают доступ к вашему серверу, базе данных, клиентским данным. В 2023 году, например, была обнаружена уязвимость в PHP 8.0 и ниже, позволяющая выполнить произвольный код через сериализацию (CVE-2023-3823). Обновление до PHP 8.1+ закрывало проблему. Но если вы на PHP 7.4 — вы обречены.

Что такое MySQL?

MySQL — реляционная система управления базами данных (СУБД), созданная в 1995 году шведской компанией MySQL AB. В 2008 году её купила Sun Microsystems, а в 2010 — Oracle. Несмотря на смену владельцев, MySQL остаётся одной из самых популярных СУБД в мире.

Почему? Потому что она стабильна, быстра, хорошо документирована и интегрируется с PHP как родная. Да, есть PostgreSQL, есть MariaDB, есть SQLite — но MySQL — это стандарт де-факто для веба.

Как и PHP, MySQL имеет версии. И здесь тоже действует правило: устаревшая версия = риск.

Актуальные версии MySQL (по состоянию на октябрь 2025):

MySQL 8.4 — LTS-версия, выпущена в апреле 2024, поддержка до 2031 года.

MySQL 8.0 — основная ветка с 2018 года, поддержка до апреля 2026.

MySQL 5.7 — EOL с октября 2023. Больше не поддерживается.

MySQL 5.6 и ниже — мёртвы.

Обратите внимание: MySQL 5.7 официально умер в октябре 2023. Это значит, что Oracle больше не выпускает для неё патчей. Если вы до сих пор на 5.7 — вы в зоне риска.

Что даёт переход на MySQL 8.0+?

Улучшенная производительность: новый оптимизатор запросов, быстрый парсинг SQL.

Безопасность: по умолчанию включено шифрование, улучшенные механизмы аутентификации (caching_sha2_password вместо mysql_native_password).

JSON-поддержка: полноценные операции с JSON-данными прямо в SQL.

Оконные функции, CTE (Common Table Expressions), роли — всё то, что делает SQL мощным и выразительным.

Invisible Indexes, Descending Indexes, Histograms — инструменты для тонкой настройки производительности.

Но! MySQL 8.0 не полностью совместим с 5.7. Например:

Во-первых, изменился алгоритм, по которому MySQL сортирует и сравнивает текстовые данные. Раньше по умолчанию использовалась сравнительно простая и быстрая схема сортировки под названием utf8mb4_general_ci. В новой версии её заменили на более точную и лингвистически корректную — utf8mb4_0900_ai_ci. На практике это может повлиять на порядок строк в результатах запросов, особенно если в ваших данных есть буквы с диакритическими знаками (например, в польском, чешском или французском языках) или специфические символы. В редких случаях даже простые сортировки по русскому тексту могут дать иной порядок, чем раньше.

Во-вторых, требования к паролям пользователей базы данных стали строже. MySQL 8.0 по умолчанию включает политику, которая требует от паролей определённой сложности: они должны быть достаточно длинными, содержать заглавные и строчные буквы, цифры и специальные символы. Это повышает безопасность, но может вызвать проблемы при развёртывании старых скриптов или при подключении через устаревшие инструменты, которые не рассчитаны на такие ограничения.

В-третьих, включён так называемый «строгий режим» обработки SQL-запросов. Если раньше база данных могла «сгладить» ошибку — например, автоматически обрезать слишком длинную строку или подставить ноль вместо некорректного числа, — то теперь такие действия приведут к ошибке выполнения. Это заставляет разработчиков писать более аккуратный и предсказуемый код, но ломает старые запросы, написанные без учёта этих правил. Особенно часто это проявляется в устаревших CMS или кастомных скриптах, где данные вставлялись «как есть», без валидации.

Как выбрать PHP-версию?

Выбор версии PHP — это баланс между совместимостью, безопасностью и производительностью.

Если у вас есть сайт, то первым делом узнайте, на какой версии PHP он работает. Это можно сделать:

  • Через phpinfo() — создайте файл info.php с содержимым <?php phpinfo(); ?> и откройте его в браузере.
  • Через панель хостинга (cPanel, ISPmanager и т.д.).
  • Через SSH: php -v.

Если вы видите 7.4 или ниже — срочно планируйте миграцию.

Если вы используете CMS (WordPress, Joomla, Drupal) или фреймворк (Laravel, Symfony), проверьте их официальные требования:

  • WordPress 6.6+ (2024–2025) рекомендует PHP 8.0+, но поддерживает 7.4+. Однако разработчики предупреждают: «PHP 7.4 достиг EOL. Мы не гарантируем работу».
  • Laravel 10 требует PHP 8.1+.
  • Drupal 10 требует PHP 8.1+.
  • Magento 2.4.6 требует PHP 8.1–8.2.

Если ваше ПО требует PHP 7.4 — оно устарело. Или вы устарели. Выбор за вами.

Никогда не обновляйте PHP на боевом сервере без тестирования. Создайте копию сайта на тестовом сервере, установите новую версию PHP и проверьте:

  • Загрузку всех страниц.
  • Работу форм, корзины, авторизации.
  • Логи ошибок (error_log, php_errors.log).
  • Производительность (время ответа, потребление памяти).

Часто проблемы возникают из-за:

  • Устаревших расширений (например, mysql_* функции удалены в PHP 7.0).
  • Нестрогой типизации (в PHP 8+ ошибки типов вызывают исключения, а не предупреждения).
  • Использования устаревших функций (create_function(), each(), ereg() и т.д.).

Выберите версию с запасом — оптимальный выбор — PHP 8.2 или 8.3.

PHP 8.2 — стабильна, поддерживается до конца 2025 (безопасность), большинство современных фреймворков и CMS её поддерживают.

PHP 8.3 — новее, быстрее, безопаснее. Поддержка до 2026+. Если ваш хостинг её предоставляет — берите.

Не выбирайте PHP 8.4 (когда выйдет) сразу после релиза. Дайте сообществу 2–3 месяца на выявление багов.

Не оставайтесь на PHP 8.1 и ниже — это риск.

Как выбрать версию MySQL?

Проверьте текущую версию

Выполните в консоли MySQL:

SELECT VERSION();

Или через PHP:

echo mysqli_get_server_info($connection);

Если вы видите 5.7 или ниже — пора действовать.

Оцените совместимость

MySQL 8.0 не полностью обратно совместим с 5.7. Основные точки трения:

Аутентификация: новый плагин caching_sha2_password. Старые драйверы (особенно в PHP 7.x) могут не подключиться. Решение: обновить драйверы или явно указать mysql_native_password при создании пользователя (но это менее безопасно).

SQL-моды: в MySQL 8.0 по умолчанию включён STRICT_TRANS_TABLES. Это значит, что некорректные INSERT/UPDATE будут вызывать ошибки, а не «тихо» обрезать данные.

Зарезервированные слова: некоторые имена столбцов или таблиц, которые работали в 5.7, могут стать недопустимыми в 8.0.

Сделайте бэкап.

Перед миграцией:

  • Полный дамп базы: mysqldump -u user -p database > backup.sql
  • Тестовая установка MySQL 8.0 на отдельном сервере.
  • Импорт дампа и проверка целостности данных.
  • Запуск всех критических запросов (поиск, фильтрация, отчёты).

Выберите версию с перспективой

MySQL 8.0 — надёжный выбор. Поддержка до 2026.

MySQL 8.4 LTS — идеален для новых проектов. Поддержка до 2031.

Не используйте MySQL 5.7. Это как ездить на машине без тормозов.

PHP и MySQL вместе: симбиоз или конфликт?

PHP и MySQL — классическая пара. Но их совместимость зависит от драйверов.

Основные драйверы в PHP:

mysql — устарел, удалён в PHP 7.0.

mysqli — улучшенная версия, поддерживает prepared statements, транзакции.

PDO — универсальный интерфейс для работы с разными СУБД, включая MySQL.

Рекомендация: используйте либо универсальный механизм PDO, либо современное расширение mysqli — но обязательно с так называемыми «подготовленными запросами». Именно они надёжно защищают ваш сайт от SQL-инъекций, не позволяя злоумышленникам внедрить вредоносный код через формы или URL-параметры.

Также важно: версия драйвера должна поддерживать вашу версию MySQL.

Например:

  • PDO MySQL в PHP 8.1+ полностью поддерживает MySQL 8.0.
  • В PHP 7.4 могут быть проблемы с caching_sha2_password — потребуется обновление libmysqlclient.

Проверить поддержку можно так:

var_dump(PDO::getAvailableDrivers());

Если в списке есть mysql — всё в порядке.

Хостинг: где это всё живёт

Выбор хостинга — не менее важен, чем выбор версий.

Многие дешёвые хостинги до сих пор предлагают:

  • PHP 7.4 «по умолчанию».
  • MySQL 5.7 «для совместимости».
  • Отсутствие возможности выбора версии.

Это красный флаг.

Требования к современному хостингу:

  • Возможность выбора PHP 8.2 / 8.3.
  • MySQL 8.0 или 8.4.
  • Поддержка OPcache, JIT (для PHP 8+).
  • Регулярные обновления ОС и ПО.
  • Возможность staging-среды.

Если ваш хостинг не даёт выбрать версию PHP — меняйте хостинг!

MariaDB: альтернатива или ловушка?

MariaDB — форк MySQL, созданный одним из основателей MySQL после покупки Oracle. Он совместим с MySQL на уровне протокола и SQL.

Плюсы MariaDB:

  • Более открытая разработка.
  • Некоторые улучшения производительности (Aria, ColumnStore).
  • Часто используется в дистрибутивах Linux (например, CentOS 8+).

Минусы:

  • Не все фичи MySQL 8.0+ реализованы (например, роли, оконные функции — есть, но с ограничениями).
  • Возможны нюансы в поведении запросов.

Можно ли использовать MariaDB вместо MySQL?

Да, если ваше приложение не зависит от специфичных фич MySQL 8.0+. Но проверяйте документацию.

Версии MariaDB:

  • 10.6 — LTS до 2026.
  • 11.0+ — новые версии, но менее стабильны.

Выбор версии PHP и MySQL определяет:

  • Будет ли ваш сайт работать через год.
  • Украдут ли данные ваших клиентов.
  • Сможете ли вы внедрить новые функции или застрянете в прошлом.

Я видел, как владельцы бизнеса экономили на обновлении, а потом тратили в десять раз больше на восстановление после взлома. Я видел, как разработчики игнорировали EOL-уведомления, а потом их проекты переставали работать после автоматического обновления хостинга.

Не будьте этими людьми.

Сегодня ваш минимум — PHP 8.2 и MySQL 8.0.
Ваш идеал — PHP 8.3 и MySQL 8.4 LTS.

Проверьте свой стек. Протестируйте обновления. Обновите хостинг, если нужно. Потратьте день на миграцию — и спите спокойно следующие пять лет.

Оцените статью
Рейтинг хостинг-провайдеров
Добавить комментарий