Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код: Skills Начать
Рубрики
Администрация

Как изменить версию PHP в вашей среде хостинга (Полное руководство)

Управление версией PHP — одна из наиболее критических административных задач для любого владельца веб-сайта или разработчика. Независимо от того, обновляетесь ли вы, чтобы воспользоваться последними улучшениями производительности, понижаете версию для совместимости с устаревшими приложениями или исправляете уязвимости безопасности, знание того, как именно переключаться между версиями PHP в различных хостинг-средах, является важным навыком. Это подробное руководство проведет вас через все доступные методы — от графического интерфейса cPanel до инструментов командной строки на VPS Hosting и выделенных серверах.

1. Почему управление версией PHP имеет значение

PHP работает на более чем 77% всех веб-сайтов с известным серверным языком, включая крупные платформы, такие как WordPress, Joomla, Drupal и Magento. Каждый основной выпуск PHP вводит значительные изменения:

  • Прирост производительности: PHP 8.x значительно быстрее, чем PHP 5.x или 7.x, благодаря компилятору JIT (Just-In-Time).
  • Патчи безопасности: Старые версии PHP в конечном итоге достигают конца жизни (EOL) и больше не получают обновления безопасности, оставляя ваш сайт уязвимым.
  • Совместимость приложений: Некоторые старые плагины, темы или пользовательские приложения были написаны для определенных версий PHP и могут сломаться в новых выпусках.
  • Соответствие требованиям хостинга: Многие хостинг-провайдеры требуют минимальную версию PHP для поддержания стандартов безопасности сервера.

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

2. Понимание версий PHP и совместимости

Перед внесением каких-либо изменений важно понять жизненный цикл выпуска PHP и структуру версий.

Нумерация версий PHP

PHP следует схеме версионирования MAJOR.MINOR.PATCH:

КомпонентПримерЗначение
Major8Значительные архитектурные изменения, возможны критические изменения
Minor8.2Новые функции, обратно совместимые улучшения
Patch8.2.10Только исправления ошибок и патчи безопасности

Жизненный цикл поддержки PHP

Каждая минорная версия PHP получает:

  • Активную поддержку примерно в течение 2 лет (исправления ошибок + патчи безопасности)
  • Поддержку только безопасности в течение дополнительного 1 года
  • Конец жизни (EOL), после которого патчи не выпускаются

Поддерживаемые версии PHP (по состоянию на 2024–2025)

Версия PHPСтатусПримечания
PHP 8.3Активная поддержкаПоследний стабильный выпуск
PHP 8.2Активная поддержкаРекомендуется для большинства приложений
PHP 8.1Только безопасностьПо-прежнему широко используется
PHP 8.0EOLИзбегайте — нет патчей безопасности
PHP 7.4EOLТолько поддержка наследия
PHP 7.3 и нижеEOLНастоятельно не рекомендуется

> Практическое правило: Всегда используйте самую высокую версию PHP, которую официально поддерживает ваше приложение. Если ваша CMS или фреймворк поддерживает PHP 8.2, нет причин использовать PHP 7.4.

3. Способ 1: Изменение версии PHP через cPanel (MultiPHP Manager)

cPanel — это наиболее широко используемая панель управления хостингом, и она предоставляет два встроенных инструмента для управления версией PHP: MultiPHP Manager (на уровне сервера или для отдельного домена) и MultiPHP INI Editor (для тонкой настройки параметров PHP). Если вы используете VPS с cPanel, оба инструмента доступны вам.

