Symelo Image Optimizations Pro
- Версия 1.0.0
- WordPress 6.4+
- PHP 7.4+
- Тествана до 7.1
- Изисква Symelo Image Optimizations
Описание
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 и адреса на сайта ви); не се изпращат други данни.
- Google (downloads.webmproject.org на storage.googleapis.com): архиви с изданията на libwebp (cwebp, gif2webp). Общи условия на Google, Политика за поверителност.
- GitHub (файлове към издания в github.com, предоставяни от objects.githubusercontent.com): архиви с изданията на AOMediaCodec/libavif (avifenc), tjko/jpegoptim, oxipng/oxipng и qpdf/qpdf. Общи условия на GitHub, Декларация за поверителност.
Когато управляваните инструменти са изключени (по подразбиране), 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.
Инсталиране
- Инсталирайте и активирайте Symelo Image Optimizations (от WordPress.org).
- Качете .zip файла на Symelo Image Optimizations Pro от Разширения → Добавяне на разширение → Качване на разширение, след което го активирайте.
- Отидете в Медия → Image Optimizations → Engines. Картата „Command-line encoders“ показва какво е открито.
- По желание: отметнете „Use managed tools“, запазете и след това натиснете „Install tools“.
Всички версии
- Първо издание.
SHA-256
279b1893ca212b68035b232338f79a81d8a3bf9984281b6f370089ef9ac58f28