Развертывание http-сервиса (web-приложения) OneScript на Ubuntu Server 16.04

Обмен - Интеграция с WEB

В статье описан процесс настройки сервера, а также процесс развертывания http-сервиса (web-приложения) OneScript на Ubuntu Server 16.04

Введение

В достаточно компактном виде, информация о настройке и развертывании http-сервисов OneScript в среде Linux описана в соответствующем разделе на сайте проекта (http://oscript.io/docs/page/http). Как правило ее достаточно для развертывания. Тем не менее, настоящая статья, являясь пошаговым руководством, имеет своей целью детализировать существующую документацию.

Развертывание ASP.NET приложений в среде Linux возможно в несколькких вариантах. В настоящей статье рассмотрен вариант установки на web-сервер Apache с модудем mod-mono-server, как наиболее распространенный.

В статье предполагается, что Вы имеете web-приложение OneScript, созданное на основе этой или этой статьи, либо же каким-либо другим способом. Автор использовал для размещения приложение, созданное в этой публикации.

 

Система

В качестве тестовой системы используется виртуальная машина, размещенная в среде Hyper-V. В качестве исходного дистрибутива для установки использовался дистрибутив Ubuntu Server 16.04.4, который Вы можете скачать с сайта Ubuntu (https://www.ubuntu.com/).

В процессе установки была добавлена поддержка русской клавиатуры, а также установлен OpenSSH сервер для удаленного доступа к серверу.

Также, был создан пользователь с логином onescript и паролем - 123456.

 

Необходимые утилиты

Для удаленного доступа к серверу и копирования файлов, использовался SSH-клиент PuTTY (https://www.putty.org/). Для удаленного доступа и копирования файлов, достаточно скачать putty.exe и pscp.exe.

 

Настройка системы

 

Подключаемся к серверу

Подключаемся к серверу при помощи putty.exe и вводим логин и пароль.

 

Обновляем список доступных пакетов и устанавливаем новые версии

В командной строке выполняем следующие команды:

sudo apt-get update


sudo apt-get upgrade

 

Устанавливаем утилиту распаковки zip файлов

В командной строке выполним нижеследующую команду:

sudo apt-get install unzip

 

Устанавливаем mono

Поскольку http-сервисы OneScript по сути являются ASP.NET приложениями, для того, чтобы они выполнялись на ОС Linux, необходимо установить среду Mono, которая является аналогом .NET Framework для ОС Linux. Детальная информация об установке находится на сайте проекта Mono https://www.mono-project.com/ в разделе загрузки.

В соответствии с приведенными инструкциями, последовательно выполняем в командной строке нижеследующие команды:

Подключаем репозитарий Mono

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF


echo "deb http://download.mono-project.com/repo/ubuntu stable-xenial main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list

sudo apt-get update 

Устанавливаем Mono

sudo apt-get install mono-complete

 

Устанавливаем и настраиваем web-сервер

Как было указано ранее, в качестве web-сервера используется Apache с модулем mod-mono-server.

Устанавливаем Apache

Для установки, в командной строке выполняем нижеследующую команду:

sudo apt-get install apache2 -y 

Тестируем работоспособность сервера

Проверить работоспособность web-сервера можно обратившись к нему из браузера.

Устанавливаем mod-mono-server4

Этот компонент необходим для выполнения ASP.NET приложений в среде Apache.

Детальная документация по продукту, установке и настройке можно найти по ссылке:

http://www.mono-project.com/docs/web/mod_mono/

https://medium.com/@shrimpy/configure-apache2-mod-mono-to-run-asp-net-mvc5-application-on-ubuntu-14-04-314a700522b9

Для установки данного компонента, выполним нижеследующую команду:

sudo apt-get install libapache2-mod-mono mono-apache-server4

Настраиваем mono-mod-server

Для простоты, используем режим AutoHosting. Для активации режима выполним нижеследующую команду:

sudo a2enmod mod_mono_auto

Рестартуем сервис Apache

sudo service apache2 restart

Тестируем работоспособность ASP.NET

По умолчанию, корневая папка документов Apache расположена по нижеследующему пути: /var/www/html

Создадим в этой папке файл test.aspx следующего содержания:
 

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>ASP Test Page</title> </head> <body> <form id="form1" runat="server"> <asp:label id="lbl1" runat="server">ASP Test Page</asp:label> </form> </body> </html>

Для этого используем редактор vi (основные команды редактора можно посмотреть здесь https://kb.iu.edu/d/adxz ):

sudo vi /var/www/html/test.aspx

Вставляем текст страницы и сохраняем файл (нажимаем ESC, затем Shift + Z + Z).

Тестируем работоспособность, для этого, из браузера обращаемся к созданной странице.

 

Настраиваем обработку расширений для *.os файлов

Для того, чтобы web-сервер рассматривал файлы OneScript (*.os), как файлы ASP.NET, аналогично файлам *.aspx и обрабатывал их соответствующим образом, добавим расширение .os к списку ASP.NET файлов.

Для этого, отредактируем строку Add-Type application/x-asp-net, добавив туда расширение .os, в файле /etc/mono-server4/mono-server4-hosts.conf

Открываем файл

sudo vi /etc/mono-server4/mono-server4-hosts.config

Нажимаем Insert для включения редактированния, затем добавляем расширение .os в строку с Add-Type

Сохраняем файл (Нажимаем ESC, затем Shift + Z + Z).

Рестартуем сервис Apache

sudo service apache2 restart

 

Развертывание приложения

 

Копируем приложение на сервер

Для копирования, воспользуемся утилитой pscp.exe. Основные команды можно посмотреть перейдя по ссылке ( https://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter5.html )

Предположим, что архив нашего приложения (application.zip) расположен в папке E:\Putty. Запустим командную строку Windows и выполним нижеследующую команду:

E:\Putty>pscp E:\Putty\application.zip onescript@192.168.1.199:/tmp/application.zip

После завершения копирования, файл с архивом приложения появится в папке /tmp

Разархивируем приложение

Разархивируем application.zip в папку /var/www/html. Для этого, в командной строке выполним нижеследующую команду:

sudo unzip /tmp/application.zip -d /var/www/html/

Переходим в папку /var/www/html и проверяем содержимое

cd /var/www/html


ls

Удаляем файл Web.config так как он используется для ОС Windows и переименовываем файл Web.config.linux в Web.config. Для этого выполним нижеследующие команды:

sudo rm ./Web.config


sudo mv ./Web.config.linux ./Web.config

Тестируем работоспособность

Обратимся из браузера к развернутому web-приложению. Если все настроено правильно, увидим примерно такой результат (зависит от приложения, которое Вы размещали).

 

Заключение

Надеюсь эта статья поможет Вам в развертывании http-сервисов OneScript на ОС Linux.

В качестве примера, Вы также можете скачать vhdx файл с развернутым приложением и использовать его для тестов.

См. также

Комментарии
1. Андрей Овсянкин (Evil Beaver) 4981 04.03.18 23:51 Сейчас в теме
Статья уже сама по себе хороша для настройки ASP под Linux, даже и без OneScript. А уж с ним - и вообще прекрасно! :)
CSiER; nixel; binex; JohnyDeath; +4 Ответить
2. Артём Андриянов (CSiER) 18 05.03.18 05:16 Сейчас в теме
Дело привычки - для работы с scp под Windows мне больше нравится WinSCP.
4. Никита Грызлов (nixel) 483 07.03.18 08:22 Сейчас в теме
(2) так он графический же :) а pscp - консольный
5. Артём Андриянов (CSiER) 18 07.03.18 09:24 Сейчас в теме
(4), есть такое ) просто мне удобнее ввести реквизиты и уже интерактивно работать с каталогами на удаленном хосте, чем прописывать руками весь путь. Также с vi - nano, mc проще в работе для начинающих GNU/Linux пользователей, imho. Как и писал выше - это дело привычки :)
6. Никита Грызлов (nixel) 483 07.03.18 09:28 Сейчас в теме
(5) за nano и mc неистово плюсую
3. Денис Новосёлов (binex) 270 05.03.18 10:06 Сейчас в теме
7. Денис Новосёлов (binex) 270 10.03.18 17:50 Сейчас в теме
скачать vhdx файл с развернутым приложением и использовать его для тестов


Чего файл такой огромный? 1,2 гига.

П.С.: Видимо, это нормально. )) Прогуглил "vhdx"
8. Юрий Дешин (blackhole321) 494 10.03.18 18:08 Сейчас в теме
(7)это архив, сам файл ~5. Это же уже готовый виртуальный диск с системой.
9. Евгений Стоянов (quick) 564 16.03.18 12:18 Сейчас в теме
Большего садомазо чем писать скрипты на 1С подобном языке придумать невозможно. Тем более под linux.
10. Юрий Дешин (blackhole321) 494 16.03.18 13:14 Сейчас в теме
12. Андрей Овсянкин (Evil Beaver) 4981 18.04.18 18:04 Сейчас в теме
16. Евгений Стоянов (quick) 564 19.04.18 17:58 Сейчас в теме
(12) Надеюсь что когда нибудь наступят времена когда смогу сказать. "Как же я заблуждался, 1С язык действительно удобней того что использую сейчас".
Без сарказма, правда хочу что бы они сделали его выразительней.
17. Андрей Овсянкин (Evil Beaver) 4981 19.04.18 19:54 Сейчас в теме
(16) Ну ок, держите нас в курсе того, что вы используете. А мы используем 1С.
Оставьте свое сообщение