Как развернуть веб приложение
Данное руководство поможет вам развернуть PHP-приложение, WordPress и частный DNS.
Для реализации такой инфраструктуры нужны шесть серверов, которые создаются в следующем порядке:
- Частные DNS-серверы (ns1 и ns2).
- Сервер баз данных (db1).
- Серверы приложений (app1 и app2).
- Балансировщик нагрузки (lb1).
1: Частные DNS-серверы
Использование имен в адресах помогает идентифицировать серверы, с которыми вы работаете, и упрощает обслуживание объемных инфраструктур (чтобы заменить сервер, достаточно просто обновить свои записи DNS в одном файле, а обновлять бесчисленные конфигурационные файлы не нужно). В данной настройке DNS используется для того, чтобы иметь возможность ссылаться на частные сетевые адреса серверов по имени вместо IP-адресов.
Примечание: Поддомен почти всегда выбирается произвольно (обычно при его выборе предпочтение отдается варианту, который упростит настройку).
В результате вы получите два BIND-сервера, ns1 и ns2. Если вы уже знаете IP-адреса всех серверов, добавьте их в DNS. Если вы не знаете адреса, добавляйте DNS-записи по мере создания серверов.
2: Сервер баз данных
Чтобы внедрить распределение нагрузки между серверами приложений (то есть, между Apache и PHP), нужно отделить от них базу данных, выделив для нее отдельный сервер. Отделение БД от приложения является важным этапом для горизонтального масштабирования многих типов приложений.
Установка MySQL
Перейдите на сервер БД, db1, и установите MySQL:
sudo apt-get update
sudo apt-get -y install mysql-server
По запросу введите root-пароль MySQL.
sudo mysql_install_db
sudo mysql_secure_installation
MySQL снова запросит root-пароль, а затем предложит изменить его. Если вы не хотите менять этот пароль, введите N. На остальные вопросы программы можно выбрать опции по умолчанию.
Настройка MySQL для прослушивания частного сетевого интерфейса
Откройте конфигурационный файл MySQL:
sudo vi /etc/mysql/my.cnf
Найдите параметр bind-address и укажите в нем частный сетевой адрес сервера базы данных:
Сохраните и закройте файл.
sudo service mysql restart
Создание пользователя и базы данных
Теперь нужно создать БД и пользователя, с помощью которого приложение сможет подключаться к БД.
Откройте консоль MySQL:
Введите root-пароль MySQL.
Чтобы создать БД, введите:
CREATE DATABASE app;
MySQL связывает своих пользователей с серверами, которые будут подключаться к базе данных. В данном случае у вас есть два сервера приложений, которые будут подключаться к БД, поэтому необходимо создать пользователя для каждого из них.
Создайте пользователя базы данных appuser, к которому можно подключиться с частного сетевого адреса каждого из серверов приложений (app1 и app2). Используйте один и тот же пароль для каждого пользователя:
Теперь нужно передать пользователю appuser права на базу данных app.
Теперь инсталлятор приложения сможет получить доступ к БД и внести туда все данные.
Примечание: Если вы используете больше двух серверов приложений, создайте пользователей базы данных для каждого из них.
Выйдите из командной строки MySQL:
3: Настройка серверов приложений
Серверы приложений будут запускать код приложения, который будет подключаться к серверу базы данных. В данном случае используется PHP-приложение WordPress, которое обслуживается веб-сервером Apache или Nginx. Чтобы реализовать балансировку нагрузки между серверами приложений, настройте два одинаковых сервера.
Установка Apache и PHP
На оба сервера приложений, app1 и app2, нужно установить Apache и PHP.
sudo apt-get update
sudo apt-get -y install apache2 php5-mysql php5 libapache2-mod-php5 php5-mcrypt
Настройка Apache
Для распределения нагрузки и обработки SSL-терминации будет использоваться HAProxy. Это предотвратит прямой доступ к приложению. Свяжите Apache с частным сетевым адресом каждого сервера.
На каждом сервере приложений (app1 и app2) откройте конфигурационный файл портов Apache. По умолчанию это файл ports.conf:
sudo vi /etc/apache2/ports.conf
Найдите строку Listen 80 и добавьте в нее свой внутренний IP-адрес:
Сохраните и закройте файл.
Теперь Apache прослушивает только частный сетевой интерфейс, что означает, что к нему нельзя получить доступ по внешнему IP-адресу или имени хоста.
Перезапустите Apache, чтобы обновить настройки:
sudo service apache2 restart
Теперь веб-сервер Apache доступен только через частный сетевой адрес серверов приложений. Чтобы веб-сервер мог получать запросы пользователей, настройте балансировку нагрузки.
Загрузка и настройка приложения
В данном примере используется приложение WordPress. Если вы используете другое PHP-приложение, самостоятельно загрузите его и выполните соответствующую настройку (например, добавьте информацию о подключении к базе данных), а затем перейдите к следующему разделу.
Загрузите архив WordPress на первый сервер приложений, app1.
tar xvf latest.tar.gz
Перейдите в полученный каталог:
Для загрузок WordPress необходим каталог wp-content/uploads.
В качестве шаблона конфигурационного файла WordPress можно использовать образец, который поставляется с установкой. Скопируйте его:
cp wp-config-sample.php wp-config.php
Откройте файл в редакторе:
Настройте подключение WordPress к БД приложения. Для этого укажите следующие данные:
Примечание: Вместо условных данных укажите свои данные.
Балансировщик нагрузки будет шифровать данные с помощью TLS/SSL. Добавьте в настройки WordPress следующие строки, чтобы приложение могло взаимодействовать с обратным прокси-сервером и поддерживать SSL.
Сохраните и закройте файл.
Копирование файлов приложения в корневой каталог
Теперь приложение настроено. Можно скопировать его файлы в корневой каталог (document root) веб-сервера Apache, из которого он будет обслуживать контент.
По умолчанию DocumentRoot Apache находится в каталоге /var/www/html.
Сначала удалите стандартный файл index.html:
sudo rm /var/www/html/index.html
С помощью rsync скопируйте файлы WordPress в /var/www/html и передайте права на них пользователю www-data (он запускает Apache).
/wordpress/ /var/www/html
sudo chgrp -R www-data /var/www/html/*
Первый сервер приложений готов. Теперь нужно настроить второй сервер.
4: Репликация файлов приложения на остальные серверы
Чтобы сохранить целостность файлов приложения на всех серверах, нужно настроить репликацию каталога document root.
При загрузке файлов и установке плагинов веб-интерфейс WordPress будет сохранять файлы на том сервере, который обрабатывает запрос. Если эти файлы не реплицируются на все серверы приложений, некоторые из пользователей будут получать неполные страницы с отсутствующими изображениями и неработающими плагинами.
Примечание: Если вы используете не WordPress, а другое приложение PHP, которое не сохраняет данные (например, загруженные файлы или загруженные плагины) на сервере приложений, вы можете просто один раз скопировать файлы приложения вручную. Для копирования файлов с app1 на app2 используйте rsync.
GlusterFS позволяет создать реплицированный том необходимых файлов.
Настроив репликацию данных между серверами приложений, можно приступать к настройке распределения нагрузки.
5: Настройка балансировщика нагрузки
Копирование SSL-сертификата
Примечание: Данный раздел нужно выполнить на сервере lb1.
Откройте каталог, в котором хранится SSL-сертификат, и объедините все файлы сертификата в единый файл .pem. К примеру:
Затем скопируйте полученный файл в /etc/ssl/private:
HAProxy будет использовать этот файл для SSL-терминации.
Установка HAProxy
На сервер lb1 установите HAProxy.
sudo add-apt-repository ppa:vbernat/haproxy-1.5
sudo apt-get update
sudo apt-get -y install haproxy
Настройка HAProxy
Выберите параметры HAProxy, настройте SSL-терминацию, фронтенд и бэкенд.
Откройте конфигурационный файл.
sudo vi /etc/haproxy/haproxy.cfg
Общие настройки HAProxy
Для начала нужно выбрать значение maxconn. Этот параметр определяет максимальное количество одновременных соединений, которое будет поддерживать HAProxy. Это может повлиять на QoS и защитить веб-сервер от слишком большого количества запросов. Подберите оптимальное значение maxconn для вашей среды самостоятельно. Добавьте следующую строку в глобальные настройки и укажите выбранное значение.
Добавьте эту строку, чтобы настроить максимальный размер создаваемых временных ключей DHE:
Если вы хотите включить страницу статистики HAProxy, добавьте следующие строки в раздел defaults (укажите имя пользователя и надежный пароль):
stats enable
stats uri /stats
stats realm Haproxy\ Statistics
stats auth user:password
Настройки прокси
Затем нужно настроить бэкенд. Добавьте в файл:
Теперь сохраните и выйдите из haproxy.cfg. HAProxy готов к запуску, но сначала нужно настроить логирование.
Логирование HAProxy
Откройте файл rsyslog.
sudo vi /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
$UDPServerAddress 127.0.0.1
sudo service rsyslog restart
Настройка логирования HAProxy завершена. После запуска HAProxy создаст лог /var/log/haproxy.log.
Перезапуск HAProxy
Чтобы обновить настройки, перезапустите HAProxy.
sudo service haproxy restart
6: Настройка WordPress
Запустите сценарий установки WordPress, который подготовит БД.
Откройте в браузере:
На экране появится экран установки WordPress. Следуя его инструкциям. Заполните все формы и нажмите Install WordPress.
После установки WordPress приложение будет готово к работе.
Заключение
Обязательно проверьте работу приложения и убедитесь, что все работает должным образом.
Вот основные шаги, которые мы разберем:
создание виртуальной машины в Azure на основе дистрибутива Linux;
размещение веб-приложения на виртуальной машине;
подключение базы данных в виртуальной машине.
Создание виртуальной машины в Azure на основе дистрибутива Linux
Перейдите на портал Azure, найдите вкладку Virtual Machines (Виртуальные машины) и создайте новую машину. В этом процессе есть несколько важных моментов, которые мы подробно рассмотрим ниже.
Общие настройки
Для начала нужно указать подписку, группу ресурсов и параметры нового экземпляра. На этом этапе мы выберем операционную систему (в нашем случае — Ubuntu Server 20.04) и размер виртуальной машины.
Теперь нужно ввести данные учетной записи администратора — имя пользователя и пароль. Это очень важно, чтобы в дальнейшем получить доступ к нашей машине. Здесь нам предлагают выбрать из двух опций — создать открытый ключ SSH (SSH public key) или придумать пароль. Выбрав вариант с паролем, увидим такую форму:
Дальнейшие настройки
Теперь, когда мы указали основную информацию, можно еще раз проверить все параметры и создать машину. В другом сценарии мы также могли бы указать тип жесткого диска (SSD или HDD), конфигурацию сети, балансировку нагрузки, параметры управления самой машиной и расширениями.
Закончив с настройками, запустите процесс создания машины. Это займет несколько минут.
Когда все готово, перейдем в главный раздел Azure и получим открытый IP-адрес, назначенный нашей виртуальной машине.
В его настройках мы можем выбрать опцию Static (статический) — это значит, что IP-адрес не будет меняться во время перезагрузки виртуальной машины. Мы также можем указать DNS для нашего открытого IP-адреса.
Теперь, когда у нас есть виртуальная машина с Ubuntu Server 20.04, размещенная в Azure, мы можем установить с ней удаленное соединение по протоколу SSH (Secure Shell) через консоль управления.
Запустим следующую команду с именем пользователя (которое мы указали при создании ВМ в Azure), IP-адресом или DNS:
Здесь нужно ввести учетные данные для доступа к машине:
Установка Apache
Для установки Apache мы должны ввести следующие команды:
Учитывая, что порт 80 нашей виртуальной машины открыт, мы можем скопировать ее открытый IP-адрес или DNS и запустить их в браузере. Если Apache установлен правильно, мы увидим его стартовую страницу:
Теперь нам понадобятся модули Apache mod_proxy для выполнения функций обратного прокси-сервера:
В открывшемся диалоговом окне создадим новый профиль публикации типа Folder (Папка) и укажем путь к папке для развертывания файлов:
Теперь опубликуем решение из созданного профиля:
В результате наши файлы будут развернуты в указанной папке:
Мы используем их для выполнения следующей операции на виртуальной машине.
Размещение веб-приложения на виртуальной машине
Настройка сервера Apache
Файлы конфигурации в Apache хранятся в каталоге /etc/apache2/conf-enabled . Чтобы подключиться к виртуальной машине по протоколу SSH, нужно создать для нашего веб-приложения файл .conf . Это можно сделать в текстовом редакторе Nano:
Обратите внимание: вы можете задать нужное вам имя файла.
Содержимое нашего файла DotNetApp.conf будет таким:
Помимо этого, в файле конфигурации DotNetApp.conf мы указали, что к нашему приложению можно получить доступ через порт 80. В таком случае мы можем сменить порт, но важно при этом не забыть сделать то же самое в настройках нашей виртуальной машины в Azure.
Копирование файлов приложения на виртуальную машину
Теперь нужно изменить настройки веб-приложения так, чтобы оно стало доступным через порт 80. Для этого мы копируем файлы, развернутые в Visual Studio 2019, на виртуальную машину. Это можно сделать из каталога /var/.
Теперь выполним передачу файлов. В Windows для этого используется программа WinSCP, которая позволяет подключаться к виртуальным машинам.
Завершив установку и инициализацию WinSCP, создадим на виртуальной машине в Azure новый сеанс с нашими учетными данными.
В папке пользователя по умолчанию создадим новую папку, например App, и скопируем в нее файлы приложения:
Итак, все файлы приложения загружены на виртуальную машину. Далее нужно перенести файлы из каталога /home/azureuser/App в каталог /var/DotNetApp .
Теперь наше веб-приложение полностью размещено на виртуальной машине.
Создание службы для запуска приложения и контроля его работы
Чтобы создать файл службы, который позволит запускать наше веб-приложение, откроем редактор Nano:
В содержимом файла укажем рабочий каталог и файл для запуска веб-приложения.
Запустим созданную службу.
Используя атрибут status , мы можем проверить ее текущее состояние.
Теперь перезапустим сервер Apache и убедимся, что наше приложение работает через порт 80.
Подключение базы данных в виртуальной машине
Для установки PostgreSQL введем следующие команды:
Далее в настройках виртуальной машины в Azure нужно открыть порт 5432 для удаленного доступа к PostgreSQL.
Теперь на Ubuntu Server мы должны внести изменения в файл pg_hba.conf, чтобы разрешить удаленное подключение к PostgreSQL.
Пропишем в секции IPv4 local connections файла pg_hba.conf следующую строку:
Еще один файл, в который мы должны внести изменения, называется postgresql.conf. Эта конфигурация определяет, какие IP-адреса могут удаленно подключаться к PostgreSQL.
Теперь перезапустим службу базы данных.
Установив эти настройки, мы можем создать пользователя для доступа к базе данных, как в этом примере:
Осталось только изменить соответствующие настройки нашей базы данных. Сделав это, мы сможем удаленно подключаться к ней от имени пользователя, которого мы только что создали.
В завершение мы должны установить в нашем веб-приложении новое подключение к базе данных.
Чтобы эти изменения вступили в силу, нужно заменить файлы в каталоге /var/DotNetApp на другие, с новой конфигурацией, и перезапустить соответствующие службы (Kestrel и Apache).
Спасибо за внимание
Спасибо, что прочитали эту статью. Надеюсь, она показалась вам интересной и полезной. Если у вас появились вопросы или идеи, которыми хочется поделиться, я всегда открыт для общения, участия в совместных проектах и обмена опытом.
Сконфигурируйте IIS так, как того требует приложение. Создайте необходимые пулы приложений, сделайте каталог приложения доступным для совместного использования в качестве виртуального каталога и должным образом сконфигурируйте виртуальный каталог.
Установите права учетной записи Windows для пользователя рабочего процесса. Пользователь, от имени которого запускается рабочий процесс (w3wp.exe), нуждается в доступе для чтения к каталогам приложения. Если приложение обращается к другим ресурсам, например, к системному реестру или к журналу событий, для учетной записи рабочего процесса понадобится сконфигурировать разрешение на доступ к этим ресурсам.
В некоторых случаях необходимо также модифицировать файл machine.config. Например, если работа выполняется в среде веб-хостинга, а в целях балансировки нагрузки приложение работает на множестве веб-серверов, необходимо синхронизировать любые ключи шифрования, используемые для шифрования мандатов аутентификации с помощью форм или состояния представления на всех этих компьютерах. Эти ключи хранятся в файле machine.config и должны быть одинаковыми на каждом компьютере веб-фермы с тем, чтобы один компьютер мог расшифровать информацию, зашифрованную другим компьютером, ранее обрабатывавшим запрос.
Основная задача связана с развертыванием содержимого приложения на сервере IIS 8. В этой статье предполагается наличие у вас прав администратора и вход в систему сервера от имени учетной записи администратора. Если используется разделяемый сервер или поставщик услуг хостинга, то поставщик пришлет сведения об учетной записи, которая должна применяться при развертывании веб-сайта. Для простоты мы будем считать, что работа выполняется с учетной записью администратора, но при управлении собственным сервером следует подумать об использовании менее привилегированной учетной записи.
Развертывание посредством копирования файлов
Простейший способ развертывания веб-сайта предусматривает копирование файлов с рабочей станции на сервер. Несмотря на простоту, этот подход требует наличия непосредственного доступа к серверу. Именно по этой причине некоторые IT-подразделения и компании, предоставляющие услуги хостинга, не поддерживают эту опцию. Но она может быть простейшей при управлении собственным сервером или наличии особых договоренностей с компанией хостинга.
Подготовка IIS
Прежде чем развертывать веб-сайт, нужно подготовить IIS. Главное решение, которое нужно принять, касается места размещения содержимого и его влияния на конечный URL-адрес. Начнем с очевидного подхода - предположим, что необходимо, чтобы URL-адрес для содержимого данного примера был следующим:
IIS нужно подготовить так, чтобы было куда скопировать наш файл. В IIS Manager выберите элемент Default Web Site. Как следует из его имени, это сайт по умолчанию на сервере. Щелкните на нем правой кнопкой мыши и в контекстном меню выберите пункт Explore (Проводник), чтобы отрыть окно проводника Windows для заданного по умолчанию каталога IIS, которым является inetpub\wwwroot на системном томе (как правило, C:\).
Создайте каталог WebsiteDeployment, а в нем - каталог FileCopy (чтобы обеспечить существование пути inetpub\wwwroot\WebsiteDeployment\FileCopy). Закройте окно проводника, чтобы вернуться в IIS Manager. Щелкните правой кнопкой на записи Default Web Site и в контекстном меню выберите пункт Refresh (Обновить), чтобы увидеть новый каталог.
Веб-сайт
Развертывание веб-сайта
При использовании этой методики развертывания нужно просто скопировать файлы в созданный каталог. Переместите файлы веб-сайта на сервер любым подходящим способом - посредством общего сетевого диска, съемного диска USB и т.п. - и скопируйте файлы Default.aspx и Default.aspx.cs в каталог FileCopy, созданный на сервере.
Когда файлы будут скопированы, вернитесь в окно IIS Manager на сервере, щелкните правой кнопкой на папке FileCopy в древовидном представлении и в контекстном меню выберите пункт Refresh. В нижней части экрана щелкните на кнопке Content View (Просмотр содержимого). В центральной части окна должны отобразиться два файла веб-сайта, как показано на рисунке ниже:
В этом состоит наиболее важная часть этой технологии развертывания - вначале должна быть создана структура каталогов, которая представляет необходимый URL-адрес, а затем в готовые каталоги копируются файлы веб-сайта. Посмотрим, как это выглядит на практике. Для этого выберите FileCopy в IIS Manager и щелкните на ссылке Browse (Обзор) в правой части окна. Откроется веб-браузер с загруженным URL-адресом созданной папки. Окно браузера должно выглядеть подобно показанному на рисунке ниже:
Взглянув на URL-адрес адрес, можно удостовериться в том, что был получен желаемый результат. Браузер загрузил веб-сайт из следующего адреса:
Вспомните, что localhost - это специальное имя, обозначающее текущий компьютер, а URL-адрес, в котором не указан порт, будет использовать порт 80. (В моем случае я переместил сайт на порт 8080 по причинам, указанным в предыдущей статье). Можете проверить это, направив браузер по следующему URL-адресу:
Результат будет полностью аналогичен предыдущему (professorweb в данном случае имя сервера).
Конфигурирование развертывания
Вернитесь в браузер и перезагрузите страницу.
Откроется диалоговое окно Add Application (Добавление приложения). Используемый пул приложений можно изменить, щелкнув на кнопке Select (Выбрать). Настроить учетную запись пользователя, которую IIS будет применять для доступа к содержимому сайта, можно с помощью кнопок Connect as. (Подкл. как. ) и Test Settings. (Тест настроек. ). Пока что просто щелкните на кнопке ОК. Возможно, придется выбрать пункт Refresh (Обновить) в меню View (Вид) (или, как это часто имеет место, закрыть и снова открыть IIS Manager), но теперь значок записи FileCopy в древовидном представлении должен измениться.
Развертывание с помощью Visual Studio
Visual Studio предлагает встроенные возможности для упрощения развертывания веб-приложений, что облегчает задачу проектирования сложных веб-сайтов. Visual Studio включает в себя функции, которые интегрируются с IIS и позволяют создавать виртуальные каталоги, не выходя из комфортной среды разработки. Visual Studio предлагает несколько возможностей для интеграции с IIS:
Вы можете создавать виртуальный каталог при создании нового проекта.
Вы можете использовать функцию Copy Web Site (Копировать веб-сайт) для передачи существующего веб-сайта в виртуальный каталог.
Вы можете использовать функцию Publish Web Site чтобы скомпилировать свой сайт и передать его по новому адресу.
Создание виртуального каталога для нового веб-сайта
При создании веб-сайта в Visual Studio, вы можете одновременно создать виртуальный каталог для этого веб-сайта. Если вы сделаете это, Visual Studio не будет использовать встроенный тестовый сервер IIS Express. Вместо этого, все ваши запросы будут обрабатываться полной версией IIS.
Такой подход не является лучшим т.к. вы не сможете настроить некоторые параметры, такие как страницы по умолчанию, пользовательские ошибки и т.п. Вместо создания нового виртуального каталога с помощью Visual Studio лучше будет выбрать существующий каталог IIS, который в свою очередь можно сконфигурировать с помощью IIS Manager. Для этого щелкните по кнопке Browse (Обзор) и выберите нужный виртуальный каталог:
В этом окне вы можете добавить или удалить виртуальный каталог используя кнопки вверху справа.
Копирование веб-сайта
Visual Studio также включает в себя быстрый и простой способ для передачи файлов веб-приложения. Вам просто нужно выбрать в меню WebSite --> Copy Web Site. Откроется новое диалоговое окно Visual Studio, которое покажется знакомым любому, кто имел дело с различными IDE-программами для работы с сайтами, такими как Dreamweaver или Expression Web:
Это окно состоит из двух списков файлов. Слева находятся файлы в текущем проекте (на локальном жестком диске). Справа находятся файлы на целевом месте (удаленный веб-сервер). При первом открытии этого окна вы ничего не увидите справа, потому что вы не указали цель. Вы должны нажать кнопку Connect вверху, чтобы предоставить эту информацию. При этом Visual Studio откроет знакомое диалоговое окно, которое выглядит почти так же, как то, что вы видели при создании виртуального каталога для нового проекта. В этом окне вы можете выбрать одно из мест, куда нужно копировать веб-сайт:
File System
Это самый простой выбор - вы копируете файлы сайта внутри текущей файловой системы.
Local IIS
Позволяет выбирать виртуальные каталоги локального сервера IIS. Это удобно если сайт нужно будет разместить в другом каталоге.
FTP Site
Обеспечивает доступ к удаленному сайту через FTP. Многие хостинг-провайдеры предлагают доступ к сайтам через FTP, так что благодаря этой настройке вы можете сразу разворачивать свой сайт на удаленном веб-сервере, не прибегая к услугам различных FTP-программ наподобие TotalCommander:
Эта опция предлагает подключение к сайту по URL-адресу с использованием расширения FrontPage Extensions.
Как только вы выберите соответствующий пункт назначения, нажмите кнопку Open. Visual Studio попытается подключиться к удаленному сайт и получить список файлов.
В статье предполагается, что Вы имеете web-приложение OneScript, созданное на основе этой или этой статьи, либо же каким-либо другим способом. Автор использовал для размещения приложение, созданное в этой публикации.
В процессе установки была добавлена поддержка русской клавиатуры , а также установлен OpenSSH сервер для удаленного доступа к серверу .
Также , был создан пользователь с логином onescript и паролем - 123456.
Необходимые утилиты
Настройка системы
Подключаемся к серверу
Подключаемся к серверу при помощи putty.exe и вводим логин и пароль .
Обновляем список доступных пакетов и устанавливаем новые версии
В командной строке выполняем следующие команды :
Устанавливаем утилиту распаковки zip файлов
В командной строке выполним нижеследующую команду :
Устанавливаем mono
В соответствии с приведенными инструкциями , последовательно выполняем в командной строке нижеследующие команды :
Подключаем репозитарий Mono
Устанавливаем Mono
Устанавливаем и настраиваем web- сервер
Как было указано ранее, в качестве web- сервера используется Apache с модулем mod-mono-server.
Устанавливаем Apache
Для установки , в командной строке выполняем нижеследующую команду :
Тестируем работоспособность сервера
Проверить работоспособность web- сервера можно обратившись к нему из браузера .
Устанавливаем mod-mono-server4
Детальная документация по продукту, установке и настройке можно найти по ссылке:
Для установки данного компонента, выполним нижеследующую команду :
Настраиваем mono-mod-server
Для простоты, используем режим AutoHosting. Для активации режима выполним нижеследующую команду :
Рестартуем сервис Apache
По умолчанию, корневая папка документов Apache расположена по нижеследующему пути : /var/www/html
Создадим в этой папке файл test.aspx следующего содержания :
Вставляем текст страницы и сохраняем файл (нажимаем ESC , затем Shift + Z + Z ) .
Тестируем работоспособность, для этого, из браузера обращаемся к созданной странице.
Настраиваем обработку расширений для *.os файлов
Для этого, отредактируем строку Add-Type application/x-asp-net , добавив туда расширение .os , в файле /etc/mono-server4/mono-server4-hosts.conf
Нажимаем Insert для включения редактированния, затем добавляем расширение . os в строку с Add-Type
Сохраняем файл (Нажимаем ESC, затем Shift + Z + Z ).
Рестартуем сервис Apache
Развертывание приложения
Копируем приложение на сервер
Предположим , что архив нашего приложения (application.zip) расположен в папке E:\Putty . Запустим командную строку Windows и выполним нижеследующую команду :
После завершения копирования, файл с архивом приложения появится в папке /tmp
Разархивируем приложение
Разархивируем application.zip в папку /var/www/html . Для этого, в командной строке выполним нижеследующую команду :
Переходим в папку /var/www/html и проверяем содержимое
Удаляем файл Web.config так как он используется для ОС Windows и переименовываем файл Web.config.linux в Web.config . Для этого выполним нижеследующие команды :
Тестируем работоспособность
Обратимся из браузера к развернутому web- приложению. Если все настроено правильно, увидим примерно такой результат (зависит от приложения, которое Вы размещали).
В качестве примера, Вы также можете скачать vhdx файл с развернутым приложением и использовать его для тестов.
Читайте также: