NNova CMSцентр знаний
Центр знанийУстановка
Пошаговое руководство

Установка Nova CMS на свой хостинг

От проверки тарифа до первого тестового заказа. Для работы не нужна MySQL — достаточно современного PHP и защищённых каталогов.

1. Требования к серверу

КомпонентМинимумРекомендуется
PHP8.28.2 или 8.3, production mode
РасширенияJSON, mbstring, Sodium, OpenSSL, cURL, Fileinfo, ZIPТакже GD для WebP и Intl для IDN‑доменов
Память PHP128 МБ256 МБ для Excel и резервных копий
Диск300 МБОт 1 ГБ с запасом под фото и 7 копий
Веб‑серверApache 2.4 / NginxHTTPS, HTTP/2 или HTTP/3
База данныхНе требуетсяДанные хранятся в закрытых JSON
Сначала спросите поддержку хостингаПоддерживает ли тариф PHP 8.2+, Sodium, ZipArchive, mod_rewrite или собственные правила Nginx, cron и запись в каталоги. На конструкторе без доступа к PHP движок не запустится.

2. Что подготовить до загрузки

  • Домен и вариант с www, если он будет использоваться.
  • Работающий SSL‑сертификат и автоматический переход с HTTP на HTTPS.
  • Доступ по SFTP/SSH или файловый менеджер панели хостинга.
  • Отдельную папку сайта и возможность изменить document root.
  • Архив дистрибутива, полученный после подтверждения заявки.
  • Бессрочный лицензионный ключ формата NOVA1.….

Не устанавливайте рабочий магазин в подпапку другого сайта. Для теста удобнее использовать отдельный поддомен, например test.example.ru, и заранее включить его в заявку на ключ.

3. Загрузка файлов

Через ISPmanager, cPanel или другую панель

  1. Создайте домен и включите SSL.
  2. Откройте файловый менеджер и перейдите в document root домена.
  3. Загрузите ZIP‑архив Nova CMS.
  4. Распакуйте его так, чтобы router.php, index.php и config.php лежали непосредственно в корне сайта, а не во второй вложенной папке.
  5. Удалите загруженный ZIP из публичной папки после распаковки.

Через SSH

cd /var/www/example.ru/public_html unzip novacms-release.zip find . -type d -exec chmod 755 {} \; find . -type f -exec chmod 644 {} \; chmod -R 775 data cache backups assets/uploads

Путь зависит от панели и хостинга. Не копируйте команду вслепую — сначала выполните pwd и убедитесь, что находитесь в папке конкретного домена.

4. Права и закрытые каталоги

PHP должен записывать в data, cache, backups и assets/uploads. Обычно подходят каталоги 775, файлы 664 или более строгие права при совпадающем владельце процесса PHP.

Не используйте 777 без необходимостиЕсли сайт пишет «нет прав», правильнее исправить владельца файлов и группу PHP‑процесса. Каталоги data, backups, lib, scripts, templates и deploy не должны открываться через браузер.

5. ЧПУ на Apache и Nginx

Apache

Включите mod_rewrite, разрешите .htaccess через AllowOverride All и направьте домен в корень CMS. Готовый пример виртуального хоста находится в закрытом комплекте deploy/apache-vhost.conf.example.

Nginx

Используйте правило try_files $uri $uri/ /router.php?$query_string; и отдельные запреты на служебные каталоги. Полный пример находится в deploy/nginx-novamarket.conf.example.

location / { try_files $uri $uri/ /router.php?$query_string; } location ~ ^/(data|lib|templates|backups|scripts|deploy|config\.php) { deny all; }

6. Установка лицензии

  1. Отправьте заявку и укажите точные домены.
  2. После проверки получите ключ по согласованному каналу.
  3. Откройте https://ваш-домен.ru/install.
  4. Вставьте ключ полностью, без пробелов и переноса внутри значения.
  5. Создайте уникальный пароль администратора длиной не менее 12 символов.
  6. Нажмите «Активировать» и дождитесь проверки цифровой подписи и домена.
  7. Войдите с логином admin и созданным паролем, затем заполните настройки.
Закрытый ключ вам не нуженНа сервер устанавливается только подписанная лицензия. Закрытый ключ центра выдачи никогда не входит в дистрибутив и не должен передаваться владельцу сайта.

7. Cron для копий и индекса

Настройте ежедневную резервную копию в 23:00 и периодическое обновление поискового индекса. Используйте PHP CLI той же версии, что работает на сайте.

0 23 * * * /usr/bin/php /var/www/example.ru/public_html/scripts/backup-cron.php */20 * * * * /usr/bin/php /var/www/example.ru/public_html/scripts/rebuild-search-index.php

Путь /usr/bin/php и корень сайта уточните у хостинга. Cron‑скрипты нельзя вызывать по открытому URL.

8. Проверка перед публикацией

  • /data/products.json и /backups отвечают 403.
  • Все ЧПУ открываются без .php, старые адреса дают 301.
  • HTTPS не вызывает смешанного содержимого.
  • Пароль администратора заменён, вход ограничивает перебор.
  • Тестовый товар добавляется в корзину, заказ появляется в админке.
  • Письма/мессенджеры и обратный звонок используют реальные контакты.
  • Оплата проверена в тестовом режиме, webhook доходит до сайта.
  • sitemap.xml пересобран, robots.txt соответствует стадии запуска.
  • Резервная копия создаётся и скачивается.
  • Cookie и политика персональных данных переписаны под владельца сайта.

9. Безопасное обновление

  1. Создайте ручной backup и скачайте его с сервера.
  2. Разверните обновление на тестовом домене с отдельной лицензией.
  3. Сравните конфигурацию и не перезаписывайте рабочие data и assets/uploads.
  4. Проверьте вход, каталог, заказ, оплату, sitemap и cron.
  5. Только после проверки обновляйте рабочий сайт в период низкой нагрузки.
Никогда не обновляйте «поверх» без копииДаже небольшое изменение структуры JSON требует проверенного сценария миграции. Если инструкция конкретного релиза отличается от этой страницы, приоритет имеет инструкция релиза.