Модуль Оптимизация пережатых картинок для Google PageSpeed Insights

Minor

Постоялец
Регистрация
16 Авг 2012
Сообщения
260
Реакции
111
Как известно SimplaCMS умеет пережимать картинки, что положительно сказывается на скорости загрузки сайта, однако Google PageSpeed Insights все равно ругается на неоптимальный размер.

Если у вас Симпла стоит на сервере - то способ подойдет 100%
Если на хостинге - то как повезет.

Ставим программы пережатия - для этого заходим на сервер по SSH под рутом и пишем
Код:
apt-get update
apt-get install imagemagick
apt-get install optipng
на все вопросы отвечаем - Y
(если apt-get не работает - пробуйте yum, или спросите у ТП как установить пакеты)

Затем открываем файл Симплы - resize/resize.php и ~ 20 строке ищем

Код:
$resized_filename =  $simpla->image->resize($filename);
//if(is_readable($resized_filename))
//    header('Location: '.$_SERVER['REQUEST_URI']);
пишем ниже
Код:
$path_parts = pathinfo($resized_filename);
             
        //Если это JPG
        if (($path_parts['extension']=='jpg') || ($path_parts['extension']=='jpeg')) {
        $output = shell_exec("jpegoptim --max=80 --strip-all ".escapeshellarg($resized_filename));
        }
     
        //Если это PNG
        if ($path_parts['extension']=='png') {
        $output = shell_exec("optipng -o7 -strip all ".escapeshellarg($resized_filename));
        }

затем заходим в папку files/products/ и удаляем ее содержимое.

Результат

0e8af18ae6db44b2a523289099cf2f9d.png


Всех благ!
 
Для Okay-CMS такое работать будет? Кто-нибудь проверял данный способ для Simpla? Кроме автора, конечно.
 
Как вам Okay-cms? Я пользуюсь ей уже год и очень доволен, особенно отзывчивой поддержкой и обратной совместимостью с Simpla, почти на 100%. Есть опыт перехода с Simpla?
 
Как известно SimplaCMS умеет пережимать картинки, что положительно сказывается на скорости загрузки сайта, однако Google PageSpeed Insights все равно ругается на неоптимальный размер.

Если у вас Симпла стоит на сервере - то способ подойдет 100%
Если на хостинге - то как повезет.

Ставим программы пережатия - для этого заходим на сервер по SSH под рутом и пишем
Код:
apt-get update
apt-get install imagemagick
apt-get install optipng
на все вопросы отвечаем - Y
(если apt-get не работает - пробуйте yum, или спросите у ТП как установить пакеты)

Затем открываем файл Симплы - resize/resize.php и ~ 20 строке ищем

Код:
$resized_filename =  $simpla->image->resize($filename);
//if(is_readable($resized_filename))
//    header('Location: '.$_SERVER['REQUEST_URI']);
пишем ниже
Код:
$path_parts = pathinfo($resized_filename);
           
        //Если это JPG
        if (($path_parts['extension']=='jpg') || ($path_parts['extension']=='jpeg')) {
        $output = shell_exec("jpegoptim --max=80 --strip-all ".escapeshellarg($resized_filename));
        }
   
        //Если это PNG
        if ($path_parts['extension']=='png') {
        $output = shell_exec("optipng -o7 -strip all ".escapeshellarg($resized_filename));
        }

затем заходим в папку files/products/ и удаляем ее содержимое.

Результат

0e8af18ae6db44b2a523289099cf2f9d.png


Всех благ!

Неплохо. Мы себе optipng тоже прикрутили правда в другом месте немного. Покажи мне только хостинг где можно такое провернуть

apt-get install optipng


(если apt-get не работает - пробуйте yum, или спросите у ТП как установить пакеты)
На такой вопрос в ТП мне предложили взять VPS :)


Мы сидим на shared хостинге fozzy, чтобы запилить туда optipng пришлось сильно попотеть. Инструкцию выложил на habrahabr
 
Я видел что есть библиотека, но в моем случае через shell_exec вышло быстрее.
 
jpegoptim - вещь хорошая, но на хостинг, который меня устраивает по всем остальным параметрам, его не дают установить. Суппорт также говорит, берите VPS и устанавливайте что хотите.
Есть ли какие ещё варианты?
 
есть. Скомпилировать из исходников и залить на хостинг.
Для просмотра ссылки Войди или Зарегистрируйся

Потом нужно подправить скрипт resize.php, указав абсолютные пути к программ (узнать пути можно через вывод phpinfo();)
Пример:
if ($path_parts['extension']=='png') {
$output = shell_exec("/home/txxxxxxx/yyyyyy/www/resize/optipng -o7 -strip all ".escapeshellarg($resized_filename));
}

if (($path_parts['extension']=='jpg') || ($path_parts['extension']=='jpeg')) {
$output = shell_exec("/home/txxxxxxx/yyyyyy/www/resize/jpegoptim --max=90 --strip-all --preserve --totals ".escapeshellarg($resized_filename));
}
 
jpegoptim - вещь хорошая, но на хостинг, который меня устраивает по всем остальным параметрам, его не дают установить. Суппорт также говорит, берите VPS и устанавливайте что хотите.
Есть ли какие ещё варианты?
Есть, через mogrify, 90% что он будет.
 
Назад
Сверху