پیشنهاد نهایی من برای VPS اوبونتو
✅ پردازش تصویر: libvips + php-vips
- سریعتر و کممصرفتر از Imagick (برای VPS خیلی مهمه)
- تبدیل به AVIF + ریسایز + فشردهسازی رو عالی انجام میده
✅ وبسرور: 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 بهتره اینجا؟
چون:
- برای ریکوئستهای زیاد (۱۰-۲۰هزار بازدید روزانه) سبکتره
- با cache (FastCGI cache / Redis object cache) خیلی بهتر جواب میده
- فشار CPU/RAM کمتر میشه
4) پیادهسازی داخل وردپرس (منطق کلی)
تو وردپرس بهترین جا برای “pipeline تصویری” اینه:
- کاربر PNG/JPG آپلود میکنه
- تو هوک آپلود/متادیتا:
- تصویر رو max-width=1500 ریسایز میکنی
- خروجی AVIF میسازی (مثلاً کیفیت 45–60)
- فایل اصلی JPG/PNG رو حذف میکنی
- attachment رو به فایل AVIF اشاره میدی
نکته: برای اینکه سایت رو از خرابکاریهای “فایل حذف شد ولی وردپرس هنوز انتظارش رو داره” نجات بدیم، باید اول AVIF ساخته بشه، بعد attachment/meta آپدیت شه، بعد فایل اصلی پاک شه.
اگر بخوای، همین الان کد آمادهی وردپرسش رو هم میدم (کاملاً پلاگینوار یا توی functions.php) که دقیقاً همین کار رو انجام بده.
5) یک نکته مهم: فقط AVIF یا AVIF + fallback؟
- اگر فقط AVIF ذخیره کنی: سبکتر، فضای کمتر، سریعتر
- ولی برای درصد کمی از مرورگرهای قدیمی، بهتره یک fallback WebP یا JPG داشته باشی.
پیشنهاد من برای پروژه تو:
✅ ذخیره اصلی: 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