Установка веб-платформы Falcon Space на сервер/хостинг

Введение

Платформу можно ставить на Windows Server 2019+ (например, 1Cloud.ru).

Есть 2 модификации платформы: 

Модификации отличаются структурой каталогов. 

Для установки на Windows Server минимальные требования (в скобках оптимальные для начала): 

Требуемый софт на сервере

Порядок установки приложения Falcon Space на сервере

Создать базу путем Restore backup из образа чистовой базы blank2, либо из другой базы.

Создать пользователя SQL и дать права на созданную базу данных (схема db_owner).

Скопировать файлы веб-приложения Falcon Space в папку на сервере (например: C:\sites\projectName)

Прописать в файле appsettings.json (или в web.config для MVC версии) подключение к БД (в Connection Strings), имя куки, ключ лицензии(в разделе appSettings), прописанный в лицензионном договоре.

Создать сайт в IIS:

В настройках пула Advanced Settings также указать:

У пула ставим в AdvancedSettings:

Дать права на запись в папку /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)

  1. Создаем домен в разделе Сайты
  2. В настройках ASP.NET указываем версию 4.7
  3. В разделе Базы данных создаем базу данных MS SQL 
  4. Создаем пользователя FTP и подключаемся через FTP клиент. 
  5. Копируем через FTP бекап базы данных и выполняем операцию Восстановление БД из бекапа
  6. По FTP копируем все файлы приложения в папку сайта. 
  7. Прописываем в файле web.config (для Core версии - appsettings.json) подключение к БД, имя куки, ключ лицензии, прописанный в лицензионном договоре
  8. В Файлы даем права редактирования на папку /uploads для пользователя Пользователь пула 
  9. После создания вы можете также сделать Lets Encrypt для https версии сайта (бесплатный SSL для домена).
  10. В 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 версии:

Примечание: Обновляем все файлы из свежей версии, кроме:

База данных при обновлении ядра платформы не меняется (могут быть только точечные изменения, но они делаются вне процесса обновления ядра платформы). 

Примечания по переносу с хостинга на сервер

При переносе с хостинга на сервер возникают нюансы (из-за доп. настроек на хостинге).

Необходимо убрать из web.config следующие настройки: 

Если сайт все равно не запускается, то ставим в 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

Плюсы хостинга:

Минусы хостинга: 

Хороший вариант - начать с хостинга. Как только база разрастется, запросы будут требовать оптимизации и диагностики - переехать на сервер VPS с более мощными параметрами.

Страница-источник на сайте falconspace.ru