Green-sell.info

Новые технологии
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Asp net linux

Установка ASP.NET 5 на Linux¶

Установка при помощи prebuild binaries [1]¶

Prebuild binaries для ASP.NET 5 доступны на (.tar.gz) и могут быть установлены на вашей системе в зависимости от ее конфигурации.

Кроме того, вы можете использовать .NET Version Manager (DNVM), чтобы установить ASP.NET 5.

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

Установка на Ubuntu 14.04¶

Следующие инструкции были протестированы на Ubuntu 14.04.

Установка .NET Version Manager (DNVM)¶

Используйте .NET Version Manager (DNVM), чтобы установить различные версии .NET Execution Environment (DNX) на Linux.

Установите unzip и curl , если у вас их еще нет:

Скачайте и установите DNVM:

После этого шага вы сможете запустить dnvm и увидеть некоторые советы.

Установка .NET Execution Environment (DNX)¶

.NET Execution Environment (DNX) используется для создания и запуска .NET проектов. Используйте DNVM, чтобы установить DNX для Mono или .NET Core (см. Выбор правильного .NET сервера).

Чтобы установить DNX для .NET Core:

Установите начальные реквизиты DNX:

Используйте DNVM, чтобы установить DNX для .NET Core:

Установка DNX для Mono:

Установите пакет Mono при помощи mono-complete .

Убедитесь, что пакет ca-certificates-mono также установлен как noted в инструкциях по установке Mono.

Используйте DNVM, чтобы установить DNX для Mono:

По умолчанию DNVM установит DNX для Mono, если не указана среда разработки.

Восстановление пакетов при помощи DNX для Mono может завершиться несколькими отмененными запросами. Вы можете решить эту проблему, установив MONO_THREADS_PER_CPU на большее число (например, 2000).

Установка libuv¶

Libuv — это мультиплатформенная асинхронная IO библиотека, которая используется Kestrel , кроссплатформенным HTTP сервером для хостинга веб приложений ASP.NET 5.

Для создания libuv вам нужно сделать следующее:

make install вставляет libuv.so.1 в /usr/local/lib , ldconfig используется для обновления ld.so.cache , так чтобы dlopen (см. man dlopen ) могла загрузить их. Если вы установили libuv другим способом или не запускаете make install , тогда вам нужно убедиться, что dlopen способна загрузить libuv.so.1 .

Установка на CentOS 7¶

Следующие инструкции были протестированы на CentOS 7.

Установка .NET Version Manager (DNVM)¶

Используйте .NET Version Manager (DNVM), чтобы установить различные версии .NET Execution Environment (DNX) на Linux.

Установите unzip , если у вас еще нет этого:

Скачайте и установите DNVM:

После этого вы сможете запустить dnvm и увидеть некоторый вспомогательный текст.

Установка .NET Execution Environment (DNX)¶

.NET Execution Environment (DNX) используется для создания и запуска .NET проектов. Используйте DNVM, чтобы установить DNX для Mono (см. Выбор правильного .NET сервера).

В этом релизе DNX поддержка .NET Core не доступна для CentOS, Fedora и их производных, но в будущих релизах такая возможность будет существовать.

Установка DNX для Mono:

Установите Mono при помощи пакета mono-complete .

Убедитесь, что пакет ca-certificates-mono также установлен как noted в инструкциях по установке для Mono.

Используйте DNVM, чтобы установить DNX для Mono:

По умолчанию DNVM установит DNX для Mono, если не указана среда разработки.

Восстановление пакетов при помощи DNX для Mono может завершиться несколькими отмененными запросами. Вы можете решить эту проблему, установив MONO_THREADS_PER_CPU на большее число (например, 2000).

Установка Libuv¶

Libuv — это мультиплатформенная асинхронная IO библиотека, которая используется Kestrel , кроссплатформенным HTTP сервером для хостинга веб приложений ASP.NET 5.

Для создания libuv вам нужно сделать следующее:

Использование Docker¶

Следующие инструкции были протестированы при помощи Docker 1.8.3 и Ubuntu 14.04.

Установка Docker¶

Инструкции по установке Docker вы можете найти В документации по Docker.

Создание контейнера¶

Внутри папки приложения вы создаете Dockerfile , который выглядит вот так:

Также вы можете использовать CoreCLR или Mono. На данный момент репозиторий microsoft/aspnet:latest основывается на Mono. Вы можете использовать Microsoft Docker Hub, чтобы выбрать другой модуль или более старую версию CoreCLR.

Запуск контейнера¶

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

Publishing and running your ASP.NET Core project on Linux

Given that .NET Core, as a runtime, is a both open source and multiplatform it’s easy to understand the desire to run your ASP.NET Core project on a Linux host. Practically always you can find a Linux webhost cheaper than a Windows webserver. So .NET Core gives us developers the opportunity to build a web application in the language with probably the widest reach (yes, that’s C#) and host that on virtually any server platform.

For the purpose of this article, we are creating a ASP.NET Core website with Visual Studio Code, setting up a Linux host with Apache webserver, and deploying the site with Deploy, a VS Code Extension for deploying files in a workspace to a multitude of destinations.

Setting up a Linux host

There are many service providing offering a cheap Linux based VPS (virtual private server). Amazon offers a free tier, where you can run a single core, 1GB RAM instance for up to 12 months for free. After that, it’s about 9 USD/month. The instance we select is an Ubuntu Server 16.04 LTS (HVM) with 8GB of storage (SSD). Note that we connect to this instance through SSH, and the AWS console allows you to create a public/private key pair to connect securely to the instance. On a Windows machine, you can use mRemoteNG to connect to a Linux machine. However, connecting to Linux instances that run on AWS requires a bit more than just SSH client. Linux EC2 instances have password authentication disabled by default to prevent brute-force attacks and want you to supply your private key instead. But there is no such field in mRemoteNG configuration pane! Here is a detailed instruction on setting up your connection using mRemoteNG.

To install .NET Core on linux, we are using the same steps as described in this article.

We can install .NET Core using Ubuntu’s package manager, apt. The instruction can be found here, but make sure you are using the commands for Ubuntu 16.04 / Linux Mint 18.

We use the following command to list the available releases of .NET Core.

At the time of writing the last entry in the list is this one.

We can install it using this command.

Since we are using a sudo command, these operations get executed with root privileges. It will ask you for your regular user’s password to verify your intentions.

Configuring Apache as a reverse proxy

Kestrel is the web server that is included by default in ASP.NET Core new project templates. It is a cross-platform web server for ASP.NET Core based on libuv, a cross-platform asynchronous I/O library. If your application accepts requests only from an internal network, you can use Kestrel by itself.

However, if you expose your application to the Internet, you must use IIS, Nginx, or Apache as a reverse proxy server. A reverse proxy server receives HTTP requests from the Internet and forwards them to Kestrel after some preliminary handling.

In our example, we are going to setup and configure Apache to handle the requests and forward them to Kestrel.

To install Apache on Ubuntu, use the following command.

By default, your AWS instance has a network security setting to prohibit inbound traffic on port 80. You need to configure the security group in AWS. To do this, navigate to your instance in the AWS console, scroll to the right and click on the name of the security group. This way, you are sure to edit the security group for the instance, and not some other security group.

On the inbound tab, click Edit.

You can now add a rule for HTTP traffic. This will actually create two rules, one for IPv4 and one for IPv6.

If you now navigate to the IP address of your host, you should see the default Apache page.

Читать еще:  Asp net core linux

Now, we need enable the modproxy modules to in Apache server to make it work as a reverse proxy. modproxy is the Apache module for redirecting connections (i.e. a gateway, passing them through). It is enabled for use just like any other module and configuration is pretty basic (or standard), in line with others. modproxy is not just a single module but a collection of them, with each bringing a new set of functionality. You enable the modules with this command.

Configuration files for Apache are located within the /etc/apache2/conf-enabled/ directory. Any file with the .conf extension will be processed in alphabetical order in addition to the module configuration files in /etc/apache2/mods-enabled/, which contains any configuration files necessary to load modules.

To create a configuration file, use the following command

This is content of the the configuration file.

The VirtualHost node, of which there can be multiple in a file or on a server in many files, is set to listen on any IP address using port 80. The next two lines are set to pass all requests received at the root to the machine 127.0.0.1 port 5000 and in reverse. For there to be bi-directional communication, both settings ProxyPass and ProxyPassReverse are required.

Logging can be configured per VirtualHost using ErrorLog and CustomLog directives. ErrorLog is the location where the server will log errors and CustomLog sets the filename and format of log file. In our case this is where request information will be logged. There will be one line for each request.

Press CTRL-X and Y to save and exit the editor.

Now restart Apache using this command.

If you want to check logging on the startup sequence, type the following command.

Apache is now configured to forward requests made to http://localhost:80 on to the ASP.NET Core application running on Kestrel at http://127.0.0.1:5000. If you want to try it out, and see that it is working, we first need to have a ASP.NET Core website. There are several options here. You can deploy one from your local machine, if you have one available. Or you can create a basic website with the dotnet new command. Since we will deploying a locally developed site later in this article, and we want to know if our configuration is ready to accept and run that site, we are going forward with a boilerplate website. First, make sure that you are still in your home folder. You can always navigate to your home folder with the command cd

. In this folder, we are creating a site using the following commands.

When the last command is finished, you will have a basic MVC website. We are not going to run this website from your home folder, but rather deploy it to a subfolder of /var. This is not a requirement, but more of a convention. Ubuntu uses the folder /var/www/html as the default root for Apache. Publishing the MVC website is done like this.

While, Apache is not set up to manage the Kestrel process. We will use systemd and create a service file to start and monitor the underlying web app. systemd is an init system that provides many powerful features for starting, stopping and managing processes.

We can create a configuration file using the following command

The content of the .sevice file is as follows.

The various locations configured in this file obviously matter, and if the site fails to run, it’s very likely related to these settings. It seems that the location of the dotnet command differs between Linux-distributions, so use the whereis dotnet command to find out where it is on your machine.

If you completed the configuration and save the .service file, you need to enable it, and start it.

If all went well, you should be able to navigate to the IP address of your host and see the default start page of an ASP.NET Core MVC project.

Publishing from Visual Studio Code

There are many options for publishing your locally developed web application to a webserver. While professional development teams rely on continuous deployment tools like Octopus Deploy, Electric Flow, or Jenkins it’s still valid to simply deploy an application from your own machine using (s)FTP or copy. Deploy is an extension for Visual Studio Code that provides commands to deploy files of a workspace to a destination. Install this extension in VS Code by pressing CTRL-Shift-P and the Extensions: Install Extensions command. Since we have set up our webserver to run ASP.NET Core 2.0 Preview, it makes sense to create a .NET Core 2.0 project in Visual Studio Code. If you have not done so already, download and install the preview from https://www.microsoft.com/net/core/preview#windowscmd. This is assuming you are running VS Code on a Windows machine, but you can use Linux or MacOS as well.

Once installed, create a new ASP.NET MVC project through these commands in the terminal window of VS Code.

The deployment configuration is Workspace dependent (usually, since you probably have more than one project on your development machine). To create a workspace specific setting, press CTRL-, and go to the Workspace Settings tab. Here, you can enter the following deployment settings.

Since we are already using SSH to connect to our webserver at Amazon, it’s quite convenient to use SFTP (SSH FTP) for deployment. Make sure you know where your SSH private key file is located.

When you are ready to deploy, run the dotnet publish command first. Then, press CTRL-Shift-P and type Deploy:. Choose Deploy Workspace from the list of commands.

If all went well, you should see

Use a browser to navigate to your webhost, and you should see the site based on your local version.

It’s possible that the site is no longer running. This can be due to several issues:

You may have a .NET Core 2.0 Preview 2 version running locally, whereas the server still runs Preview 1. To update the version on the server, run these commands.

Часть 10. Запуск ASP.NET-приложений на платформе Linux

Серия контента:

Этот контент является частью # из серии # статей: Работаем с Mono

Этот контент является частью серии: Работаем с Mono

Следите за выходом новых статей этой серии.

ASP.NET — новая технология, созданная компанией Microsoft в рамках идеологии .NET для создания высоко функциональных Web-приложений. Одной из основных задач технологии ASP.NET является создание динамических Web-страниц. Текущая реализация Mono полностью поддерживает ASP.NET версии 1.1 и большинство возможностей ASP.NET версии 2.0.

С одной стороны кажется, что разработка приложений с использованием ASP.NET для использования на платформе Linux не имеет практического смысла, так как существует большое количество «родных» технологий, применяемых в области разработки динамических Web-страниц. Однако иногда возможны ситуации, когда необходимо обеспечить работу существующего ASP.NET Web-приложения на сервере, работающем под управлением ОС Linux.

Серверы, поддерживающие технологию ASP.NET

Основным сервером для запуска ASP.NET-приложений является Microsoft Internet Information Server (IIS), предназначенный исключительно для использования на ОС семейства MS Windows. Однако на платформе Linux существуют не менее мощные Web-серверы, например, возможно, самый известный Web-сервер — Apache. Web-сервер Apache поддерживает расширение функциональности с помощью плагинов. Для совместного использования Apache и Mono был разработан плагин mod_mono, который позволяет использовать ASP.NET на Linux-системах.

Другим вариантом является сервер XSP. XSP — это облегченный Web-сервер, предназначенный для разработки и тестирования Web-приложений. Сервер XSP не рекомендуется использовать для развертывания коммерческих проектов в силу ограниченной функциональности, однако он незаменим в ходе разработки. Web-сервер XSP, написанный на C#, входит в комплект инструментов Mono. С его помощью можно просматривать ASP.NET-страницы непосредственно из среды разработки MonoDevelop в режиме отладки. Если этот Web-cервер не установлен, то его можно установить следующей командой:

Читать еще:  Установка net на linux

Web-сервер Apache можно использовать для развертывания ASP.NET-приложений и без подключения плагина mod_mono, заменив этот плагин на комбинацию плагинов mod_proxy и mod_proxy_http и Web-сервер XSP. Однако такой способ не рекомендуется разработчиками Mono по ряду причин, среди которых снижение быстродействия и тот факт, что Web-сервер XSP не поддерживает все возможности стандарта HTTP 1.1.

Настройка Web-сервера Apache для работы с ASP.NET-приложениями

Существуют два способа настройки сервера Apache для работы с ASP.NET-приложениями. Самым простым вариантом является автоматическая настройка, для которой достаточно установить на Web-сервер плагин mod_mono. Перед установкой mod_mono следует проверить наличие плагина для работы с PHP и в случае, если он установлен — удалить, так как данные плагины несовместимы между собой.

Установка и настройка mod_mono может немного отличаться для различных Linux-дистрибутивов Linux. В данной статье будет использоваться дистрибутив Ubuntu 10.10 (Maverick Meerkat) с уже установленным Web-сервером Apache.

Сначала потребуется установить пакеты libapache2-mod-mono и mono-apache-server2 (все приведенные команды должны выполняться от имени суперпользователя root):

Пакет libapache2-mod-mono содержит плагин mod_mono для Apache, который распознает файлы, относящиеся к приложениям ASP.NET, и передает их mono-серверу, находящемуся в пакете mono-apache-server2. После этого необходимо установить пакет mono-devel, содержащий некоторые инструменты, которые могут потребоваться для работы приложений:

После подключения модуля потребуется перезапустить Web-сервер Apache, как показано ниже:

В листинге 1 приведен исходный код демонстрационной ASP.NET-страницы.

Листинг 1. ASP.NET-страница для проверки правильности установки mod_mono

Код страницы необходимо сохранить в файле sample.aspx и скопировать его в папку /var/www/. Для просмотра получившегося результата в адресной строке Web-браузера следует ввести следующий URL: http://localhost/sample.aspx. Если установка пакета mod_mono прошла успешно, то будет показана HTML-страница, изображенная на рисунке 1.

Рисунок 1. Результат открытия страницы sample.aspx

Второй вариант установки требует «ручной» конфигурации пакета mod_mono. Если на целевой системе уже был применен первый вариант, то следует отключить автоматическое конфигурирование и перезапустить Web-сервер Apache, как показано ниже:

Как и в первом случае, сначала потребуется установить пакеты libapache2-mod-mono и mono-apache-server2. Затем необходимо будет снова активировать поддержку mod_mono (но без поддержки автоматической конфигурации):

После этого в конфигурационном файле /etc/apache2/mods-available/mod_mono.conf необходимо будет определить версию ASP.NET, которая будет поддерживаться сервером. Для поддержки ASP.NET версии 2.0 в данном файле должна быть строка:

Для поддержки версии 1.1 потребуется другая запись:

Далее необходимо сконфигурировать ASP.NET приложение, создав конфигурационный файл Web-сервера в каталоге /etc/apache2/sites-available/, и активировать его командой a2ensite, указав в качестве параметра имя конфигурационного файла. После этого останется только перезапустить сервер, как было показано выше.

Вопросы создания конфигурационных файлов для Web-сервера Apache выходят за рамки данной статьи, поэтому необходимую информацию можно найти в документации сервера Apache или на ресурсе, посвященном плагину mod_mono.

Создание ASP.NET-приложения в среде разработки MonoDevelop

Среда разработки MonoDevelop поддерживает создание ASP.NET-приложений. Для создания приложения необходимо создать новый проект (solution) и выбрать тип проекта C# -> ASP.NET -> Web Application, как показано на рисунке 2.

Рисунок 2. Создание ASP.NET проекта в MonoDevelop IDE

Если не выбирать вариант с созданием пустого проекта (опция Empty Web Application), то MonoDevelop IDE создаст проект, содержащий ASP.NET-страницу с кнопкой, изменяющей при нажатии текст с Click Me на You clicked me.

Рисунок 3. ASP.NET-проект, открытый в среде разработки MonoDevelop

Процесс разработки ASP.NET приложений — это тема отдельной (а может и не одной) статьи, поэтому в данной статье в исходный пример будут внесены минимальные изменения, необходимые для демонстрации принципов работы с ASP.NET на платформе Mono. Так, когда пользователь нажмет на кнопку, уже имеющуюся на странице, то вместо текста будут выведены текущие значения даты и времени. Для этого необходимо изменить метод button1Clicked в файле Default.aspx.cs, как показано в листинге 2.

Листинг 2. Модифицированный метод button1Clicked

Для запуска приложения в оконном меню Run (запуск) необходимо выбрать опцию Run. После этого приложение запустится при помощи сервера xsp2 и откроется в окне Web-браузера. Результат запуска приложения показан на рисунке 4.

Рисунок 4. Результат запуска ASP.NET-приложения

После проверки работоспособности приложения необходимо развернуть его в виде самостоятельного Web-сайта, работающего на Web-сервере Apache. Для этого необходимо скомпилировать проект в режиме Release, затем создать каталог ASP_HelloWorld в каталоге /var/www/ и скопировать туда файлы ./bin/ASP_HelloWorld.dll, Default.aspx, web.config. Конфигурационный файл создается при помощи специальной утилиты.

Листинг 3. Конфигурационный файл для Web-сайта ASP_HelloWorld

Этот файл необходимо сохранить в каталоге /etc/apache2/sites-available под именем ASP_HelloWorld и добавить в файл /etc/hosts строку:

Осталось только активировать созданный Web-сайт на сервере Apache и перезапустить его, как показано ниже:

Проверить развертывание приложения можно, введя в адресную строку Web-браузера следующий URL-адрес: http://ASP_HelloWorld. При успешном развертывании проекта будет показана HTML-страница, изображенная на рисунке 5.

Рисунок 5. ASP.NET-приложение, развернутое на Web-сервере Apache

Проблемы, возникающие при миграции ASP.NET-приложений на платформу Mono

Как неоднократно отмечалось, технология .NET является кроссплатформенной, и Mono — это реализация технологии .NET для определенного семейства систем. Поэтому приложение, разработанное в Microsoft Visual Studio, может быть без особых проблем перенесено в Mono, если не использовать специальных сборок, которые существуют только для систем семейства Microsoft.

Однако при миграции приложений на Mono необходимо учесть несколько важных моментов. Общие проблемы миграции приложений уже рассматривались в статье Работаем с Mono. Часть 5: Перенос приложения на основе WinForms на платформу Mono. Вся информация, приведенная в этой статье, относится и к ASP.NET-приложениям.

Однако для ASP.NET приложений существует возможность игнорировать различие регистра символов в именах файлов путем установки переменной окружения MONO_IOMAP. Для включения этого режима в конфигурационный файл Apache необходимо добавить строку:

Также следует упомянуть про работу с базами данных. В среде Microsoft Windows чаще всего используются продукты семейства MS SQL Server. В Linux-сообществе доступно гораздо больше систем управления базами данных, как бесплатных open source СУБД, так и коммерческих продуктов.

Поэтому структуру базы данных и запросы, использующиеся в приложении, следует изменить так, чтобы они поддерживались выбранной СУБД (например, PostgreSQL или MySQL). Еще может потребоваться внести изменения в код приложения, которое работает с СУБД. В будущем работе с базами данных будет посвящена отдельная статья.

Поддержка новых версий ASP.NET

На момент написания данной статьи последней вышедшей версией Mono была версия 2.10.2 с поддержкой технологий ASP.NET 4.0 и MVC2. Однако в репозиториях наиболее распространенных дистрибутивов пока не появилась даже версия 2.8. Так, например, в репозиториях Ubuntu 10.10 самой свежей версией Mono является 2.6.7. Возможно, что версия Mono 2.10 не появится и в репозиториях Ubuntu 11.04. Таким образом, по умолчанию поддерживаются только версии 1.1 и 2.0 технологии ASP.NET.

Для поддержки новых версий ASP.NET потребуется самостоятельно выполнить сборку Mono. Для облегчения задачи можно воспользоваться сценарием с Web-сайта Integrated WebSystems LLC. Однако в тексте на указанной странице присутствует ошибка (рассматривается сценарий для версии 2.8), поэтому ниже приведена правильная последовательность команд:

Данный сценарий скачивает необходимые библиотеки и исходный код Mono и выполняет сборку и установку. После запуска сценария к переменной окружения PATH в файле /etc/environment необходимо добавить путь к новой версии: /opt/mono-2.10/bin. Для проверки корректности установки следует перезапустить систему и посмотреть версию Mono следующей командой:

Вывод данной команды должен совпадать с выводом, изображенным на рисунке 6.

How to Run an ASP.NET Core Website in Production on Ubuntu Linux

With the release of .NET Core and ASP.NET Core it’s now possible to run modern web applications written in C# on Linux. In this post, I will show you how to configure a Ubuntu server to run an ASP.NET Core site in production.

This post will cover:

  • What is ASP.NET Core?
  • How to install .NET Core on Ubuntu.
  • Running an ASP.NET Core website on Ubuntu.
  • Configure NGINX as a Reverse Proxy to ASP.NET Core.
  • Configure ASP.NET Core as a Background Service.

What is ASP.NET Core?

ASP.NET Core is a rewrite of ASP.NET and now runs on multiple operating systems such as Windows, OS X, Linux etc. Here is an excerpt of how the ASP.NET team describe it.

Читать еще:  Open c linux

ASP.NET Core is a new open-source and cross-platform framework for building modern cloud based internet connected applications, such as web apps, IoT apps and mobile backends. ASP.NET Core apps can run on .NET Core or on the full .NET Framework. – Introduction to ASP.NET Core

I think it goes without saying the benefits this brings to the whole development community. Businesses that use Windows can save costs on server licenses by running their apps on Linux.

How to Install .NET Core on Ubuntu

In order to run ASP.NET Core on Linux we need to install .NET Core. Follow the steps below to install .NET Core on your required Ubuntu version.

Install ASP.NET Core on Ubuntu 14.04

Install ASP.NET Core on Ubuntu 16.04

Running an ASP.NET Core Website on Ubuntu

The first step is to prepare the output directory that our test project will be published to.

The first command creates the directory, the second command changes the group to www-data and the last command makes sure that new files and folders inside the directory will be assigned the www-data group on creation. The reason we assign www-data to the directory is because it is safer to run the app as the www-data user.

Next we will download the samples from the ASP.NET GitHub repository and then publish the sample application to our output directory.

Test running the application as the www-data user with the following command:

You should see the output

Press Ctrl+C to shutdown the application.

Configure NGINX as a Reverse Proxy to ASP.NET Core

As you may have noticed when we tested the ASP.NET Core app in the previous section, the port it was listening on was 5000. We could change the app to listen on port 80 but that would mean no other sites on the server would be able to run at the same time. It’s also not recommended by Microsoft to run Kestrel (the ASP.NET Core module that handles HTTP requests) without a proxy.

To get around this we need to configure NGINX to listen on port 80 and proxy the requests to our ASP.NET Core app.

First we need to install NGINX with the following command.

Now we need to create the virtual host config for our test app by creating a new file called hellomvc.com.conf in the /etc/nginx/sites-available directory.

Add the following configuration options to the file.

Activate the new virtual host.

Apply the configuration.

After running the command we used above to start the app again, you should be able to access the site at http://hellomvc.com .

However, manually starting the process in production is not desirable, so we will configure the app to run as a background service in the next step.

Configure ASP.NET Core as a Background Service

Supervisor is a third-party program that can be used to monitor a process on Linux. By installing and configuring Supervisor we can monitor the ASP.NET Core process, so that it starts with the operating system and restarts in the event of a failure.

Install Supervisor with the following command.

The permissions of the supervisor.sock file need changed so that programs can be restarted without using sudo . Edit the supervisord.conf file.

Change chmod from 700 to 766.

Configure Supervisor to monitor our ASP.NET Core app

Add contents and save.

Restart Supervisor to apply the changes.

The application can now be started with.

You should be able to view the site by browsing to: http://hellomvc.com. Note: You will need to add hellomvc.com to your DNS server or hosts file to test the app.

If you are using Windows I have created handy tool that makes editing the hosts file easy. You can download it from GitHub here or read more about it in this post: Announcing Hosts Editor, a FREE tool for editing the Windows hosts file.

ASP.NET Core Web API – Linux Deployment

Posted by Marinko Spasojevic | Apr 30, 2018 | 2

After the IIS deployment, the last part of this series is the .NET Core Linux deployment. We use Ubuntu 16.04 Linux version on our VM, but you may use any version you want.

Whether you want to deploy an application to the local VM with the Linux OS or to the VM you have purchased from the provider, the process is similar but a few steps may vary but we are going to cover them all. The important thing is that if you are using a local VM set its adapter connection on a bridge adapter. It is usually in the Settings and then Network menu, but it varies depending on the VM software you are using.

To communicate with our VM, we are going to use PuTTY SSH client and FileZilla for the file transfer. You can, of course, use your own software, but if you want to follow along with the steps of this tutorial you can download them for free:

If you want to see all the basic instructions and complete navigation for the .NET Core series, check out the following link: Introduction of the .NET Core series.

For the complete navigation and all the basic instructions of the Angular series, check out: Introduction of the Angular series.

All required projects and the publish files are available at GitHub .NET Core, Angular and MySQL. Part 17 – Source Code

This post is divided into several sections:

Machine’s IP Address and SSH

If you have purchased a VM from the provider, then you have its IP address and SSH enabled for sure. But if you are using a local VM, you need to find out the IP address and to enable SSH on it.

To find out our VM’s IP address, let’s log in to the Linux OS and search for a terminal window. Then type ifconfig to locate the IP address:

Now we have our IP address, and let’s enable SSH by typing the command:

After that, let’s open PuTTY and connect to our VM with a valid IP address. The default port number should be 22.

Credentials and File Preparations With FileZilla

It is bad practice to log in to a VM as the root user. So if your current user is the root user, you should create a new one with the command: sudo adduser username , and then give it admin rights with the command: usermod –aG sudo username . After these steps, log in again to the VM with new credentials by using PuTTY.

Let’s create a new folder on the local machine and name it publishLinux. Place it next to the IIS publish folder, which we have created in the previous part. Copy all the files from the windows publish folder to a new one. We have created the production files in the previous part, so feel free to read it if you haven’t already done that.

To prepare the database on Linux, open FileZilla and login to your VM with it. Then transfer your backup.sql file to a VM, because we are going to need that file to populate the database:

Once we transfer a backup file to the VM, we need to install MySQL server and import that file.

Installing MySQL and Restoring the Backup File

First, let’s update the packages with the command:

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector