Yangi CMS o'rnatayotganda, Composer bilan loyiha paketlarini yuklayotganda yoki WordPress'ning "Sayt salomatligi" sahifasini ochganda, ko'pincha "talab qilinadigan PHP kengaytmasi topilmadi" mazmunidagi ogohlantirishga duch kelasiz. PHP'ning o'zi faqat asosiy imkoniyatlarni beradi, rasm bilan ishlash, arxivlarni ochish yoki turli tillardagi sana va raqamlarni to'g'ri formatlash kabi vazifalar esa alohida kengaytmalar orqali bajariladi. Eng ko'p so'raladiganlari to'rtta: intl, gd, imagick va zip. Quyida ularning har biri nima uchun kerakligi, yoqilganini qanday tekshirish va ularni qanday yoqish haqida gaplashamiz.
To'rt kengaytma va ularning vazifasi
intl: tillar, sanalar va raqamlar
intl kengaytmasi ICU kutubxonasiga asoslangan va matn, sana, raqam hamda valyutani turli tillar qoidalariga muvofiq qayta ishlaydi. Masalan, oy nomlarini o'zbek, rus yoki ingliz tilida chiqarish, so'mni to'g'ri ajratgichlar bilan ko'rsatish yoki matnlarni til qoidasiga ko'ra saralash uchun aynan shu kengaytma ishlatiladi. Ko'plab zamonaviy framework va CMS'lar (masalan, Laravel'ning ba'zi yordamchi funksiyalari, Symfony komponentlari, Magento) intl ni talab qiladi yoki uni qattiq tavsiya etadi. O'zbekcha uchun ICU'da lotin va kirill yozuvlari alohida lokallar sifatida mavjud:
$date = new IntlDateFormatter('uz_Latn_UZ', IntlDateFormatter::LONG, IntlDateFormatter::NONE);
echo $date->format(new DateTime('2026-03-21'));
$money = new NumberFormatter('uz_Latn_UZ', NumberFormatter::CURRENCY);
echo $money->formatCurrency(150000, 'UZS');
Natijaning aniq ko'rinishi serverdagi ICU versiyasiga bog'liq, shuning uchun uni o'z serveringizda tekshirib ko'ring.
gd: rasmlar bilan oddiy ishlash
gd rasmlarni o'qish, o'lchamini o'zgartirish, kesish, ustiga yozuv yoki suv belgisi qo'yish va boshqa formatga saqlash imkonini beradi. CMS'lar yuklangan rasmdan kichik nusxalar (thumbnail) yaratishda, CAPTCHA va grafiklar chizishda shu kengaytmadan foydalanadi. GD bir nechta formatni qo'llab-quvvatlaydi, lekin WebP yoki AVIF kabi formatlar qo'llab-quvvatlanishi kengaytma qanday yig'ilganiga bog'liq. Buni gd_info() funksiyasi bilan bilish mumkin.
imagick: kuchliroq rasm qayta ishlash
imagick ImageMagick dasturi bilan ishlaydigan kengaytma. U GD'dan ko'ra ko'proq formatni tushunadi, rangni yaxshiroq saqlaydi va katta rasmlarni sifatliroq kichraytiradi. PDF'ning birinchi sahifasidan rasm yasash ham odatda imagick orqali qilinadi, lekin buning uchun serverda Ghostscript bo'lishi va ImageMagick'ning xavfsizlik siyosati PDF bilan ishlashga ruxsat berishi kerak. WordPress imagick mavjud bo'lsa, rasmlar uchun uni GD'dan ustun qo'yadi.
zip: arxivlar bilan ishlash
zip kengaytmasi PHP'ga ZipArchive klassini qo'shadi. U orqali sayt arxiv yaratadi, yuklangan arxivni ochadi va eksport natijalarini bitta faylga to'playdi. Composer paketlarni yuklaganda zip kengaytmasi yoki serverdagi unzip dasturi bo'lmasa, sekinroq usulga o'tishi yoki ogohlantirish berishi mumkin. Ko'plab zaxira nusxa plaginlari, Excel fayllarini yaratadigan kutubxonalar (XLSX formati aslida zip arxiv) ham shu kengaytmaga tayanadi.
Kengaytma yoqilganini qanday tekshirish
Eng ishonchli usul veb-server orqali ishlaydigan PHP'ni tekshirishdir, chunki buyruq qatoridagi PHP boshqa versiya yoki boshqa sozlama bilan ishlashi mumkin. Sayt papkasiga vaqtinchalik fayl qo'yib, uni brauzerda oching va tekshirgandan keyin o'chirib tashlang:
<?php
foreach (['intl', 'gd', 'imagick', 'zip'] as $ext) {
echo $ext . ': ' . (extension_loaded($ext) ? 'bor' : "yo'q") . "<br>";
}
SSH orqali ulanish bo'lsa, buyruq qatoridan ham ko'rish mumkin. Faqat bu natija veb-saytdagi PHP bilan bir xil ekaniga ishonch hosil qiling, ayniqsa serverda bir nechta PHP versiyasi o'rnatilgan bo'lsa:
php -v
php -m | grep -E 'intl|gd|imagick|zip'
Umumiy hostingda qanday yoqiladi
Umumiy hostingda kengaytmalar server darajasida o'rnatiladi va mijoz ularni faqat panel ruxsat bergan doirada boshqaradi. ISPmanager panelida sayt uchun PHP versiyasini tanlash mumkin va server sozlamasiga qarab tanlangan versiya uchun kengaytmalar ro'yxati ham ko'rsatilishi mumkin. Ba'zan muammo kengaytmaning yo'qligida emas, balki saytga eski PHP versiyasi tanlanganida bo'ladi: yangi versiyaga o'tish bilan kerakli kengaytmalar ham paydo bo'ladi. Versiyani almashtirishdan oldin CMS va plaginlaringiz yangi PHP bilan mos ekanini tekshiring.
sayt.uz mijozlari panelga sayt.uz kabinetidagi hosting sahifasidan kiradi. Agar kerakli kengaytmani o'zingiz yoqa olmasangiz, kabinetdan texnik yordamga tiket yozing va qaysi sayt, qaysi PHP versiyasi va qaysi kengaytma kerakligini aniq ko'rsating.
O'z VPS serveringizda o'rnatish
VPS'da kengaytmalarni o'zingiz o'rnatasiz. Ubuntu 24.04 da standart PHP 8.3, kengaytmalar esa alohida paketlar sifatida keladi. O'rnatishdan keyin PHP-FPM xizmatini qayta ishga tushirish kerak, aks holda veb-sayt yangi kengaytmani ko'rmaydi:
sudo apt update
sudo apt install php8.3-intl php8.3-gd php8.3-zip php-imagick
sudo systemctl restart php8.3-fpm
php -m | grep -E 'intl|gd|imagick|zip'
Agar PHP Apache moduli sifatida ishlasa, php8.3-fpm o'rniga apache2 xizmati qayta ishga tushiriladi. Boshqa PHP versiyasi ishlatilsa, paket nomlaridagi raqamni moslang. Kengaytma o'rnatilgan, lekin yoqilmagan bo'lsa, Debian va Ubuntu'da phpenmod buyrug'i yordam beradi, masalan sudo phpenmod intl.
Misol: Andijondagi o'quv markazi portali
Andijondagi o'quv markazi example.uz uchun Laravel'da talabalar portali yozildi. Dasturchining kompyuterida hammasi ishladi, serverda esa composer install buyrug'i Root composer.json requires PHP extension ext-intl degan xato bilan to'xtadi. Bundan tashqari, kurs yakunida beriladigan sertifikatlarning kichik rasmlarini yaratish funksiyasi imagick'ni talab qilardi. Tekshiruv shuni ko'rsatdiki, saytga eski PHP versiyasi tanlangan va unda intl yoqilmagan edi. PHP versiyasi panelda yangilandi, yetishmayotgan kengaytmalar texnik yordam orqali yoqildi, shundan keyin composer install muvaffaqiyatli tugadi va sertifikat rasmlari to'g'ri yaratila boshladi.
Bir nechta amaliy maslahat
- Loyihaning
composer.jsonfaylida kerakli kengaytmalarni"ext-intl": "*"ko'rinishida ko'rsating, shunda yetishmayotgan kengaytma o'rnatish bosqichidayoq aniqlanadi. - Rasm qayta ishlash uchun GD ham, imagick ham bo'lsa, ilova qaysi birini ishlatayotganini bilib qo'ying, chunki natija sifati farq qilishi mumkin.
- Kengaytma yoqilgandan keyin vaqtinchalik tekshiruv faylini o'chirishni unutmang.