Модул 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: Инструменти > Състояние на сайта, раздел Информация, под Сървър: 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 разширенията и опциите (като
memory_limit) са свързани с определена версия. Проверете след смяната дали са правилно зададени за новата версия.
Ако нещо се обърка
- Фатална грешка: върнете старата версия (при повечето хостинг доставчици това става веднага), за да заработи отново Вашият сайт. Потърсете в лога на грешките кое разширение или коя тема е виновна (пътят е посочен в съобщението за грешка), актуализирайте го, заменете го или помолете създателя за решение. След това опитайте отново.
- Само съобщения deprecated: няма причина да се връщате назад. Но това е предупреждение: при следващата версия може да стане грешка. Отбележете кое разширение е.
- Код по поръчка, който вече не работи: стар сайт, изработен от уебдизайнер, може да съдържа код, който вече никой не поддържа. Тогава този код трябва да бъде адаптиран от някой, който познава PHP. Някои хостинг доставчици, включително WebOké, предлагат да направят това вместо Вас.
Не оставяйте сайт „завинаги“ на стара версия, защото едно разширение не се справя. Това е отлагане на проблем, който всяка година става по-голям.
Повече сигурност предварително
За тези, които искат да отидат по-далеч: с PHP_CodeSniffer и правилата на PHPCompatibilityWP можете да проверите кода на Вашите разширения и теми за неща, които не работят в по-нова PHP версия, без да пускате сайта. Това намира много, но не всичко. Тестването в тестова среда остава необходимо.
На практика: ето как изглежда в панел
Като пример използваме 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 спира сайта.
- Ред: актуализирайте всичко, проверете разширенията, резервно копие, тестване в тестова среда, преминаване, веднага проверка.
- Ако нещо се обърка, върнете старата версия, намерете виновника в лога на грешките и го решете; не оставайте на стара версия.
- При много хостинг доставчици версията важи за целия пакет; разчистете старите сайтове.
Тест
Задача
Задача A8.4: Все още ли се поддържа Вашата версия на PHP? Проверете в Инструменти > Състояние на сайта (раздел Информация, Сървър) коя 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/
