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

Публикация № 794882

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

Специальные предложения

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


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

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

См. также

Swagger для 1С.

OneScript WEB Бесплатно (free)

Решение для формирования Swagger спецификаций, описывающих HTTP сервисы конфигураций 1С.

21.10.2019    10210    0    botokash    35    

Автоматическое сравнение-объединение баз данных с мини-конфигурацией

OneScript v8 Бесплатно (free)

Представляю вашему вниманию скрипт на OneScript для автоматического сравнения-объединения по правилам ("мержевания") конфигураций нескольких баз с мини-конфигурацией.

14.10.2019    2621    0    artkor    2    

АИТП. Подсистема взаимодействия с рабочими серверами OneScript

OneScript v8 Бесплатно (free)

В статье описан механизм взаимодействия конфигурации АИТП с рабочими серверами OneScript.

22.05.2019    4881    0    blackhole321    33    

1Script.Web. Интернет-приложения на языке 1С

WEB OneScript Инструментарий разработчика v8 Бесплатно (free)

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

20.05.2019    18468    0    Evil Beaver    33    

Создание высокодоступной фермы рабочих серверов OneScript в ОС Centos 7

OneScript Бесплатно (free)

В статье описана методика создания высокодоступной фермы рабочих серверов OneScript, для конфигурации АИТП.

14.05.2019    4206    0    blackhole321    0    

Разворачиваем рабочий сервер OneScript для конфигурации АИТП

OneScript v8 Бесплатно (free)

В статье описана методика развертывания рабочего сервера OneScript для конфигурации АИТП, на ОС CentOS 7.

09.05.2019    5739    0    blackhole321    0    

Хостим OneScript.Web приложение (heroku)

OneScript Бесплатно (free)

Развертывание oscript.web в heroku.

19.12.2018    5955    0    pallid    6    

Хостим OneScript.Web приложение

OneScript Бесплатно (free)

Удобная возможность для размещения своего OneScript.Web приложение, это завернуть его в docker. Остается вопрос: где разместить контейнер, сделать это можно на vscale или DO, но хочется упростить и не делать установку самого docker на хосте. Один из вариантов - это сервис now https://zeit.co/.

04.07.2018    7418    0    pallid    3    

Добавляем онлайн-чат в web-приложение OneScript

OneScript v8 Бесплатно (free)

В статье рассмотрено подключение онлайн-чата к web-приложению на основе http-сервисов OneScript

24.06.2018    7145    0    blackhole321    1    

Создаем сайт ресторана на OneScript

OneScript v8 Рестораны, кафе и фаст-фуд Абонемент ($m)

В статье изучаются возможности http-сервисов OneScript по созданию web-приложений на примере сайта ресторана

1 стартмани

19.06.2018    14981    17    blackhole321    63    

Сказ про то, как я DevOps-ом занимался (OneScript, Deployka, Jenkins)

OneScript DevOps Jenkins v8 1cv8.cf ИТ-компания Бесплатно (free)

Решаем задачу: автоматизировать обновление тестовых баз 1С из хранилища конфигурации при появлении в нём новых изменений. Данная статья родилась в муках хождения по граблям и поиска безопасного форватора среди подводных камней. Изложение постарался представить в виде инструкции для новичка, в которой собрал всё, с чем пришлось столкнуться. Сам я не DevOps-ер, ни на что не претендую, просто делюсь опытом :)

17.06.2018    20445    0    stas_ganiev    34    

Макеты в http-сервисах OneScript

OneScript v8 Бесплатно (free)

В статье описана библиотека, реализующая механизм макетов в http-сервисах OneScript, аналогично платформе 1С:Предприятие.

03.06.2018    7957    0    blackhole321    1    

Перечисления в http-сервисах OneScript

OneScript v8 Бесплатно (free)

В статье описывается библиотека, реализующая механизм перечислений в http-сервиах OneScript, аналогичный механизму платформы 1С:Предприятие

03.06.2018    7605    0    blackhole321    13    

Обработки в http-сервисах OneScript

OneScript Бесплатно (free)

В статье описана библиотека, реализующая механизм обработок в http-сервисах OneScript.

25.05.2018    7301    0    blackhole321    0    

