Delphi. UniGUI. Deploy от А до Я (Версия 2)

Я уже писал о размещении (deploy) проекта на внешних серверах в одноименной статье ранее. Но тогда я только начинал разбираться с фрэймфорком UniGUI, а сейчас более менее все устаканилось в голове, поэтому этот пост наверное будет почти тем же самым, но более структурным, упорядоченным причесанным.

Какие виды файлов генерирует UniGUI?

Это важный вопрос, потому что от того какой файл будет на выходе будет зависеть стиль деплоя. Я знаю о как минимум 3 вариантах выходных файлов – это

EXE

DLL (запускается через IIS)

Windows Service

Для разработки предпочтительнее использовать EXE файлы, когда приложение уже сформировано, лучше, на мой взгляд использовать IIS, потому как это профессиональный и проверенный веб-сервер. EXE файл тоже можно сделать профессиональным, так как в нем уже содержится idHTTPServer, но это другая более кастомная и тонкая работа что ли. Но обо всем по порядку.

Я здесь разберу только случаи для EXE и DLL, так как они наиболее частые в практике использования программистами Delphi UniGUI.

Как сделать Delpoy EXE файла?

Тут все очень просто. Компилируем в EXE, переносим его на машину, которая у нас будет работать сервером, и далее обращаемся в стиле

IP машины : порт

Например,

То есть, просто открываем браузер на любой, произвольной машине, вводим подобную строку и все начинает работать.

В случае с localhost это будет выглядеть так…

8077 это порт по умолчанию для приложения UniGUI


Как сделать Delpoy DLL файла?

Здесь всё намного интереснее! Итак, на выходе у нас есть DLL, и нам нужно прикрутить её к IIS серверу, чтобы это всё запускалось, скажем как


Шаг 1 Запуск и настройка IIS

Пример для обычного домашнего компьютера (не серверная Windows, не Azure)

Итак, запускаем IIS. Win+R

46

Если windows выдала ошибку, и IIS не запустился, то есть вы не видите вот такого

47

Тогда нужно зайти в панель управления > программы и компоненты > включение отключение компонентов Windows, найти там IIS, проставить в узле IIS все галочки, которые относятся к ISAPI

48

Это не для серверной Windows, если стоит задача запустить IIS на WIndows Azure, то нужно сделать следующее.

Пример запуска IIS для Azure

3

Эти плитки появились после того как я поработал. Какие-то виртуальные машины повключал, какие-то поудалял.

Итак, перво-наперво, создаем виртуальную машину. 

New –> Compute — > Windows Server 2012 R2 –> Проделайте ряд шагов, задайте те настройки, которые Вам нужны. Из Resource и Classic я выбрал второе.

Подключение к виртуальной машине через RDP

Можно нажать на Connect и скачается файл на подключение по RDP. Но я сделал традиционным способом – открыл сначала RDP на клиенте, и лишь потом ввел в него все данные IP, Логин, пароль. Также удобная опция – подключить диски, чтобы потом напрямую перекачивать файлы на виртуальную машину. Если Вы не знаете, что такое RDP – либо гуглите, либо в Windows в поиске наберите “Подключение к удаленному рабочему столу”

5

Ссылка вида <имя виртуальной машины.cloudapp.net> это и есть ссылка по которой мы будем проходить и видеть наше приложение. Её потом можно будет заменить на “нормальный, человеческий” домен. Но это отдельная тема. Будем идти по порядку – далее – подключение веб-сервера IIS.

Подключение веб-сервера IIS

Когда зайдем по RDP на виртуальную машину, сразу же увидим следующее

6

Жмем на Add roles and features, потом 3 раза Next, и выходим к дереву. В этом дереве выбираем IIS. У меня он уже инсталлирован, поэтому в скобках написано installed.

7

В принципе всё. Далее у нас появится рабочий IIS на виртуальной машине.

Жмём Win+R, вводим inetmgr и видим следующую картину

8


ШАГ 2 Создание и настройка сайта под которым будет работать приложение

Я храню все сайты, с которыми работаю на локальной машине в папке C:\www

Итак, создадим someSite.ru

50

 

49

Далее, в зависимости от того как будем запускать – для себя, на своем компьютере либо через Интернет и DNS сервера, нам нужно либо прописать файл hosts для первого случая, либо настроить у провайдера A-записи, для того, чтобы запускать сайт через Интернет.

Пример редактирования файла hosts

Прописываем файл hosts если сайт будем запускать локально

Чтобы наш сайт открывался на локальной машине – нужно зациклить поиск на этой локальной машине. Делается это через файл hosts.

Включаем учетную запись администратора

Win+X –> Командная строка ( администратор )

Для включения встроенной учетной записи Администратор в русской версии Windows используйте команду

net user Администратор /active:yes

В системе с английской локализацией встроенная учетная запись администратора называется Administrator, поэтому команда будет выглядеть так:

net user Administrator /active:yes

Заходим под администратором

Win+L, выбираем учетную запись администратора и входим под ней.

Проходим по адресу

Далее в нём пишем

27

Таким образом, мы замкнули поиск только на хосте 127.0.0.1, а там у нас работает IIS веб сервер, который об этом сайте знает, и знает о том, где он лежит, и при обращении по адресу

просто выдаст теперь нужную нам страницу

Если нужно прикрепить домен к проекту, то это об этом можно прочитать в другой, специальной статье

UNIGUI. “ПРИКРЕПЛЯЕМ” ДОМЕН К UNIGUI ПРОЕКТУ.


ШАГ 3  Создание и настройка пула приложений

Создадим свой пул приложений

и настроим его, включив поддержку 32 разрядных приложений. Если её отключить, то приложения будут работать в режиме 64. То есть, тут работает правило или.

MyAppPool –>Advanced Settings

Также настроим параметры перезапуска

ШАГ 4  Добавление приложения в список разрешенных приложений ISAPI на IIS и включение обработчиков ISAPI

Далее, нам нужно дать разрешение на приложение, поскольку мы будем запускать файл test8.dll, то это можно будет сделать следующим образом

14

И  прописать там путь до нашего приложения, а также включить его

15


Шаг 5 – включение обработчиков ISAPI

Также нам нужно включить обработку ISAPI модулей иначе браузер их будет просто скачивать сделать это можно на разных уровнях – сделаем на уровне сайта

16

17

 

18

Или в русской версии

51

ШАГ 6  Включение анонимного доступа

Сделать это можно также на разных уровнях, я делаю это на уровне сайта

52

53

ШАГ 7  Добавление приложения к сайту

55

 

54

Alias здесь это, насколько я понимаю псевдоним директории, то есть, что бы мы, например могли обратиться к нашему приложению вот так…

Либо без псевдонима вот так…

Если это у нас  одно приложение – оно же сайт, другими словами, при открытии скажем panteleevstas.ru нам нужно сразу же загрузить наше приложение, тогда в IIS есть специальная классная штука под названием “Документ по умолчанию”, но для этого нам нужно перенести наше приложение на верхний уровень, то есть файл dll нашего приложения должен быть в корневой папке запускаемого сайта,

57

и тогда мы получим вот такой результат, например

56

Вот в принципе и всё, основные моменты мы разобрали. Будут вопросы – пишите мне.

 

 

 

 

This entry was posted in Delphi, IIS, UniGui, Windows. Bookmark the permalink.

Leave a Reply