صفحه اصلی Yummy Customers آهنگسازی ازدواج و رابطه ایده‌ها برنامه ریزی و پلن و نقشه پیشرفت کاری تبلیغات، تولید ویدئو و VFX ترید تکنولوژی خرید و فروش خلاصه کتاب دسته‌بندی نشده سرمایه گذاری ملک و خانه نقاشی و انیمیشن

پلاگین‌های PHP برای فشرده‌سازی تصاویر WordPress

پیشنهاد نهایی من برای VPS اوبونتو

✅ پردازش تصویر: libvips + php-vips

✅ وب‌سرور: Nginx + PHP-FPM

برای وردپرس روی VPS معمولاً از Apache سبک‌تر و سریع‌تره (خصوصاً با کش و CDN بعداً).


1) نصب پیش‌نیازها روی Ubuntu

فرض می‌کنم PHP نصب داری. اگر نداری، من پایین یک چک‌لیست کامل هم می‌دم.

نصب libvips + ابزارهای وابسته

sudo apt update
sudo apt install -y libvips libvips-dev

نصب php-vips

روی اوبونتو معمولاً دو حالت داری:

حالت A (اگر پکیج آماده داشت)

sudo apt install -y php-vips

حالت B (اگر پکیج نبود)

از PECL نصب می‌کنیم (این حالت رایج‌تره):

sudo apt install -y php-pear php-dev gcc make pkg-config
sudo pecl install vips

# فعال‌سازی اکستنشن
echo "extension=vips.so" | sudo tee /etc/php/*/fpm/conf.d/20-vips.ini
echo "extension=vips.so" | sudo tee /etc/php/*/cli/conf.d/20-vips.ini

sudo systemctl restart php*-fpm

تست اینکه اکستنشن بالا آمده

php -m | grep vips

اگر vips دیدی یعنی اوکیه.


2) مطمئن شو AVIF ساپورت میشه

این مهمه. همه‌ی libvipsها AVIF رو پشتیبانی می‌کنن، ولی بهتره چک کنیم.

یک تست سریع:

vips --list | grep -i heif

اگر چیزی مثل heifsave / heifload دیدی یعنی HEIF/AVIF OK است.

اگر نبود، اینا رو نصب کن و دوباره چک کن:

sudo apt install -y libheif-dev libheif1

3) چرا Nginx + PHP-FPM بهتره اینجا؟

چون:


4) پیاده‌سازی داخل وردپرس (منطق کلی)

تو وردپرس بهترین جا برای “pipeline تصویری” اینه:

  1. کاربر PNG/JPG آپلود می‌کنه
  2. تو هوک آپلود/متادیتا:
    • تصویر رو max-width=1500 ریسایز می‌کنی
    • خروجی AVIF می‌سازی (مثلاً کیفیت 45–60)
    • فایل اصلی JPG/PNG رو حذف می‌کنی
    • attachment رو به فایل AVIF اشاره می‌دی

نکته: برای اینکه سایت رو از خرابکاری‌های “فایل حذف شد ولی وردپرس هنوز انتظارش رو داره” نجات بدیم، باید اول AVIF ساخته بشه، بعد attachment/meta آپدیت شه، بعد فایل اصلی پاک شه.

اگر بخوای، همین الان کد آماده‌ی وردپرسش رو هم می‌دم (کاملاً پلاگین‌وار یا توی functions.php) که دقیقاً همین کار رو انجام بده.


5) یک نکته مهم: فقط AVIF یا AVIF + fallback؟

پیشنهاد من برای پروژه تو:
✅ ذخیره اصلی: AVIF
✅ fallback: WebP (اختیاری، ولی بهتره)

اینطوری هم “اصلی” ذخیره نمی‌مونه (JPG/PNG حذف می‌شه)، هم سازگاری بالاتر می‌ره.


6) چک‌لیست سریع Nginx + PHP-FPM (اگر هنوز نصب نکردی)

sudo apt update
sudo apt install -y nginx php-fpm php-cli php-mysql
sudo systemctl enable --now nginx
sudo systemctl enable --now php*-fpm