UniGUI. Deploy от А до Я.

В данной статье рассмотрим как разместить приложение UniGUI от А до Я на VPS, то есть, посмотрим весь процесс, от создания самого приложения в виде ISAPI модуля dll до размещения его на сервере (на примере Microsoft Azure). Я работал одновременно на локальном компьютере и удаленном. Поэтому некоторые картинки то на английском, то на русском языках. Но сохранена последовательность.

Почему Azure? Дают 30 дней бесплатного использования. Для начинающих – на мой взгляд один из лучших вариантов. Также если Вы стартап, то для Вас программа BizSpark – получите Azure на 3 года для 5 разработчиков.

Также ещё один момент – я рассматривал уже купленную, полную версию UniGUI. Чтобы приложение работало на VPS, на сервере необходимо проинсталлить специальный файл, который идет вместе с лицензией. Он содержит в себе библиотеки ExtJS и др. Если пробовать триальную версию загружать или не дай Бог пиратскую, то получите в браузере “Loading…”  Но выход есть, можно прямо на VPS поставить Delphi+UniGUI скомпилировать 1 раз 1 ISAPI dll и все последующие библиотеки будут работать. Но всё же, лучше, если есть возможность – купить лицензию – меньше, гораздо меньше “головняков” потом будет, да и свежая версия постоянно – тоже хорошо!!!

Итак, создадим простейшее ISAPI приложение на UniGUI

File / New / Others / UniGui for Delphi –> Application Wizzard –> ISAPI

1

На кнопку повесьте всё что угодно. Я написал так.

Далее, скомпилируем и получим файл Project1.dll, я переименовал его в test.dll, было несколько версий файла, поэтом я просто нумеровал таким образом, test1.dll, test2.dll, test3.dll и так далее. По ходу статьи названия файлов могут варьироваться – это значит я что-то менял и компилировал снова.

Вот как будет выглядеть конечный результат на Microsoft Azure в браузере Гугл Хром. Windows Azure это облачный Virtual Private Server или VPS. О том как его настроить мы поговорим позже. Вообще, неважно в какой VPS Вы будете работать – принципы везде одинаковые. Отличаются, конечно детали.

4

Как настроить WIndows Azure для работы с UniGUI?

Вообще, более подробная статья о том как создать виртуальную машину и IIS на ней находится здесь. Я же опишу кратко

Я не буду здесь описывать как создать учетную запись в Azure. Гуглите и регистрируйтесь. Скажу лишь, что в процессе регистрации у меня попросили банковскую карту, списали с неё 30 руб для проверки того, настоящая она или нет. В итоге, у нас получилось следующее.

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


Как настроить IIS и Windows Azure, чтобы приложение запускалось из Интернет?

 

Настройка IIS

Правой кнопкой мыши на Sites –> Add WebSite и заполняем настройки сайта

9

Обратите внимание! Мы здесь поставили 80 порт!!! По идее, он нам и нужен, так как это порт для http по умолчанию. Система будет сопротивляться, можете пока временно поставить любой другой порт, например порт 85 или позже поменять его в привязках. Но для работы в сети Интернет, нам нужен именно 80 порт!!!

10

Теперь конфликта не будет. Положите в папку С:\MyWebSites\MyTestSite файл index.html c любым содержанием, и запустите его.

У меня получилось следующее, в index.html я “забил” следующее <h1>Delphi Forever</h1>

11

Теперь положим рядом с index.html файл test8.dll и попробуем открыть наше ISAPI приложение!

Ничего не произошло!

А всё дело в том, что нужно настроить WebServer на обработку ISAPI приложения. О том как это делать, я уже писал в другой статье. Но кратко повторим здесь. Итак,

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

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

MyAppPool –>Advanced Settings

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

Далее идем в сайты и добавляем новое приложение

12

Далее настроим само приложение

13

Я прописал здесь MyAlias – это что-то вроде виртуального псевдонима. Выбрал MyAppPool, и также выбрал директорию, где будут расположены приложения.

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

14

И там прописать следующее

15

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

16

17

 

18

 

В принципе, можем запускать

19

Теперь проведем несколько усовершенствований. Как видно, приложение у нас запускается по следующему адресу

http://localhost:85/MyAlias/test8.dll

 Пусть у нас приложение запускается по такой директории http://localhost:85/

Для этого нужно сделать 2 вещи

1. MyTestSite –>Advanced Settings –>ApplicationPool:=MyAppPool

20

2. MyTestSite –> В иконках справа, выбрать Default Document и в нем прописать test8.dll и поставить на 1 место.

22

21

Если сделали всё правильно, то приложение должно запускаться

23

 

Последний штрих!

Для того, чтобы наше приложение запускалось на 80 порту, нам нужно в IIS наш сайт, в котором у нас находится приложение, привязать к этому порту. Для этого сначала отвяжите тот сайт, который сейчас занимает 80 порт. Это можно сделать через так называемые привязки – Bindings.

24

 

 

25

 

Здесь можно поставить любой порт. Освободите 80 порт для нашего MyTestSite и назначьте его нашему MyTestSite.

 

 

 


 

Как настроить Microsoft Azure?

Теперь, когда мы научились, в принципе запускать сайты и приложения на IIS, можем перейти к Microsoft Azure и открыть 80 порт. Для начала найдите свою виртуальную машину – это можно сделать либо на начальной панели плиток, либо на панели слева в разделах Virtual Machines (Classic) или Virtual Machines

 

27

 

Далее

 

28

 

Далее, копируете DNS имя в буфер и вставляете его в браузер

29

 

Если всё сделали правильно, получим следующий результат

30

Ну и собственно проверим работу приложения

31

 

 

 

 

 

This entry was posted in Delphi, UniGui, Без рубрики. Bookmark the permalink.