Wordpress, Сервер

Оптимизировать картинки на сайте.

Оптимизировать картинки на сайте.

Как уменьшить на сайте размер занимаемый картинками?

Предыстория. Вы создали сайт на WordPress и он прекрасно развивается растёт — всё хорошо. Но! Через пару лет вы замечаете, что резервная копия, а вы ведь периодически создаёте такой backup сайта на всякий случай, мало ли) так вот вы видите что размер резервной копии сайта более 2,3 или даже 4 и более гигабайт! Что делать? Тут многие админы сайтов уже за годы эксплуатации своего интернет проекта начинают устанавливать всякие плагины по оптимизации изображений и прочую всякую ерунду толку от которой практически нет, но зато есть много геморроя)
Я предлагаю простое решение. Все современные сайты, а именно так должно быть для сайтов наших дней — находятся на VPS (выделенный виртуальный сервер). По цене VPS стоит сейчас примерно так же как обычный виртуальный план, но за то это свобода, мощь и независимость от других проектов размещённых на одном ip как это принято на обычных виртуальных тарифных планах почти всех существующих хостинг компаний. На VPS вся мощь сервера принадлежит только вашему интернет проекту — простая регистрация и аккаунт готов к работе. Как установить программное обеспечение и настроить сервер? Я рекомендую чтобы в начале не заморачиваться с работой в терминале — установить простые и популярные бесплатные панели управления сервером:

Какую выбрать? Мне в последние годы интереснее OpenLiteSpeed — почему? Вот сравнение современных систем (ссылка без VPN может не открыться). Вот основное в картинках из материала:

OpenLiteSpeed vs Apache

OpenLiteSpeed vs Apache


OpenLiteSpeed vs Apache

OpenLiteSpeed vs Apache


Вернёмся к теме статьи. И так как же оптимизировать картинки на сайте. И так вы современный юзер и ваш сайт на VPS если ещё нет то желательно это сделать, повторюсь стоит так же а плюсов в разы больше. Раз вы на VPS то подключаетесь по ssh к серверу:

ssh root@89.93.131.146

и в следующей строке пароль (копируете его и вставляете нажатием правой кнопки мыши, визуально ничего не произойдёт, потом Enter)
я использую стандартную программу на Windows это «Windows Power Shell»
Далее пошаговое действие и да у меня все картинки были в формате .jpeg и .jpg

nano /root/optimize_jpg_uploads.sh

откроется пустое содержание, вводите туда следующий скрипт, вставь полностью:

#!/bin/bash

BASE_DIR="/var/www/ruistat_22/data/www/ruistat.ru/wp-content/uploads"
LOG_FILE="/root/jpg_optimize.log"
MIN_SIZE=153600   # 150 KB

echo "=== JPG optimization started $(date) ===" >> "$LOG_FILE"

find "$BASE_DIR" -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -size +${MIN_SIZE}c -print0 |
while IFS= read -r -d '' file; do

    SIZE_BEFORE=$(stat -c%s "$file")

    jpegoptim \
        --strip-all \
        --max=82 \
        --all-progressive \
        "$file" >> "$LOG_FILE" 2>&1

    SIZE_AFTER=$(stat -c%s "$file")

    if [ "$SIZE_AFTER" -lt "$SIZE_BEFORE" ]; then
        SAVED=$((SIZE_BEFORE - SIZE_AFTER))
        echo "OK: $file | saved $SAVED bytes" >> "$LOG_FILE"
    else
        echo "SKIP: $file | no gain" >> "$LOG_FILE"
    fi

done

echo "=== JPG optimization finished $(date) ===" >> "$LOG_FILE"

где надо изменить лишь эту строку:

BASE_DIR="/var/www/ruistat_22/data/www/ruistat.ru/wp-content/uploads"

это путь до папки с картинками и он будет у вас свой. Чтобы узнать какой он этот свой путь — откройте файловый в панели управления сервером Fastpanel или OpenLiteSpeed и пройдите до папки /uploads/ — это и будет ваш путь который надо вставить в скрипт который я привёл выше.
Далее нажимаете в английской раскладке клавиатуры CTRL O далее жмёте на кнопку ENTER и далее CTRL X
Такими действиями вы сохраните внесённые изменения в создаваемый скрипт. Уточню что здесь CTRL O буква O в английской раскладке.
Потом устанавливаете права

chmod +x /root/optimize_jpg_uploads.sh

Чтобы сперва посчитать сколько было гб и сколько станет после оптимизации картинок на сайте используйте эту команду:

du -sh /var/www/ruistat_22/data/www/ruistat.ru/wp-content/uploads

тут же получите ответ в терминале, далее оптимизация:

nohup /root/optimize_jpg_uploads.sh > /root/jpg_optimize_nohup.log 2>&1 &

Чтобы понять когда процесс завершиться я тут же запускаю команду отслеживающую нагрузку на сервере в реальном времени:

top

и в первых строках увидите такой процесс:

jpegoptim

этот процесс будет то появляться то пропадать и через пару минут (у меня на 3 гб ушло времени меньше 1 минуты на всю оптимизацию)
вы увидите
и перестанет выскакивать процесс:

jpegoptim

это значит оптимизация прошла, и прошла успешно! Запускайте такую команду (не забудьте указывать в командах свои данные домена и правильный путь)

du -sh /var/www/ruistat_22/data/www/ruistat.ru/wp-content/uploads

чтобы увидеть новый оптимизированный размер папки где храняться ваши картинки сайта.

У меня за счёт оптимизации картинок на сайте размер резервной копии уменьшился более чем в два раза.


Напомню что запуск возможен только от root (запуск возможен только у того, у кого есть root/sudo) и скрипт лежит в /root/ это означает: каталог /root доступен только пользователю root другие пользователи туда даже с cd не смогут попасть, права на файл даже если файл chmod +x без доступа к /root — недостижим, права на файлы WordPress /var/www/…/uploads обычно принадлежат www-data, но root может писать везде, а обычный пользователь — нет (если явно не разрешено).
Что будет, если другой пользователь попробует запустить скрипт. Permission denied — что переводится, как «в разрешении отказано»

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *