Публикация и проверки безопасности
Публикация — перенос магазина с компьютера разработчика на сервер, где им будут пользоваться покупатели. Для OpenCart это копирование файлов и базы и правка двух файлов настроек. После этого магазин закрывают от типовых атак — список короткий, но каждый пункт важен.
Что переносят
| Что | Как |
|---|---|
| Файлы | Вся папка сайта, включая image/ и extension/ |
| База данных | Дамп: выгрузка на старом сервере, загрузка на новом |
| Хранилище | Папка storage, если она вынесена из system/ |
Дамп делают в phpMyAdmin или из консоли:
mysqldump -u root -p shop > shop.sql
mysql -u shop_user -p shop_production < shop.sqlПервая команда сохраняет базу в файл, вторая загружает её на новом сервере.
Файлы настроек
Пути и адреса записаны в config.php и admin/config.php абсолютными значениями. На новом сервере исправьте их в обоих файлах:
// config.php
define('HTTP_SERVER', 'https://shop.example.com/');
define('DIR_OPENCART', '/var/www/shop/');
define('DIR_STORAGE', '/var/www/storage/');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'shop_user');
define('DB_PASSWORD', 'secret');
define('DB_DATABASE', 'shop_production');В admin/config.php адресов два: HTTP_SERVER с папкой панели и HTTP_CATALOG с адресом витрины. Откройте https://shop.example.com/ — витрина работает; панель открывается по адресу своей папки.
Точный набор констант немного различается между выпусками — меняйте значения, а не копируйте файл из другой версии.
Проверки перед запуском
| Что проверить | Зачем |
|---|---|
Папка install удалена | Иначе магазин сможет переустановить кто угодно |
Папка storage лежит вне корня сайта | В ней журналы, сессии и загруженные файлы |
Папка admin переименована | Адрес /admin перебирают боты |
| Показ ошибок выключен, журнал ошибок включён | Ошибки не видны покупателям |
HTTPS включён, адреса в обоих файлах настроек начинаются с https | Защита входа и данных покупателей |
Файлы config.php доступны только для чтения | В них пароль базы |
| Пароль администратора длинный и уникальный | Его подбирают в первую очередь |
| Резервные копии файлов и базы делаются по расписанию | Чтобы восстановиться после сбоя |
Строка для cron/cron есть в системном crontab | Задачи по расписанию выполняются |
Панель сама предлагает перенести storage и переименовать admin при первом входе — окно с этими двумя шагами появляется на главной странице панели. Показ ошибок переключают в System → Settings, вкладка Server.
После переноса
Удалите файлы в папке cache хранилища, откройте витрину и панель, оформите пробный заказ и проверьте, что письмо о нём пришло.
Частая ошибка
После переноса витрина открывается, но картинки и стили грузятся со старого адреса или панель показывает пустую страницу. Исправили только config.php, а про admin/config.php забыли, или один из путей DIR_ указывает на папку, которой на новом сервере нет. Проверьте каждую строку обоих файлов.