Оптимизация загрузки файлов, настройка прав доступа к папкам public_html, работа с объектным S3-хранилищем и конвертация изображений. Инструкции по переносу тяжелых медиафайлов с основного диска и ускорению отдачи контента.
1. Базовая структура и права доступа На виртуальном хостинге Beget корневая директория сайта — это ~/sitename/public_html (или www). Все файлы, которые должны быть доступны из браузера напрямую, лежат именно там.
- Типичная ошибка 403 Forbidden: возникает, когда веб-сервер (пользователь
www-data) не имеет прав на чтение файла. Для корректной работы права на файлы должны быть установлены в значение644, а на папки —755. - Путаница с путями при работе с фреймворками (Django/Laravel): сервер Apache/Nginx видит только публичную папку. Чтобы ваше приложение могло загружать пользовательские фото (media) или отдавать сжатые стили (static), необходимо создавать символические ссылки (
symlinks) из корня проекта в публичную директорию через SSH-консоль.
2. Оптимизация и форматы изображений Тяжелые фотографии — главная причина медленной загрузки страниц.
- Конвертация в WebP: современный формат сжатия, который поддерживается всеми браузерами и весит на 30–40% меньше JPEG/PNG без видимой потери качества. Вы можете настроить автоматическую конвертацию через плагины CMS (например, WebP Express для WordPress).
- Lazy Loading: отложенная загрузка картинок, находящихся за пределами экрана пользователя. Включается либо атрибутом
loading="lazy"в HTML, либо специализированными модулями оптимизации.
3. Облачное объектное хранилище (S3) Если ваш сайт генерирует большой объем контента (интернет-магазин с тысячами товаров, фотогалерея, видеопортал), дисковое пространство на тарифе может закончиться. Решение — использование совместимого с Amazon S3 хранилища Beget.
- Как это работает: физические файлы хранятся отдельно от вашего тарифа в распределенном облаке, а сайт получает к ним доступ по API.
- Настройка в WordPress: подключение осуществляется через плагины (например, WP Offload Media или бесплатный S3-Uploads) путем ввода ключей доступа, региона (
ru1) и адреса эндпоинта (https://s3.ru1.storage.beget.cloud) в конфигурационный файлwp-config.php. - Миграция существующих данных: после настройки плагина вы можете одной командой перенести всю папку
/uploadsв облако, освободив место на основном аккаунте.
4. Потоковое видео и тяжелые файлы Размещение длинных видеороликов непосредственно в папке public_html крайне неэффективно — они будут занимать лимит трафика и вызывать задержки при перемотке.
- Используйте внешние видеохостинги (Rutube, VK Видео) или специализированные CDN-сервисы для потоковой передачи.
- Если необходимо отдавать файлы самостоятельно, убедитесь, что включен модуль
mod_xsendfile(на VPS/Выделенных серверах) или используйте Nginx для прямой отдачи больших бинарных данных, минуя интерпретатор PHP.
5. Безопасность медиаконтента
- Защита от хотлинкинга: запретите другим сайтам использовать прямую ссылку на ваши картинки. Это делается правилом в файле
.htaccess, которое проверяет заголовокReferer. - Ограничение выполнения скриптов: в папках, куда пользователи могут загружать контент (например,
/uploads), обязательно должен лежать файл.htaccessс директивойphp_flag engine off, чтобы злоумышленник не смог запустить вредоносный код под видом загруженного изображения.