⚠️
Хостинг

Эски PHP версияси (EOL): хавфлар ва сайтни янгилаш режаси

08.11.2026
← Барча мақолалар

Кўплаб сайтлар йиллар давомида бир марта ўрнатилган PHP версиясида ишлашда давом этади. Сайт очилади, буюртмалар келиб туради, шунинг учун эгаси ҳеч нарсани ўзгартиришга эҳтиёж сезмайди. Лекин PHP версиясининг ҳам яшаш муддати бор ва у тугагач, яъни EOL (end of life) ҳолатига келгач, версия хавфсизлик ямоқларини олмай қўяди. Бу мақолада эски версиянинг аниқ хавфлари нимада эканини ва сайтни хавфсиз янгилаш режасини қандай тузишни кўриб чиқамиз.

PHP версияларининг ҳаёт цикли қандай ишлайди

PHP жамоаси ҳар йили, одатда ноябрь ойида, янги асосий версия чиқаради. Ҳар бир версия аввал фаол қўллаб-қувватлаш даврида бўлади: бу вақтда оддий хатолар ҳам, хавфсизлик заифликлари ҳам тузатилади. Кейин фақат хавфсизлик тузатишлари чиқадиган давр бошланади. 2024-йилда қабул қилинган қарорга кўра, бу икки давр биргаликда тахминан тўрт йил давом этади ва тугаш санаси йил охирига, 31-декабрга тўғриланади.

Қуйидаги жадвал 2026-йил ноябрь ҳолатига кўра асосий версияларнинг ҳолатини кўрсатади. Саналар ўзгариши мумкинлиги сабабли, қарор қабул қилишдан олдин PHP расмий сайтидаги қўллаб-қувватланадиган версиялар саҳифасини текшириб кўринг.

ВерсияҲолатХавфсизлик тузатишлари
7.4Қўллаб-қувватланмайди2022-йил ноябрда тугаган
8.0Қўллаб-қувватланмайди2023-йил ноябрда тугаган
8.1Қўллаб-қувватланмайди2025-йил 31-декабрда тугаган
8.2Фақат хавфсизлик2026-йил 31-декабргача
8.3Фақат хавфсизлик2027-йил 31-декабргача
8.4Фаол2028-йил 31-декабргача
8.5Фаол2029-йил 31-декабргача

Жадвалдан кўриниб турибдики, 8.2 версиясида ишлаётган сайтлар учун ҳам янгилаш вақти яқинлашиб қолди, 7.4 ва 8.0 да ишлаётган сайтлар эса бир неча йилдан бери ямоқсиз ишламоқда.

Эски версиянинг реал хавфлари

Биринчи ва энг асосий хавф бу тузатилмайдиган заифликлар. Қўллаб-қувватлаш тугагач PHP'да янги заифлик топилса, у эски версия учун расман тузатилмайди. Бундай заифликлар одатда оммага эълон қилинади ва автоматлаштирилган сканерлар интернетдаги сайтларни айнан шу заифликлар бўйича текширади. Натижада сайт эгаси ҳеч нарса қилмаса ҳам, унинг сайти ҳужум нишонига айланади.

Иккинчи хавф CMS ва плагинлар билан боғлиқ. WordPress, Joomla ва бошқа тизимларнинг янги версиялари вақт ўтиши билан эски PHP'ни қўллаб-қувватлашни тўхтатади. Натижада сайт эгаси CMS'ни янгилай олмайди, чунки янги версия эски PHP'да ишламайди. Плагинлардаги заифликлар эса фақат янги версияларда тузатилади. Шундай қилиб, эски PHP бутун сайтни эски ва заиф код ичида қамаб қўяди.

Учинчидан, эски версиялар секинроқ ишлайди. PHP 8 сериясида ички оптималлаштиришлар ва JIT компилятори қўшилган, кўп сайтлар оддий версия алмаштириш билан сезиларли тезлашади. Сайт тезлиги эса фойдаланувчи тажрибаси ва қидирув тизимларидаги ўрни учун муҳим.

Хостинг томонидаги чекловлар

Вақт ўтиши билан эски версиялар учун кенгайтмаларни янгилаш ҳам қийинлашади. Масалан, янги маълумотлар базаси сервери ёки янги шифрлаш кутубхонаси эски PHP билан тўлиқ мос ишламаслиги мумкин. Шу сабабли хостинг провайдерлари эски версияларни маълум вақтгача сақлаб турса ҳам, уларни абадий қолдириш имкони йўқ.

Мисол: Намангандаги мактаб сайти

Намангандаги хусусий мактабнинг сайти misol.uz 2018-йилда Joomla 3 асосида қурилган ва PHP 7.4 да ишлайди. Сайтда янгиликлар, дарс жадвали ва ота-оналар учун алоқа формаси бор. Joomla 3 нинг ўзи ҳам расмий қўллаб-қувватланмайди, шунинг учун бу ерда муаммо икки қаватли: эски CMS ва эски PHP. Бундай ҳолатда шунчаки PHP версиясини 8.3 га ўтказиш сайтни синдиради, чунки Joomla 3 бу версияни қўллаб-қувватламайди.

Тўғри йўл босқичма-босқич ҳаракат қилиш: аввал сайтнинг тўлиқ нусхасини синов субдоменига кўчириш, у ерда Joomla'ни янги асосий версияга кўчириш, кенгайтма ва шаблонларни алмаштириш, кейин эса PHP версиясини кўтариш. Ҳаммаси синовда ишлагач, асосий сайтга ўтказилади. Бу иш бир кунда бажарилмаслиги мумкин, шунинг учун уни олдиндан режалаштириш муҳим.

Янгилаш режаси: босқичлар

Ҳар қандай сайтни эски PHP'дан янгисига ўтказишда қуйидаги тартиб хатоларни камайтиради:

  1. Ҳозирги ҳолатни аниқланг: сайт қайси PHP версиясида ишлаётгани, CMS ва плагинлар версияси, махсус ёзилган код борми.
  2. Мақсадли версияни танланг. Ҳозирги шароитда камида 8.3, имкон бўлса 8.4 танлаш яхши, шунда кейинги бир неча йилга етади.
  3. Тўлиқ захира нусха олинг: файллар ва маълумотлар базаси.
  4. Синов нусхасини яратинг ва унда мақсадли версияни ёқинг.
  5. CMS, мавзу ва плагинларни янгиланг, мос келмайдиганларини алмаштиринг.
  6. Хатолар журналини текширинг ва топилган муаммоларни тузатинг.
  7. Асосий сайтни ташриф кам бўлган вақтда янгиланг ва бир неча кун кузатиб боринг.

Махсус ёзилган кодда энг кўп учрайдиган муаммоларни олдиндан қидириш мумкин. Қуйидаги буйруқ PHP 7 ва 8 да олиб ташланган функцияларни сайт папкасида излайди:

# PHP 7.0 da olib tashlangan mysql_* va PHP 8.0 da olib tashlangan funksiyalar
grep -rnE "mysql_(connect|query|fetch)|create_function\(|[^a-zA-Z_]each\(" \
  --include=*.php ~/www/misol.uz | grep -v "/vendor/"

# Yangi versiya bilan sintaksis tekshiruvi (yo'l serverga qarab farq qiladi)
find ~/www/misol.uz -name "*.php" -not -path "*/vendor/*" \
  -exec /opt/php83/bin/php -l {} \; | grep -v "No syntax errors"

Биринчи буйруқ натижаси бўш бўлса, бу яхши белги, лекин тўлиқ кафолат эмас. Иккинчи буйруқ фақат синтаксис хатоларини топади, иш вақтидаги хатоларни эса фақат синов нусхасида сайтни ҳақиқатан ишлатиб кўриш орқали аниқлаш мумкин.

Ким учун қанча вақт керак бўлади

Замонавий WordPress сайтида, агар мавзу ва плагинлар мунтазам янгиланиб келган бўлса, версияни кўтариш кўпинча бир неча дақиқалик иш ва кейинги текширувдан иборат. Бир неча йил янгиланмаган CMS'да эса аввал CMS'ни янгилаш керак бўлади ва бу бир-икки кун олиши мумкин. Махсус ёзилган эски кодда эса дастурчи кодни кўриб чиқиши керак, иш ҳажми код ҳажмига боғлиқ.

sayt.uz хостингида PHP версияси ҳар бир сайт учун алоҳида танланади, шунинг учун синов субдоменини янги версияда ишлатиб, асосий сайтни эски версияда қолдирган ҳолда бемалол тайёргарлик кўриш мумкин. Муҳими, эски версияни вақтинчалик ҳолат деб қабул қилиш ва янгилаш учун аниқ муддат белгилаш.

Ўхшаш мақолалар

🤖 Python ботни 24/7 ишлатиш: systemd ва PM2 билан барқарор ишга тушириш 🧠 Хотира етмаслиги (OOM): PHP ва Python жараёнлари нега ўлдирилади 🧠 "Allowed memory size exhausted": PHP хотира хатоси ва уни тўғри ҳал қилиш 🚀 Тўлиқ саҳифа кеши: қачон фойдали ва қачон халақит беради
🌐 Тил
🇺🇿 O'zbek 🇺🇿 Ўзбек ✓ 🇷🇺 Русский 🇬🇧 English