PRO

Symelo Image Optimizations Pro

Описание

Безплатна добавка

Symelo Image Optimizations Pro е безплатна добавка, която се изтегля само от този сайт. Тя добавя допълнителни възможности към Symelo Image Optimizations.

Symelo Image Optimizations Pro е добавка към безплатния плъгин Symelo Image Optimizations. Продава се и се обновява от Symelo LTD на symelo.com, а не на WordPress.org.

Symelo Image Optimizations работи с библиотеките за изображения на PHP (Imagick и GD). Pro добавя специализирани енкодери, които често са по-бързи и компресират по-добре:

  • WebP: cwebp, както и gif2webp, който запазва GIF анимациите.
  • AVIF: avifenc (libavif), за сървъри, чиито Imagick и GD не могат да записват AVIF.
  • JPEG: jpegoptim (с mozjpeg) и jpegtran, включително истинска оптимизация на JPEG без загуби.
  • PNG: pngquant (намаляване на цветовете) и oxipng (без загуби).
  • Компресиране на PDF: qpdf, без загуби. Ghostscript за компресиране на PDF със загуби, само когато го изберете за PDF файловете.

Енкодерите се появяват в Медия → Image Optimizations → Engines, до Imagick и GD. Automatic ги поставя на първо място, но пак можете да изберете механизма за всяка задача. Те следват настройката Advanced → Background speed: по-нисък приоритет за процесора и диска и по-малко нишки при Normal и Gentle.

Откъде идват енкодерите

  • Инсталирани на сървъра (Installed on the server): програми, които хостинг доставчикът ви е инсталирал в системните папки (/usr/local/bin, /usr/bin, /bin, /opt/homebrew/bin, /opt/local/bin) или в папка, която сте задали с define( 'SYMELO_IMAGES_TOOLS_DIR', '/path' ); в wp-config.php.
  • Managed tools (управлявани инструменти; по избор, изключени по подразбиране): когато на сървъра липсва енкодер или наличният е остарял, Pro може да изтегли официални компилации директно от самите проекти. Всяка компилация е фиксирана към точна версия и контролна сума SHA-256, проверява се преди разархивиране, изпълнява се пробно и се проверява отново, преди да бъде използвана. Обновленията на Pro носят по-нови фиксирани компилации, които се инсталират във фонов режим. Те се съхраняват в uploads/symelo-images-pro/tools.

Версиите с известни проблеми със сигурността не се приемат (минимални версии: cwebp и gif2webp 1.3.2, avifenc 1.3.0, jpegtran 2.1.0, jpegoptim 1.5.3, oxipng 8.0.0, pngquant 2.12.0, qpdf 11.9.1, Ghostscript 10.08.0), а Здраве на сайта ги отчита.

Изисквания

  • Symelo Image Optimizations 1.0.0 или по-нова версия, активиран (версия на API 1.x). Без него Pro само показва известие.
  • Функцията proc_open на PHP трябва да е разрешена (много споделени хостинги я забраняват). Без нея енкодерите на Pro не могат да работят; Здраве на сайта и разделът Engines съобщават за това.
  • Managed tools: Linux на x86_64 или aarch64 (компилациите на avifenc и jpegoptim: само x86_64), папка uploads, от която може да се стартират програми, и разрешени промени във файловете (DISALLOW_FILE_MODS изключено). На други сървъри използвайте енкодери, инсталирани от хостинг доставчика ви.

Сигурност

  • Програмите се изпълняват без обвивка (shell), с фиксирани списъци с аргументи, минимална среда и ограничения на времето. Пътища до програми не могат да се въвеждат в администрацията; търси се само в управляваната папка, в SYMELO_IMAGES_TOOLS_DIR и в системните папки.
  • Управляваните компилации се изтеглят само от URL адресите, фиксирани в плъгина, и се извлича само съответната програма (и библиотеките на qpdf). Компилация, която е променена на диска, вече не се използва, а Здраве на сайта съобщава за това.
  • uploads/symelo-images-pro е защитена с файлове .htaccess и web.config. При Nginx добавете location ^~ /wp-content/uploads/symelo-images-pro/ { deny all; } в конфигурацията на сървъра.
  • Всяко действие в администрацията проверява правото, което изисква плъгинът (администратори), и nonce код.

Външни услуги

Pro се свързва с външни сървъри, за да изтегли фиксираните компилации, само когато включите Use managed tools и след това натиснете Install tools (или изпълните wp symelo-images-pro tools install, или POST /wp-json/symelo-images-pro/v1/tools с install), както и във фонов режим след обновяване на Pro или когато инсталирана компилация липсва или е променена. Всяко изтегляне е обикновена HTTPS заявка за публичен файл. Както всяка заявка, която прави WordPress, тя съдържа IP адреса на сървъра ви и стандартния потребителски агент на WordPress (версията на WordPress и адреса на сайта ви); не се изпращат други данни.

Когато управляваните инструменти са изключени (по подразбиране), Pro никога не се свързва с тези услуги.

За разработчици

Константи: SYMELO_IMAGES_USE_TOOLS (true/false, заключва „Use command-line encoders“), SYMELO_IMAGES_MANAGED_TOOLS (true/false, заключва „Use managed tools“), SYMELO_IMAGES_TOOLS_DIR (допълнителна папка с енкодери, в която се търси преди системните папки).

REST API (за администратори): GET /wp-json/symelo-images-pro/v1/settings (настройките на всеки модул и кои от тях са фиксирани в wp-config.php), POST /wp-json/symelo-images-pro/v1/settings с {"module": "encoders", "values": {"managed_tools": true}} (частично обновяване), GET /wp-json/symelo-images-pro/v1/tools (откритите енкодери, управляваните компилации, механизмът за всяка задача), POST /wp-json/symelo-images-pro/v1/tools с action = detect, install или remove. GET /wp-json/symelo-images/v1/status също получава ключ pro.

WP-CLI: wp symelo-images-pro tools [list|detect|install|remove].

Хукове: symelo_images_pro_modules (филтър: добавяне на модули), symelo_images_pro_loaded, symelo_images_pro_settings_saved, symelo_images_pro_upgraded (действия). Вижте docs/architecture.md.

Инсталиране

  1. Инсталирайте и активирайте Symelo Image Optimizations (от WordPress.org).
  2. Качете .zip файла на Symelo Image Optimizations Pro от Разширения → Добавяне на разширение → Качване на разширение, след което го активирайте.
  3. Отидете в Медия → Image Optimizations → Engines. Картата „Command-line encoders“ показва какво е открито.
  4. По желание: отметнете „Use managed tools“, запазете и след това натиснете „Install tools“.

Всички версии

  1. 1.0.0ПоследнаWordPress 6.4+ · PHP 7.4+ZIP · 63 KB
    • Първо издание.

    SHA-256 279b1893ca212b68035b232338f79a81d8a3bf9984281b6f370089ef9ac58f28