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

04.03.18

Разработка - OneScript

В статье описан процесс настройки сервера, а также процесс развертывания 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 файл с развернутым приложением и использовать его для тестов.

См. также

OneScript Программист Бесплатно (free)

Отгремел Infostart Tech Event 2024, топовое событие в мире 1С-разработки, традиционно проходящее в Санкт-Петербурге. Ваш покорный слуга в этот раз отмечал там 10-летний юбилей проекта OneScript. Отмечание проводилось в форме игры-соревнования по забегу роботов в лабиринте. Участники пытались написать алгоритм движения робота на языке 1С и сделать это быстрее других. О том, как это было – под катом.

28.10.2024    1411    Evil Beaver    11    

24

OneScript Программист Бесплатно (free)

OneScript – это скриптовый движок для автоматизации всего и вся. О том, как OneScript помогает в разработке скриптов на языке 1С, пойдет речь в статье.

10.10.2024    2389    ardn    1    

7

Инструментарий разработчика OneScript Программист Руководитель проекта Бесплатно (free)

Все мы хотя бы раз работали с конструктором запросов. Результатом его работы является синтаксически верный запрос, оформленный по некоторому стандарту. Нравится - не нравится, а привыкаешь быстро, и на запрос, написанный руками, уже не хочется смотреть... А почему бы не попробовать сделать то же самое с исходным кодом 1С? Ну я и попробовал...

23.09.2024    617    0    stopa85    4    

5

Групповая разработка (Git, хранилище) OneScript Программист Платформа 1С v8.3 Бесплатно (free)

Скрипт для работы с SonarQube и локальным репозиторием Git.<br> Цель проекта – возможность выполнить быструю проверку качества кода перед тем, как помещать доработки в рабочее хранилище. В Sonar и Git выгружается не вся конфигурация, а только объекты из заданного списка.<br> https://github.com/vkrivov/go/

02.07.2024    3560    vkrivov@yandex.ru    8    

19

DevOps и автоматизация разработки OneScript Системный администратор Программист Стажер Бесплатно (free)

Рассмотрим создание самоформирующейся документации через комментарии и соглашения: как это сделать и зачем, с описанием полного цикла от исходников конфигурации до странички в интернете

17.06.2024    5266    bayselonarrend    5    

61

OneScript Программист Стажер Бесплатно (free)

Поговорим про меню, спиннеры, прогресс-бары и прочие свистелки для CLI приложений на OneScript

20.05.2024    2914    bayselonarrend    18    

70

Групповая разработка (Git, хранилище) OneScript Системный администратор Программист Бесплатно (free)

Сегодня мы посмотрим на Github Actions - встроенный инструментарий Github для автоматизации рабочих процессов. Разберем, что это такое, зачем и причем тут OneScript.

25.03.2024    2667    bayselonarrend    3    

42

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Продолжение истории с прокси хранилища, но уже не на HTTP, а на TCP и без падений по памяти веб-сервера. Проверяем комментарии хранилища, вызываем веб-хуки, старты пайплайнов, gitsync по событию помещения версии в хранилище. И все это полностью на знакомом и понятном OneScript.

17.01.2024    5495    kamisov    23    

65
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Evil Beaver 8244 04.03.18 23:51 Сейчас в теме
Статья уже сама по себе хороша для настройки ASP под Linux, даже и без OneScript. А уж с ним - и вообще прекрасно! :)
Shmell; CSiER; nixel; binex; JohnyDeath; +5 Ответить
11. пользователь 18.04.18 15:39
Сообщение было скрыто модератором.
...
13. пользователь 19.04.18 03:34
Сообщение было скрыто модератором.
...
14. пользователь 19.04.18 11:33
Сообщение было скрыто модератором.
...
15. пользователь 19.04.18 16:02
Сообщение было скрыто модератором.
...
18. пользователь 19.04.18 20:31
Сообщение было скрыто модератором.
...
19. пользователь 20.04.18 01:27
Сообщение было скрыто модератором.
...
21. пользователь 20.04.18 10:43
Сообщение было скрыто модератором.
...
22. пользователь 20.04.18 19:42
Сообщение было скрыто модератором.
...
23. пользователь 21.04.18 01:13
Сообщение было скрыто модератором.
...
24. пользователь 22.04.18 00:44
Сообщение было скрыто модератором.
...
25. пользователь 23.04.18 04:29
Сообщение было скрыто модератором.
...
2. CSiER 36 05.03.18 05:16 Сейчас в теме
Дело привычки - для работы с scp под Windows мне больше нравится WinSCP.
4. nixel 1434 07.03.18 08:22 Сейчас в теме
(2) так он графический же :) а pscp - консольный
5. CSiER 36 07.03.18 09:24 Сейчас в теме
(4), есть такое ) просто мне удобнее ввести реквизиты и уже интерактивно работать с каталогами на удаленном хосте, чем прописывать руками весь путь. Также с vi - nano, mc проще в работе для начинающих GNU/Linux пользователей, imho. Как и писал выше - это дело привычки :)
djl; nixel; +2 Ответить
6. nixel 1434 07.03.18 09:28 Сейчас в теме
(5) за nano и mc неистово плюсую
3. binex 279 05.03.18 10:06 Сейчас в теме
Теперь я знаю кунг- фу )
7. binex 279 10.03.18 17:50 Сейчас в теме
скачать vhdx файл с развернутым приложением и использовать его для тестов


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

П.С.: Видимо, это нормально. )) Прогуглил "vhdx"
8. blackhole321 1314 10.03.18 18:08 Сейчас в теме
(7)это архив, сам файл ~5. Это же уже готовый виртуальный диск с системой.
9. quick 584 16.03.18 12:18 Сейчас в теме
Большего садомазо чем писать скрипты на 1С подобном языке придумать невозможно. Тем более под linux.
10. blackhole321 1314 16.03.18 13:14 Сейчас в теме
(9)
А Вы пишите прям в конфигураторе :)
https://infostart.ru/public/789679/
12. Evil Beaver 8244 18.04.18 18:04 Сейчас в теме
16. quick 584 19.04.18 17:58 Сейчас в теме
(12) Надеюсь что когда нибудь наступят времена когда смогу сказать. "Как же я заблуждался, 1С язык действительно удобней того что использую сейчас".
Без сарказма, правда хочу что бы они сделали его выразительней.
17. Evil Beaver 8244 19.04.18 19:54 Сейчас в теме
(16) Ну ок, держите нас в курсе того, что вы используете. А мы используем 1С.
20. пользователь 20.04.18 01:27
Сообщение было скрыто модератором.
...
26. amig0 16.07.23 14:39 Сейчас в теме
подскажите пожалуйста. устанавливал по вашей статье и по статье сайта oscript.

https://oscript.io/docs/page/http

ubuntu 22.04
тестовый скрипт с asp test page - выполняется исправно.
в тестовое приложение с main.os добавил папку bin с файлами из
oscript.web.linux-x64

вываливается в 500 ошибку.
web.config следующего содержания:

<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="*.os" type="OneScript.ASPNETHandler.ASPNETHandler" />
</httpHandlers>
<customErrors mode="Off"/>
</system.web>
<system.webServer>
<handlers>
<add name="OneScript" verb="*" path="*.os" type="OneScript.ASPNETHandler.ASPNETHandler" />
</handlers>
</system.webServer>
<appSettings>
<add key="CachingEnabled" value="false"/>
</appSettings>
</configuration>
Оставьте свое сообщение