Как да промените версията на 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 в крайна сметка достигат End of Life (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 хостинг план, където имате пълен контрол над инсталираните 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 файл. Този метод е особено полезен на Shared Web Hosting планове, където достъпът на ниво сървър е ограничен.
Как работи
Apache използва handlers за определяне на начина, по който .php файлове се обработват. Чрез указване на персонализиран handler в .htaccess, вие инструктирате Apache да използва специфична PHP версия за вашия сайт.
Стъпка 1: Достъп до вашия .htaccess файл
Можете да редактирате .htaccess чрез:
cPanel File Manager: Навигирайте до public_html, намерете .htaccess, щракнете с десния бутон и изберете Edit.
FTP/SFTP клиент: Свържете се със сървъра си и навигирайте до вашия web root (обикновено public_html или www).
SSH команден ред: nano /home/username/public_html/.htaccess> Забележка: .htaccess е скрит файл. В вашия FTP клиент активирайте “Show Hidden Files.” В cPanel File Manager отметнете “Show Hidden Files (dotfiles)” в настройките горе вдясно.
Стъпка 2: Добавете PHP Handler директива
Добавете един от следните редове към вашия .htaccess файл, в зависимост от конвенцията за именуване на PHP handler на вашия сървър:
За PHP 8.2:
AddHandler application/x-httpd-php82 .phpЗа PHP 8.1:
AddHandler application/x-httpd-php81 .phpЗа PHP 7.4 (legacy):
AddHandler application/x-httpd-php74 .phpАлтернативен синтаксис (използван на някои хостове):
# Using suPHP or FastCGI
Action php-cgi /cgi-bin/php82
AddHandler php-cgi .php> Важно: Точното име на handler (x-httpd-php82, x-httpd-php81, и т.н.) зависи от начина, по който вашия хостинг провайдър е конфигурирал PHP на своите сървъри. Ако горното не работи, проверете документацията на вашия хост или се свържете със поддръжката за правилните имена на handler.
Стъпка 3: Запазване и тестване
Запазете .htaccess файла и тестирайте вашия сайт. Ако видите 500 Internal Server Error, името на handler е вероятно неправилно — премахнете реда и опитайте алтернативен синтаксис.
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 server блок, за да сочи към правилния 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. Method 4: Changing PHP Version via php.ini
В някои хостинг среди, особено тези, които използват CGI или FastCGI PHP handlers, можете да влияете на 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: Бял екран на смърт (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 Вътрешна грешка на сървъра
Причина: Често причинена от неправилен 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 версии директно на живия производствен сайт. Настройте среда за подготовка — или поддомен, или отделен сървър — и тествайте приложението си внимателно, преди да прилагате промени в производството.
2. Поддържайте PHP актуализиран
Абонирайте се на официалните съобщения за безопасност на PHP и планирайте надграждане, преди текущата версия да достигне End of Life. Работата с EOL 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 на вашата хостинг среда, може да е време за надграждане. Планове за споделен уеб хостинг предлагат кураторски набор от PHP версии, управлявани от доставчика, докато VPS хостинг ви дава пълна свобода да инсталирате, конфигурирате и превключвате всяка PHP версия по всяко време. За контрол и производителност на корпоративно ниво, Dedicated сървъри осигуряват максимална гъвкавост.
10. Заключение
Промяната на вашата PHP версия е фундаментална задача за управление на хостинг, която директно влияе на сигурността, производителността и съвместимостта на вашия уебсайт. Независимо дали използвате cPanel MultiPHP Manager, редактирате .htaccess директиви или управлявате PHP инсталации чрез командния ред на VPS или dedicated сървър, ключовите принципи остават същите: тестирайте преди развръщане, проверете след промяна и винаги поддържайте вашата PHP версия в активно поддържания жизнен цикъл.
Ето бързо резюме на методите, които бяха разгледани:
| Метод | Най-добре за | Необходим достъп |
|---|---|---|
| cPanel MultiPHP Manager | Shared hosting, cPanel VPS | cPanel вход |
| .htaccess директива | Apache-базиран shared hosting | File Manager / FTP |
update-alternatives (Ubuntu/Debian) | VPS, dedicated сървъри | SSH root/sudo |
| SCL / Remi repository (CentOS/RHEL) | VPS, dedicated сървъри | SSH root/sudo |
| Custom php.ini | CGI/FastCGI среди | File Manager / FTP |
Ако търсите хостинг среда, която прави управлението на PHP версията лесно и ви дава необходимия контрол, изследвайте VPS Hosting планове на AlexHost — с пълен root достъп, множество Linux дистрибуции и гъвкавост да стартирате всяка PHP версия, която вашите приложения изискват. Можете също да изследвате нашия диапазон от VPS Control Panels, за да намерите интерфейса за управление, който най-добре отговаря на вашия работен процес.
Бъдете проактивни с вашите PHP актуализации и вашите уебсайтове ще останат бързи, сигурни и съвместими за години напред.
от всички хостинг услуги