15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
01.11.2024

Як змінити версію PHP у вашому хостинг-середовищі (Повний посібник)

Керування версією PHP є однією з найважливіших адміністративних задач для будь-якого власника веб-сайту або розробника. Незалежно від того, чи ви оновлюєтеся, щоб скористатися найновішими поліпшеннями продуктивності, чи понижуєте версію для сумісності зі старими додатками, чи виправляєте вразливості безпеки, знання того, як саме перемикати версії PHP у різних середовищах хостингу, є важливою навичкою. Цей комплексний посібник проведе вас через кожен доступний метод — від графічного інтерфейсу cPanel до інструментів командного рядка на VPS Hosting та виділених серверах.

Зміст

  1. Чому управління версією PHP важливе
  2. Розуміння версій PHP та сумісності
  3. Метод 1: Зміна версії PHP через cPanel (MultiPHP Manager)
  4. Метод 2: Зміна версії PHP через .htaccess (Apache)
  5. Метод 3: Зміна версії PHP через командний рядок (VPS/виділені сервери)
  6. Метод 4: Зміна версії PHP через php.ini
  7. Як перевірити активну версію PHP
  8. Поширені помилки після перемикання версій PHP
  9. Найкращі практики управління версією PHP
  10. Висновок

1. Чому управління версією PHP важливе {#why-it-matters}

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

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

Невдалість активного управління версією PHP може призвести до зламаної функціональності, порушень безпеки або повного простою веб-сайту. Розуміння того, як контролювати цей параметр — незалежно від типу вашого хостингу — є обов’язковим для будь-якого серйозного веб-адміністратора.

2. Розуміння версій PHP та сумісності {#understanding-versions}

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

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

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

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

Цикл підтримки PHP

Кожна мінорна версія PHP отримує:

  • Активну підтримку приблизно на 2 роки (виправлення помилок + патчі безпеки)
  • Підтримку тільки безпеки протягом додаткового 1 року
  • End of Life (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-method}

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 позначають це як Вибрати версію PHP, Конфігурація PHP або Селектор PHP (останнє поширене на хостингу на основі CloudLinux). Інтерфейс може трохи відрізнятися, але процес однаковий.

    Крок 3: Виберіть свій домен та версію PHP

    У інтерфейсі MultiPHP Manager:

    1. Ви побачите список усіх доменів та піддоменів, розміщених на вашому обліковому записі.
    2. Позначте прапорець поруч з доменом, який ви хочете змінити.
    3. З розкривного списку Версія PHP у верхній частині сторінки виберіть потрібну версію 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) {#htaccess-method}
      Якщо ваше середовище хостингу запускає Apache, але не надає графічний селектор PHP, ви можете контролювати версію PHP безпосередньо через ваш файл .htaccess. Цей метод особливо корисний на планах Спільного веб-хостингу, де доступ на рівні сервера обмежений.
      Як це працює
      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/виділені сервери) {#cli-method}

      Якщо ви керуєте своїми власними виділеними серверами або 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 {#phpini-method}

      У деяких середовищах хостингу, особливо тих, що використовують обробники 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 {#verify}

      Після внесення будь-яких змін завжди перевіряйте, що правильна версія 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 (для сайтів WordPress)

      На панелі керування WordPress:

      1. Перейдіть до Інструменти → Здоров’я сайту.
      2. Натисніть вкладку Інформація.
      3. Розгорніть розділ Сервер.
      4. Шукайте версію PHP.

      8. Поширені помилки після перемикання версій PHP {#common-errors}

      Перемикання версій PHP іноді може спричинити проблеми. Ось найпоширеніші проблеми та способи їх вирішення:

      Помилка 1: Білий екран смерті (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: Попередження про

      15%

      Збережіть 15% на всі хостинг-послуги

      Перевірте свої навички і отримайте Знижку на будь-який план хостингу

      Використовуй код:

      Skills
      Почати