Шаг 1: Вход в cPanel

  1. Откройте браузер и перейдите на URL входа в cPanel:
    https://yourdomain.com:2083 (защищённый, рекомендуется)
    https://yourdomain.com/cpanel
  • Или прямой IP: https://your-server-ip:2083
    1. Введите ваше имя пользователя cPanel и пароль.
    2. Нажмите Вход.

    Шаг 2: Откройте MultiPHP Manager

    1. На панели управления cPanel прокрутите до раздела Программное обеспечение.
    2. Нажмите на MultiPHP Manager.

    > Альтернатива: В некоторых конфигурациях cPanel это может называться Select PHP Version, PHP Config или PHP Selector (последний вариант распространён на общем хостинге на базе CloudLinux). Интерфейс может немного отличаться, но процесс остаётся тем же.

    Шаг 3: Выберите домен и версию PHP

    В интерфейсе MultiPHP Manager:

    1. Вы увидите список всех доменов и поддоменов, размещённых на вашем аккаунте.
    2. Установите флажок рядом с доменом, который вы хотите изменить.
    3. В раскрывающемся списке PHP Version в верхней части страницы выберите нужную версию PHP (например, PHP 8.2).
    4. Нажмите Применить.

    > Важно: Если вы используете аккаунт общего хостинга, доступные версии PHP определяются вашим хостинг-провайдером. Если вам нужна версия, которая не указана в списке, свяжитесь с командой поддержки вашего хоста или рассмотрите возможность перехода на план VPS Hosting, где у вас есть полный контроль над установленными версиями PHP.

    Шаг 4: (Опционально) Настройте параметры PHP через MultiPHP INI Editor

    После переключения версий может потребоваться изменить значения конфигурации PHP:

    1. Вернитесь в раздел Программное обеспечение в cPanel.
    2. Нажмите MultiPHP INI Editor.
    3. Выберите ваш домен из раскрывающегося списка.
    4. Измените значения, такие как:
      memory_limit (например, 256M)
      upload_max_filesize (например, 64M)
      max_execution_time (например, 300)
      post_max_size (например, 64M)
      
      
      Нажмите Применить, чтобы сохранить изменения.
      
      Шаг 5: Проверьте изменение
      Создайте тестовый файл, чтобы подтвердить активную версию PHP (полные инструкции см. в разделе 7).
      4. Метод 2: Изменение версии PHP через .htaccess (Apache)
      Если ваша хостинг-среда работает на Apache, но не предоставляет графический селектор PHP, вы можете управлять версией PHP напрямую через файл .htaccess. Этот метод особенно полезен на планах Shared Web Hosting, где доступ на уровне сервера ограничен.
      Как это работает
      Apache использует обработчики для определения способа обработки файлов .php. Указав пользовательский обработчик в файле .htaccess, вы указываете Apache использовать определённую версию PHP для вашего сайта.
      Шаг 1: Доступ к файлу .htaccess
      Вы можете редактировать файл .htaccess через:
      
      Файловый менеджер cPanel: Перейдите в public_html, найдите .htaccess, щёлкните правой кнопкой мыши и выберите Редактировать.
      FTP/SFTP клиент: Подключитесь к серверу и перейдите в корневую папку вашего сайта (обычно public_html или www).
      Командная строка SSH: nano /home/username/public_html/.htaccess

      > Примечание: .htaccess — это скрытый файл. В FTP клиенте включите опцию «Показать скрытые файлы». В файловом менеджере cPanel установите флажок «Показать скрытые файлы (dotfiles)» в настройках в верхнем правом углу.

      Шаг 2: Добавьте директиву обработчика PHP

      Добавьте одну из следующих строк в файл .htaccess, в зависимости от соглашения об именовании обработчика PHP на вашем сервере:

      Для PHP 8.2:

      AddHandler application/x-httpd-php82 .php

      Для PHP 8.1:

      AddHandler application/x-httpd-php81 .php

      Для PHP 7.4 (устаревшая версия):

      AddHandler application/x-httpd-php74 .php

      Альтернативный синтаксис (используется на некоторых хостах):

      # Using suPHP or FastCGI
      Action php-cgi /cgi-bin/php82
      AddHandler php-cgi .php

      > Важно: Точное имя обработчика (x-httpd-php82, x-httpd-php81 и т. д.) зависит от того, как ваш хостинг-провайдер настроил PHP на своих серверах. Если приведённые выше варианты не работают, проверьте документацию вашего хоста или обратитесь в службу поддержки для получения правильных имён обработчиков.

      Шаг 3: Сохранение и тестирование

      Сохраните файл .htaccess и протестируйте ваш сайт. Если вы видите ошибку 500 Internal Server Error, имя обработчика, вероятно, неправильно — удалите строку и попробуйте альтернативный синтаксис.

      5. Способ 3: Изменение версии PHP через командную строку (VPS/Dedicated Servers)

      Если вы управляете собственными Dedicated Servers или VPS с root доступом, у вас есть полный контроль над установкой PHP и переключением версий. Это самый мощный и гибкий метод.

      Предварительные требования

      • Root или sudo доступ к вашему серверу
      • SSH клиент (Terminal на macOS/Linux, PuTTY или Windows Terminal на Windows)
      • Базовое знакомство с операциями командной строки Linux

      Ubuntu / Debian — Использование update-alternatives

      Системы на основе Ubuntu и Debian используют update-alternatives систему для управления несколькими версиями PHP одновременно.

      Шаг 1: Добавьте репозиторий PHP Ondřej Surý

      Этот PPA предоставляет несколько версий PHP для Ubuntu/Debian:

      sudo apt update
      sudo apt install -y software-properties-common
      sudo add-apt-repository ppa:ondrej/php
      sudo apt update

      Шаг 2: Установите нужную версию PHP

      # Install PHP 8.2 and common extensions
      sudo apt install -y php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-curl 
          php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-bcmath
      
      # Install PHP 8.1 if needed
      sudo apt install -y php8.1 php8.1-cli php8.1-fpm php8.1-mysql

      Шаг 3: Переключите версию PHP по умолчанию (CLI)

      # View all registered PHP alternatives
      sudo update-alternatives --list php
      
      # Switch to PHP 8.2
      sudo update-alternatives --set php /usr/bin/php8.2
      
      # Or use the interactive selector
      sudo update-alternatives --config php

      Интерактивный селектор отобразит что-то вроде:

      There are 3 choices for the alternative php (providing /usr/bin/php).
      
        Selection    Path             Priority   Status
      ------------------------------------------------------------
      * 0            /usr/bin/php8.2   82        auto mode
        1            /usr/bin/php7.4   74        manual mode
        2            /usr/bin/php8.1   81        manual mode
        3            /usr/bin/php8.2   82        manual mode
      
      Press <enter> to keep the current choice[*], or type selection number:

      Введите номер, соответствующий нужной вам версии, и нажмите Enter.

      Шаг 4: Переключите версию PHP для Apache (mod_php)

      # Disable current PHP module (e.g., PHP 8.1)
      sudo a2dismod php8.1
      
      # Enable new PHP module (e.g., PHP 8.2)
      sudo a2enmod php8.2
      
      # Restart Apache
      sudo systemctl restart apache2

      Шаг 5: Переключите версию PHP для Nginx (PHP-FPM)

      Для Nginx PHP обрабатывается через PHP-FPM. Обновите блок сервера Nginx, чтобы он указывал на правильный сокет FPM:

      # In your Nginx server block configuration
      location ~ .php$ {
          fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
          fastcgi_index index.php;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      }

      Затем перезагрузите PHP-FPM и Nginx:

      sudo systemctl restart php8.2-fpm
      sudo systemctl restart nginx

      CentOS / RHEL / AlmaLinux / Rocky Linux — Использование SCL или репозитория Remi

      Вариант A: Использование Software Collections (SCL) — CentOS 7

      # Install the SCL repository
      sudo yum install -y centos-release-scl
      
      # Install PHP 7.4 via SCL
      sudo yum install -y rh-php74 rh-php74-php-fpm rh-php74-php-mysqlnd
      
      # Enable PHP 7.4 for the current session
      sudo scl enable rh-php74 bash
      
      # Verify
      php --version

      > Примечание: Изменения SCL зависят от сеанса. Чтобы сделать их постоянными для пользователя, добавьте source /opt/rh/rh-php74/enable в ~/.bashrc.

      Вариант B: Использование репозитория Remi — CentOS 7/8, AlmaLinux, Rocky Linux

      # Install EPEL and Remi repositories
      sudo dnf install -y epel-release
      sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm  # For RHEL 8/AlmaLinux 8
      
      # List available PHP streams
      sudo dnf module list php
      
      # Reset current PHP module
      sudo dnf module reset php
      
      # Enable PHP 8.2 stream
      sudo dnf module enable php:remi-8.2
      
      # Install PHP 8.2
      sudo dnf install -y php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-zip
      
      # Verify
      php --version

      Переключение PHP для отдельных сайтов (версия PHP для каждого сайта)

      На серверах, работающих с несколькими веб-сайтами, часто требуются разные версии PHP для каждого сайта. Самый чистый подход — запустить несколько пулов PHP-FPM:

      # Start PHP-FPM for multiple versions
      sudo systemctl start php7.4-fpm
      sudo systemctl start php8.1-fpm
      sudo systemctl start php8.2-fpm

      Затем настройте каждый виртуальный хост Nginx для использования другого сокета FPM:

      # Site A — PHP 8.2
      server {
          server_name site-a.com;
          root /var/www/site-a;
          location ~ .php$ {
              fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
          }
      }
      
      # Site B — PHP 7.4 (legacy application)
      server {
          server_name site-b.com;
          root /var/www/site-b;
          location ~ .php$ {
              fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
          }
      }

      6. Метод 4: Изменение версии PHP через php.ini

      В некоторых хостинг-окружениях, особенно использующих обработчики PHP CGI или FastCGI, вы можете влиять на поведение PHP — и иногда даже на версию — через пользовательский файл php.ini размещенный в корневой директории вашего сайта.

      Создание пользовательского php.ini

      1. Создайте файл с именем php.ini в корневой директории вашего сайта (public_html).
      2. Добавьте ваши директивы конфигурации:
      ; Custom PHP configuration
      memory_limit = 256M
      upload_max_filesize = 64M
      post_max_size = 64M
      max_execution_time = 300
      max_input_vars = 3000
      date.timezone = "UTC"

      > Примечание: Этот метод контролирует *параметры* PHP, а не обязательно саму *версию* PHP. Выбор версии через php.ini возможен только на определенных хостинг-конфигурациях. Для полного контроля версии используйте cPanel, .htaccess или методы командной строки, описанные выше.

      7. Как проверить активную версию PHP

      После внесения любых изменений всегда проверяйте, что активна правильная версия PHP. Есть несколько способов это сделать:

      Способ A: Создайте тестовую страницу phpinfo()

      1. Создайте новый файл с именем phpinfo.php в корневом каталоге вашего веб-сайта (public_html).
      2. Добавьте следующее содержимое:
      <?php
      phpinfo();
      ?>
      1. Перейдите на https://yourdomain.com/phpinfo.php в вашем браузере.
      2. Страница отобразит подробную информацию о конфигурации PHP. Версия PHP показана в самом верху.

      > Предупреждение о безопасности: Удалите этот файл сразу же после тестирования. Вывод phpinfo() раскрывает конфиденциальные детали конфигурации сервера, которые могут помочь злоумышленникам.

      Способ B: Проверка через командную строку (SSH)

      php --version
      # or
      php -v

      Ожидаемый результат:

      PHP 8.2.10 (cli) (built: Sep  5 2023 08:12:49) (NTS)
      Copyright (c) The PHP Group
      Zend Engine v4.2.10, Copyright (c) Zend Technologies
          with Zend OPcache v8.2.10, Copyright (c), by Zend Technologies

      Способ C: Проверка через простой PHP скрипт

      Для менее подробной проверки используйте этот минимальный скрипт вместо полного phpinfo():

      <?php
      echo 'PHP Version: ' . PHP_VERSION;
      echo '<br>PHP Major Version: ' . PHP_MAJOR_VERSION;
      echo '<br>PHP Minor Version: ' . PHP_MINOR_VERSION;
      ?>

      Способ D: Проверка через WordPress Admin (для сайтов WordPress)

      В панели управления WordPress:

      1. Перейдите в Инструменты → Здоровье сайта.
      2. Нажмите на вкладку Информация.
      3. Разверните раздел Сервер.
      4. Найдите Версия PHP.

      8. Распространённые ошибки после переключения версий PHP

      Переключение версий PHP иногда может вызвать проблемы. Вот наиболее распространённые проблемы и способы их решения:

      Ошибка 1: White Screen of Death (WSOD) или пустая страница

      Причина: Плагин, тема или пользовательский код использует синтаксис или функции, несовместимые с новой версией PHP.

      Решение:

      • Включите режим отладки WordPress, добавив в wp-config.php:
        define('WP_DEBUG', true);
        define('WP_DEBUG_LOG', true);
        define('WP_DEBUG_DISPLAY', false);
      • Проверьте /wp-content/debug.log на наличие конкретных сообщений об ошибках.
      • Деактивируйте все плагины и переключитесь на тему по умолчанию, чтобы изолировать проблему.

      Ошибка 2: 500 Internal Server Error

      Причина: Часто вызывается неправильным обработчиком PHP в .htaccess или расширением PHP, которое не установлено для новой версии.

      Решение:

      • Удалите или исправьте директиву AddHandler в .htaccess.
      • Проверьте журнал ошибок сервера: tail -f /var/log/apache2/error.log или tail -f /var/log/nginx/error.log.
      • Убедитесь, что необходимые расширения PHP установлены для новой версии.

      Ошибка 3: «Call to undefined function» или «Class not found»

      Причина: Расширение PHP, требуемое вашим приложением (например, php-gd, php-mbstring, php-xml), не установлено для новой версии PHP.

      Решение:

      # Ubuntu/Debian — install missing extensions for PHP 8.2
      sudo apt install php8.2-gd php8.2-mbstring php8.2-xml php8.2-curl php8.2-zip
      
      # Restart web server
      sudo systemctl restart apache2  # or nginx

      Ошибка 4: Предупреждения о устаревших функциях

      Причина: Ваш код использует функции, которые были устаревшими в более старых версиях PHP и удалены в новых (например, функции mysql_* удалены в PHP 7.0).

      Решение:

      • Обновите ваш код или плагины, чтобы использовать современные эквиваленты (например, mysqli_* или PDO).
      • Если немедленные изменения кода невозможны, рассмотрите возможность временного остаться на совместимой версии PHP, пока вы планируете обновление.

      Ошибка 5: Версия PHP не меняется, несмотря на выполнение шагов

      Причина: Могут действовать несколько конфигураций PHP (например, CLI и веб-сервер), или кэш предоставляет старые ответы.

      Решение:

      • Очистите кэш браузера и любые кэши на стороне сервера (OPcache, Redis, Varnish).
      • Перезагрузите веб-сервер: sudo systemctl restart apache2 или sudo systemctl restart nginx.
      • Подтвердите, что вы редактируете правильный .htaccess или файл конфигурации для нужного домена.

      9. Лучшие практики управления версиями PHP

      Следуйте этим рекомендациям для поддержания здоровой, безопасной и производительной среды PHP:

      1. Всегда сначала тестируйте в промежуточной среде

      Никогда не переключайте версии PHP непосредственно на живом производственном сайте. Установите промежуточную среду — либо поддомен, либо отдельный сервер — и тщательно протестируйте приложение перед применением изменений в production.

      2. Держите PHP в актуальном состоянии

      Подпишитесь на официальные объявления безопасности PHP и планируйте обновления до того, как ваша текущая версия достигнет End of Life. Запуск версий PHP с истекшей поддержкой — одна из наиболее распространённых причин компрометации веб-сайтов.

      3. Проверьте совместимость плагинов и зависимостей перед обновлением

      Перед обновлением PHP проверьте совместимость:

      • Всех установленных плагинов и тем CMS
      • Зависимостей Composer (composer.json)
      • Пользовательского кода приложения

      Используйте инструменты, такие как PHPCompatibility (набор правил PHP_CodeSniffer), для сканирования вашей кодовой базы на предмет проблем совместимости.

      4. Синхронизируйте расширения PHP

      При переключении версий PHP всегда переустанавливайте все необходимые расширения для новой версии. Отсутствующее расширение — наиболее распространённая причина ошибок после обновления.

      5. Используйте контроль версий для файлов конфигурации

      Сохраняйте ваши .htaccess, php.ini и файлы конфигурации сервера в репозитории Git. Это облегчает откат изменений, если что-то пойдёт не так.

      6. Мониторьте после переключения

      После изменения версии PHP мониторьте:

      • Журналы ошибок приложения
      • Журналы ошибок сервера (/var/log/apache2/error.log, /var/log/nginx/error.log)
      • Метрики производительности приложения
      • Оповещения мониторинга доступности

      7. Выберите правильный хостинг для гибкости PHP

      Если вы постоянно ограничены опциями PHP вашей хостинг-среды, возможно, пришло время обновиться. Планы Shared Web Hosting предлагают тщательно отобранный набор версий PHP, управляемых провайдером, в то время как VPS Hosting дают вам полную свободу устанавливать, настраивать и переключать любую версию PHP в любое время. Для управления корпоративного уровня и производительности Dedicated Servers обеспечивают максимальную гибкость.

      10. Заключение

      Изменение версии PHP — это фундаментальная задача управления хостингом, которая напрямую влияет на безопасность, производительность и совместимость вашего веб-сайта. Независимо от того, используете ли вы MultiPHP Manager cPanel, редактируете директивы .htaccess, или управляете установками PHP через командную строку на VPS или выделенном сервере, ключевые принципы остаются неизменными: тестируйте перед развертыванием, проверяйте после изменений и всегда поддерживайте версию PHP в активном цикле поддержки.

      Вот краткое резюме рассмотренных методов:

      МетодЛучше всего подходит дляТребуемый доступ
      cPanel MultiPHP ManagerShared hosting, cPanel VPSВход в cPanel
      .htaccess директиваApache-based shared hostingFile Manager / FTP
      update-alternatives (Ubuntu/Debian)VPS, выделенные серверыSSH root/sudo
      SCL / Remi repository (CentOS/RHEL)VPS, выделенные серверыSSH root/sudo
      Custom php.iniCGI/FastCGI окруженияFile Manager / FTP

      Если вы ищете хостинг-окружение, которое делает управление версией PHP простым и дает вам необходимый контроль, изучите планы VPS Hosting AlexHost — с полным root доступом, несколькими дистрибутивами Linux и гибкостью для запуска любой версии PHP, требуемой вашими приложениями. Вы также можете изучить наш диапазон VPS Control Panels, чтобы найти интерфейс управления, который лучше всего подходит для вашего рабочего процесса.

      Будьте активны в обновлении PHP, и ваши веб-сайты останутся быстрыми, безопасными и совместимыми на долгие годы.