Заощадьте 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 це називається Вибрати версію 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)
      Якщо ваше хостинг-середовище працює на 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/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: Додайте репозиторій Ondřej Surý PHP

      Цей 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

      У деяких середовищах хостингу, особливо тих, що використовують CGI або FastCGI обробники PHP, ви можете впливати на поведінку 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 (для сайтів 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. Завжди спочатку тестуйте в середовищі Staging

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

      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 ManagerСпільний хостинг, VPS cPanelВхід до cPanel
      Директива .htaccessСпільний хостинг на базі ApacheМенеджер файлів / FTP
      update-alternatives (Ubuntu/Debian)VPS, виділені сервериSSH root/sudo
      SCL / Remi repository (CentOS/RHEL)VPS, виділені сервериSSH root/sudo
      Користувацький php.iniСередовища CGI/FastCGIМенеджер файлів / FTP

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

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