Модул 8 · 8.4
PHP версии и ъпгрейди
Вижте го в кратък филм
Модул 8: Резервни копия, тестова среда (staging) и PHP ъпгрейди · Време за четене: 10 минути
Учебна цел: След този урок ще можете безопасно да подготвите и извършите ъпгрейд на PHP, а при нужда и да го върнете.
Ключови понятия: жизнен цикъл на PHP (активна поддръжка, само сигурност, край), съвместимост на WordPress, темата и разширенията, остаряло (deprecated), предупреждение, фатална грешка, Състояние на сайта, лог за грешки, тестова среда (staging), възстановяване, възлагане на ъпгрейда
Защо версиите на PHP имат значение
WordPress, Вашата тема и Вашите разширения (плъгини) са написани на PHP (урок 1.2). Всяка година излиза нова версия на PHP (8.3, 8.4, 8.5, ...). Всяка версия се поддържа за определен период:
- активна поддръжка: две години с поправки на грешки и на пробиви в сигурността;
- само сигурност: след това още две години само с поправки за сигурността;
- край (end of life): никакви поправки повече, дори и за пробиви.
Състоянието към 8 ноември 2026 г. според php.net:
| Версия | Актуализации за сигурност до | Състояние |
|---|---|---|
| 8.1 и по-стари | (изтекло) | Без актуализации |
| 8.2 | 31 декември 2026 | Само сигурност, наближава краят |
| 8.3 | 31 декември 2027 | Само сигурност |
| 8.4 | 31 декември 2028 | Активна |
| 8.5 | 31 декември 2029 | Активна |
Уебсайт на версия без актуализации работи със софтуер с известни пробиви, които вече не се поправят. Освен това по-новите версии са осезаемо по-бързи (урок 6.3). А wordpress.org препоръчва PHP 8.3 или по-нова (към ноември 2026 г.). Целта е да сте в крак всяка година, а не да правите голям скок веднъж на пет години.
Защо ъпгрейдът може да счупи нещо
Всяка нова версия на PHP променя нещо. Функции, които от години са отбелязани като остарели (deprecated), се премахват, а правилата стават по-строги. Няколко известни примера:
- PHP 8.0 премахна, наред с други,
create_function()иeach(), а много предупреждения станаха грешки; - PHP 8.2 отбеляза като остаряло динамичното създаване на свойства на обекти, което се среща често в по-стари разширения.
Има три вида съобщения и разликата между тях е важна:
| Съобщение | Значение | Последица |
|---|---|---|
| Deprecated (остаряло) | „Това все още работи, но ще изчезне в следваща версия“ | Нищо видимо; предупреждение за бъдещето |
| Warning или Notice | Нещо не е съвсем наред | Обикновено нищо видимо, понякога някоя част работи странно |
| Fatal error | PHP спира | Бяла страница или „критична грешка“ (урок 5.4) |
Самият WordPress обикновено се справя добре с новите версии на PHP. Рискът е в старите разширения и теми, особено ако отдавна не са обновявани или са разработени по поръчка.
Как да откриете текущата си версия
- В WordPress: Инструменти > Състояние на сайта, раздел Информация, под Server: версията на PHP. Състояние на сайта Ви предупреждава и ако версията Ви е остаряла.
- В панела на Вашия хостинг: при DirectAdmin с CloudLinux в Select PHP version (с „(current)“ след текущата версия).
- Понякога сървърът я издава в хедъра
X-Powered-By: PHP/8.3.x. По-добре да не е така (урок 7.4), но ако е там, се вижда бързо.
Внимание: при много хостинг доставчици версията на PHP важи за целия Ви пакет, т.е. за всички уебсайтове в него. Един стар уебсайт в същия пакет може да Ви спъва. Това е още една причина да премахнете старите уебсайтове или да им дадете отделен пакет.
Ъпгрейдът: стъпка по стъпка
- Първо обновете. Обновете WordPress, темата и всички разширения на текущата версия на PHP. Така голяма част от проблемите вече са решени, защото авторите адаптират кода си за новите версии на PHP.
- Вижте какво казват разширенията Ви. На страницата на разширението в wordpress.org е посочена изискваната версия на PHP; в changelog често пише „compatible with PHP 8.x“. Разширение, което не е обновявано от години (урок 5.3), е кандидат за замяна.
- Направете резервно копие (урок 8.1).
- Тествайте в тестова среда (staging) (урок 8.3). Ако хостинг доставчикът Ви позволява различна версия на PHP за всеки уебсайт, поставете тестовата среда на новата версия. Ако не може (една версия за пакет), тествайте в тестова среда в друг пакет, локално, или изберете спокоен момент на живия сайт, като държите старата версия готова за връщане.
- Превключване: изберете новата версия в панела си. При DirectAdmin с CloudLinux я избирате в Select PHP version и натискате Apply; без Apply нищо не се променя.
- Проверете веднага: отворете уебсайта си и разгледайте няколко страници, включително администрацията, формуляр и (при онлайн магазин) плащането. Проверете в лога за грешки (урок 5.4) за нови редове
PHP Fatal error. - Разширения на PHP и настройки: при някои хостинг доставчици разширенията на PHP и опциите (като
memory_limit) са обвързани с версията. След смяната проверете дали са настроени правилно за новата версия.
Ако нещо се обърка
- Фатална грешка: върнете старата версия (при повечето хостинг доставчици това става веднага), за да заработи уебсайтът Ви отново. Потърсете в лога за грешки кое разширение или коя тема е причината (пътят е в съобщението за грешка), обновете го, заменете го или помолете автора за решение. След това опитайте отново.
- Само съобщения deprecated: няма причина да се връщате. Но това е предупреждение: при следващата версия може да стане грешка. Запишете кое разширение е.
- Код по поръчка, който вече не работи: стар уебсайт, направен от уеб разработчик, може да съдържа код, който никой вече не поддържа. Тогава този код трябва да бъде адаптиран от някой, който познава PHP. Някои хостинг доставчици, сред които и WebOké, предлагат да направят това вместо Вас.
Не оставяйте уебсайт „завинаги“ на стара версия, само защото едно разширение не може да продължи напред. Това е отлагане на проблем, който расте всяка година.
Повече сигурност предварително
За тези, които искат да отидат по-далеч: с PHP_CodeSniffer и правилата на PHPCompatibilityWP можете да проверите кода на разширенията и темите си за неща, които не работят в по-нова версия на PHP, без да стартирате уебсайта. Така се откриват много проблеми, но не всички. Тестването в тестова среда (staging) остава необходимо.
На практика: как изглежда в панела
Като пример използваме DirectAdmin с CloudLinux. В cPanel това често се нарича MultiPHP Manager или Select PHP Version, а в Plesk PHP Settings.
- Отворете Select PHP version (под Extra Features).
- Щракнете върху версията до PHP version, изберете новата версия и натиснете Apply.
- Проверете разделите Extensions и Options за новата версия.
- Проверете уебсайта си и лога за грешки. Ако нещо не работи, изберете старата версия и Apply.
Обобщение
- Всяка версия на PHP получава две години активна поддръжка и две години само сигурност; след това няма повече поправки. Към 8 ноември 2026 г. версия 8.1 не получава нищо, а 8.2 само до края на 2026 г.
- Ъпгрейдът чупи най-вече стари разширения и теми; deprecated е предупреждение, а fatal error спира уебсайта.
- Последователност: обновете всичко, проверете разширенията, резервно копие, тест в тестова среда, превключване, незабавна проверка.
- Ако нещо се обърка, върнете старата версия, намерете виновника в лога за грешки и решете проблема; не оставайте на стара версия.
- При много хостинг доставчици версията важи за целия пакет; премахнете старите уебсайтове.
Тест (quiz)
Задача
Задача A8.4: Все още ли се поддържа Вашата версия на PHP? Вижте в Инструменти > Състояние на сайта, раздел Информация, Server, коя версия на PHP използва уебсайтът Ви, и я въведете заедно с Вашия домейн. Програмата сравнява версията със списъка на поддържаните версии от php.net: зелено при активна поддръжка, оранжево при само сигурност, червено, ако вече няма актуализации. Ако сървърът Ви показва версията в хедъра X-Powered-By, програмата проверява и дали тя съвпада с въведената от Вас (и Ви съобщава, че е по-добре да скриете този хедър, урок 7.4).
Задача D8.4: План за ъпгрейд. Напишете план за ъпгрейд на уебсайта си до най-новата версия на PHP, която предлага Вашият хостинг доставчик. Попълнете: текуща и целева версия, кои разширения и теми имате и дали поддържат целевата версия (и къде сте прочели това), къде тествате (тестова среда, друг пакет, локално), как можете да се върнете и кога ще го направите. Изпълнете го, ако можете, и запишете какво се появи в лога за грешки.
Задача D8.4: План за ъпгрейд
Тази задача изпълнявате сами; никой не я проверява. Отбележете какво сте направили и маркирайте задачата като изпълнена.
Изберете целева версия с активна поддръжка (или поне все още получаваща обновления за сигурност) и посочете за всяко разширение източник (страница на разширението, changelog, диагностика на сайта).
Вашите отметки и бележки остават само в този браузър; не ги изпращаме никъде. Ако сте влезли, в Моите курсове запазваме само че сте изпълнили задачата.
Допълнително четене
Тези статии описват стъпките в панелите на WebOké; в други панели работят по подобен начин.
- Ръководство за DirectAdmin 14.1: Избор на версия на PHP (Select PHP version)
- Ръководство за DirectAdmin 14.6: Fouten след ъпгрейд на PHP и намиране на лога с грешки
- Промяна на PHP версията и PHP настройките (и какво да направите при грешки след надграждане)
- Ръководство за DirectAdmin 14.2: Включване и изключване на PHP разширения
- Ръководство на WebOké 6.11: PHP ъпгрейд: заявка за услугата
- Поддържани версии на PHP (php.net, на английски): https://www.php.net/supported-versions.php
- Версии на PHP и WordPress (make.wordpress.org, на английски): https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/