Расширенные методы загрузки внешних библиотек в http-сервисах OneScript

OneScript Бесплатно (free)

В статье описаны расширенные методы загрузки внешних библиотек в http-сервисах OneScript на примере механизма фоновых заданий.

25.05.2018    7198    0    blackhole321    0    

Сборка, тестирование, доставка приложения на onescript с помощью gitlab-ci

OneScript v8 1cv8.cf Бесплатно (free)

Сборка, тестирование, доставка приложения на onescript с помощью gitlab-ci на примере портирования на onescript функции daСклонение.

14.05.2018    12251    0    pallid    3    

OneScript в облаке или Развертываем http-сервис OneScript на хостинге

OneScript Бесплатно (free)

В статье описан процесс развертывания web-приложения, созданного на базе http-сервисов OneScript на бесплатном хостинге.

05.05.2018    9129    0    blackhole321    0    

TMSSQL - работа с базами данных MS SQL Server в скриптах на OneScript и из командной строки

OneScript v8 Бесплатно (free)

Представляю вашему вниманию библиотеку TMSQL для работы с базами данных на MS SQL Server. Библиотека подключается в качестве модуля или класса в скрипты, написанные на OneScript, а также может работать как независимое консольное приложение.

26.04.2018    14083    0    Tavalik    22    

Развертывание http-сервиса OneScript на Raspberry Pi

OneScript Бесплатно (free)

В статье описан процесс настройки, а также процесс развертывания http-сервиса (web-приложения) OneScript на Raspbian (Raspberry Pi 2).

23.04.2018    10530    0    blackhole321    10    

Создаем свою библиотеку для OneScript

OneScript v8 Бесплатно (free)

Как упаковать свою библиотеку в пакет? Что такое загрузчик и зачем он нужен? Как вообще создать свою библиотеку? Разбираемся на примере.

06.03.2018    20755    0    nixel    36    

Обзор имеющихся библиотек OneScript

OneScript v8 Бесплатно (free)

Экосистема OneScript активно развивается. Количество пользователей данного интерпретатора и имеющихся библиотек неуклонно растет, количество решаемых проблем - тоже. Однако остро встает вопрос некоторой разобщенности и размазанности информации по имеющимся библиотекам, их функциональности и проблемам, которые они решают. Данная статья призвана навести порядок в этой теме.

14.11.2017    40813    0    nixel    86    

Начало работы с OneScript

OneScript Бесплатно (free)

Краткая инструкция по установке и начале работы с OneScript. Пишу потому что сам много шишек набил, пока нашел все инструменты. В статье рассмотрены: 1) Установка OneScript. 2) Установка редактора кода. 3) Настройка редактора кода под OneScript. 4) Запуск скриптов из редактора кода 5) Полезные ссылки

18.10.2017    38901    0    DmitrySinichnikov    53    

С чего начать разработку скриптов на OneScript? Первые шаги

OneScript Бесплатно (free)

После моего доклада на INFOSTART 2017 EVENT COMMUNITY ко мне многие обращались с таким вопросом: с чего начать разработку скриптов на OneScript? В этой статье привожу набор ссылок и некий порядок действий (как его вижу я) для людей, не знакомым с этим инструментом.

11.10.2017    25149    0    Tavalik    14    

Вебинтерфейс для OneScript и 1С

OneScript v8 Россия Бесплатно (free)

Пример создания вебинтерфейса для OneScript с использованием библиотеки UfaScript.osb

30.06.2017    13312    0    andreosh    7    

OneScript и Ajax. POST-запрос и мои дальнейшие планы с фантазиями о будущем

OneScript v8 Россия Бесплатно (free)

Моя библиотека для OneScript (версия 3.0 от 09.06.2017 см.GitHab UfaScript) https://github.com/andreosh/UfaScript теперь позволяет посылать POST-запросы на сервер без использования сторонних библиотек типа jquery.

09.06.2017    17549    0    andreosh    3    

Как сделать OneScript объектно-ориентированным

OneScript Россия Бесплатно (free)

Описание метода создания объектов на OneScript и метода передачи функции в качестве параметра.

16.04.2017    8136    0    andreosh    7