Як змінити версію 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:
| Компонент | Приклад | Значення |
|---|---|---|
| Major | 8 | Значні архітектурні зміни, можливі критичні зміни |
| Minor | 8.2 | Нові функції, зворотно сумісні поліпшення |
| Patch | 8.2.10 | Виправлення помилок та патчі безпеки |
Цикл підтримки PHP
Кожна мінорна версія PHP отримує:
- Активну підтримку протягом приблизно 2 років (виправлення помилок + патчі безпеки)
- Підтримку лише безпеки протягом додаткового 1 року
- Кінець життя (EOL), після якого патчі не випускаються
Поточно підтримувані версії PHP (станом на 2024–2025)
| Версія PHP | Статус | Примітки |
|---|---|---|
| PHP 8.3 | Активна підтримка | Найновіший стабільний випуск |
| PHP 8.2 | Активна підтримка | Рекомендується для більшості додатків |
| PHP 8.1 | Лише безпека | Все ще широко використовується |
| PHP 8.0 | EOL | Уникайте — немає патчів безпеки |
| PHP 7.4 | EOL | Лише підтримка спадщини |
| 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
- Відкрийте браузер і перейдіть на URL входу до cPanel:
https://yourdomain.com:2083 (безпечно, рекомендується)
https://yourdomain.com/cpanelhttps://your-server-ip:2083- Введіть своє ім’я користувача cPanel та пароль.
- Натисніть Вхід.
Крок 2: Відкрийте MultiPHP Manager
- На панелі керування cPanel прокрутіть до розділу Програмне забезпечення.
- Натисніть на MultiPHP Manager.
> Альтернатива: У деяких конфігураціях cPanel це називається Вибрати версію PHP, Конфігурація PHP або Селектор PHP (останнє поширене на спільному хостингу на базі CloudLinux). Інтерфейс може трохи відрізнятися, але процес однаковий.
Крок 3: Виберіть свій домен і версію PHP
В інтерфейсі MultiPHP Manager:
- Ви побачите список усіх доменів і піддоменів, розміщених на вашому обліковому записі.
- Установіть прапорець поруч із доменом, який ви хочете змінити.
- З розкривного списку Версія PHP у верхній частині сторінки виберіть потрібну версію PHP (наприклад,
PHP 8.2). - Натисніть Застосувати.
> Важливо: Якщо у вас є обліковий запис спільного хостингу, доступні версії PHP визначаються вашим хостинг-провайдером. Якщо вам потрібна версія, яка не вказана в списку, зв’яжіться з командою підтримки вашого хоста або розгляньте можливість переходу на план VPS Hosting, де у вас є повний контроль над встановленими версіями PHP.
Крок 4: (Опціонально) Налаштуйте параметри PHP через MultiPHP INI Editor
Після переходу на іншу версію вам може знадобитися коригування значень конфігурації PHP:
- Повертайтеся до розділу Програмне забезпечення в cPanel.
- Натисніть MultiPHP INI Editor.
- Виберіть свій домен з розкривного списку.
- Змініть значення такі як:
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 nginxCentOS / 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
- Створіть файл з назвою
php.iniу кореневій папці вашого веб-сайту (public_html). - Додайте свої директиви конфігурації:
; 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()
- Створіть новий файл з назвою
phpinfo.phpу кореневому каталозі вашого веб-сайту (public_html). - Додайте наступний вміст:
<?php
phpinfo();
?>- Перейдіть до
https://yourdomain.com/phpinfo.phpу вашому браузері. - На сторінці буде відображена вся інформація про конфігурацію 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:
- Перейдіть до Інструменти → Здоров’я сайту.
- Натисніть вкладку Інформація.
- Розгорніть розділ Сервер.
- Знайдіть версію 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, і ваші веб-сайти залишатимуться швидкими, безпечними та сумісними протягом багатьох років.
на всіх хостингових послугах