Установка веб-платформы Falcon Space на сервер/хостинг
Введение
Платформу можно ставить на Windows Server 2019+ (например, 1Cloud.ru).
Есть 2 модификации платформы:
- MVC - на базе ASP.NET MVC 5
- Core - на базе ASP.NET Core (в корне проекта есть appsettings.json).
Модификации отличаются структурой каталогов.
Для установки на Windows Server минимальные требования (в скобках оптимальные для начала):
- 3ГБ RAM (4Гб RAM)
- 30Гб HDD (60Гб SSD)
- 2 ядра CPU
Требуемый софт на сервере
- MS SQL Server 2016+ (подойдет бесплатная версия SQL Server Express Edition).
- IIS Manager 8+
- .NET 4.6
Порядок установки приложения Falcon Space на сервере
Создать базу путем Restore backup из образа чистовой базы blank2, либо из другой базы.
Создать пользователя SQL и дать права на созданную базу данных (схема db_owner).
Скопировать файлы веб-приложения Falcon Space в папку на сервере (например: C:\sites\projectName)
Прописать в файле appsettings.json (или в web.config для MVC версии) подключение к БД (в Connection Strings), имя куки, ключ лицензии(в разделе appSettings), прописанный в лицензионном договоре.
Создать сайт в IIS:
- привязка (binging) к домену (4 привязки - www и без www, https и без).
- путь к папке с веб-приложением
- создать и привязать пул к приложению. Для Core приложения лучше создавать отдельный пул с типом No Managed Code (в настройках пула Advanced Settings также указать LoadUserProfile = true - если этого не сделать, то пользователя постоянно будет выбрасывать из авторизованной зоны). Для MVC - обычный пул типа .NET 4.0
Дать права на запись в папку /uploads (для Core - /wwwroot/uploads) для IIS_IUSRS через File Explorer (Мой компьютер).
Проверяем, что все работает - запускаем домен и входим под админом (пароль админа будет получен при передачи бекапа БД).
Примечание: Ваш домен должен указывать на IP адрес сервера. Для этого необходимо прописать DNS зону для домена (2 записи типа A с IP сервера приложения - @ и www). Чтобы уменьшить время обновления установить TTL домена в минимальное значение (3600).
Проверить связку домен - IP можно через команду ping: Win +R > cmd > ping mydomain.ru
Иногда ASP.NET по умолчанию не установлен в IIS. В этом случае идем в Администрирование / Диспетчер серверов (Server manager) / Добавить роль или компонент и ставим ASP.NET в разделе Веб-компонентов. После установки перезагрузить IIS.
Также необходимо, чтобы был установлен на сервере модуль URL Rewrite для IIS (просто ставим и перезагружаем IIS). https://www.iis.net/downloads/microsoft/url-rewrite
Если вы ставите Core версию на Windows сервер, то понадобится модуль .NET Core 3.1 - https://dotnet.microsoft.com/en-us/download/dotnet/3.1 (скачиваем Windows Bundle Hosting версию).
Либо ищем через все версии .NET - https://dotnet.microsoft.com/en-us/download, ссылка "all .net versions", и там .NET Core 3.1
Установка через панель Plesk на хостинге (например, reg.ru)
- Создаем домен в разделе Сайты
- В настройках ASP.NET указываем версию 4.7
- В разделе Базы данных создаем базу данных MS SQL
- Создаем пользователя FTP и подключаемся через FTP клиент.
- Копируем через FTP бекап базы данных и выполняем операцию Восстановление БД из бекапа
- По FTP копируем все файлы приложения в папку сайта.
- Прописываем в файле web.config (для Core версии - appsettings.json) подключение к БД, имя куки, ключ лицензии, прописанный в лицензионном договоре
- В Файлы даем права редактирования на папку /uploads для пользователя Пользователь пула
- После создания вы можете также сделать Lets Encrypt для https версии сайта (бесплатный SSL для домена).
- В DNS прописываем IP адрес, соответствующий сайту
Примечание: для хранения сессий пользователей на диске, необходимо создать папку DataProtectionStorage (дать доступ процессу пула на запись), а также файлы certificate.json и pfx сертификат. Как создать сертификат (Create self signed sertificate)
Обновление экземпляра Falcon Space
Получаем версию платформы по FTP (версия Core будет иметь следующий вид 2023-09-28.cr, MVC версия - 2023-09-28)..
Как понять какая у меня версия? Если в корне у вас есть папка wwwroot и файл appsettings, то у вас Core версия. В противном случае - у вас MVC версия.
Распаковываем архивы во временную папку.
Перед обновлением создаем бекап существующего сайта - копируем папку сайта.
Для MVC версии - из архива _mvc....zip просто заменяем содержимое в папке сайта.
Для Core версии:
- Переименовываем файл /app_offline1.html в app_offline.html - это поставит заглушку на сайт и позволит заменять файлы проекта (операционная система не будет занимать файлы).
- В корень папки сайта заливаем содержимое архива _core_....zip
- В папке wwwroot заменяем файлы из архива _corewwwroot_....zip
- Переименовываем файл /app_offline.html в /app_offline.html обратно
Примечание: Обновляем все файлы из свежей версии, кроме:
- папки uploads - в ней лежат рабочие файлы проекта (картинки, документы и т.д.)
- web.config (или appsettings.json), urlrewrite.config - здесь хранятся настройки приложения
- manifest.json, webmanifest - файлы манифеста PWA приложения
- папка /app_data - системная папка с данными
База данных при обновлении ядра платформы не меняется (могут быть только точечные изменения, но они делаются вне процесса обновления ядра платформы).
Примечания по переносу с хостинга на сервер
При переносе с хостинга на сервер возникают нюансы (из-за доп. настроек на хостинге).
Необходимо убрать из web.config следующие настройки:
- убрать настройку [modsecurity enabled="false"][/modsecurity]
- убрать параметр tempDirectory (путь к компиляции) в теге compilation.
Если сайт все равно не запускается, то ставим в web.config и смотрим с сервера, какое сообщение ошибки выдается при запуске сайта.
Иногда возникает такая ошибка: This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false".
Здесь решение - https://stackoverflow.com/questions/9794985/config-error-this-configuration-section-cannot-be-used-at-this-path
Плюсы и минусы хостинга по сравнению с сервером VPS
Плюсы хостинга:
- сильно дешевле
- управление через панель Plesk (не нужно навыков администрирования Windows Server)
- не нужно настраивать первоначально сервер, ставить SQL Server и т.д.
- у хостинга есть техподдержка, которая может помощь по решению проблем с хостингом (на сервере техподдержка может помочь только платно по часам).
- автоматические бекапы с хранением 30 дней (на reg.ru)
Минусы хостинга:
- нет возможности ставить на сервер дополнительный софт (например КриптоПро), делать скрипты по обслуживанию бекапов и т.д.
- нет возможности управлять настройками SQL Server
- нет возможности проводить диагностику через спецзапросы DMV (нет прав на server viewstate)
- есть ограничения по возможности наращивания мощностей (CPU, память, диск).
- нет возможности делать дополнительные консольные приложения.
Хороший вариант - начать с хостинга. Как только база разрастется, запросы будут требовать оптимизации и диагностики - переехать на сервер VPS с более мощными параметрами.
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация, юзабилити
- Лендинги
- Универсальный API
- Примеры интеграций
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование Установка веб-платформы Falcon Space на сервер/хостинг Перенос компонентов между БД Как организовать периодическую отправку на почту отчета по ошибкам Как включить системный лог в Core версии платформы Как изменить таймаут запросов к БД Как улучшить производительность IIS (IIS Perfomance Boost) Windows Server, IIS, Как сделать, чтобы сайт работал от определенной учетной записи FAQ для системного администратора сервера Системный анализ работы сайта на Falcon Space. Профилактика, диагностика работы сайта Как сделать копию сайта для тестов
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта