Home / Blog

Как запустить dotnet в Ubuntu 20.04 LTS

SplatDev · January 2, 2024 ·3 мин чтения

Запуск dotnet в Ubuntu 20.04 LTS и aaPanel

Запуск Umbraco в Ubuntu

Установка приложения .NET на Linux может быть выгодна по нескольким причинам:

  1. Кросс-платформенная совместимость: .NET Core, кросс-платформенная версия .NET, позволяет приложениям работать на нескольких операционных системах, включая Linux. Это расширяет охват и удобство использования приложения в различных средах.
  2. Производительность и надёжность: Linux известен своей производительностью и стабильностью. Запуск приложения .NET на Linux может использовать эти качества, потенциально приводя к лучшей производительности и надёжности приложения.
  3. Открытый исходный код и поддержка сообщества: и Linux, и .NET Core имеют открытый исходный код, что означает, что они выигрывают от мощной поддержки сообщества и непрерывных улучшений. Это может привести к лучшей безопасности, большему числу функций и более быстрому исправлению ошибок.
  4. Экономичность: Linux может быть более экономичным вариантом для хостинга приложений, особенно для предприятий или разработчиков, стремящихся снизить операционные расходы. Многие дистрибутивы Linux доступны бесплатно, что сокращает затраты на лицензии на ПО.
  5. Интеграция с существующей инфраструктурой Linux: для организаций, уже использующих Linux для своих серверов или других частей ИТ-инфраструктуры, установка приложений .NET на Linux может обеспечить бесшовную интеграцию и управление в рамках их существующей экосистемы.
  6. Современные практики разработки: .NET Core на Linux поддерживает современные практики и инструменты разработки, включая контейнеризацию с Docker, которая нативно поддерживается в Linux. Это может облегчить более эффективные процессы разработки, тестирования и развёртывания.
  7. Безопасность: Linux часто хвалят за его функции безопасности. Запуск приложений .NET на Linux может выиграть от этих аспектов безопасности, предлагая более защищённую среду для приложений.

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

Следуйте изложенным шагам, чтобы этого добиться:

Установите aaPanel
Необязательно, но полезно для обслуживания:

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

wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh
# Get Ubuntu version
declare repo_version=$(if command -v lsb_release &> /dev/null; then lsb_release -r -s; else grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"'; fi)
# Download Microsoft signing key and repository
wget https://packages.microsoft.com/config/ubuntu/$repo_version/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
# Install Microsoft signing key and repository
sudo dpkg -i packages-microsoft-prod.deb
# Clean up
rm packages-microsoft-prod.deb
# Update packages
sudo apt update
sudo apt-get update && sudo apt-get install -y apt-transport-https aspnetcore-runtime-6.0
sudo apt-get update && sudo apt-get install -y apt-transport-https aspnetcore-runtime-7.0
sudo apt-get update && sudo apt-get install -y apt-transport-https aspnetcore-runtime-8.0
sudo nano /etc/systemd/system/kestrel-helloapp.service
[Unit]
Description=Example .NET Web API App running on Linux
[Service]
WorkingDirectory=/var/www/helloapp
ExecStart=/usr/bin/dotnet /var/www/helloapp/helloapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=www
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
sudo systemctl enable kestrel-helloapp.service
sudo systemctl start kestrel-helloapp.service
sudo systemctl status kestrel-helloapp.service

И убедитесь, что вы настроили обратный прокси на порт, который вы задали для dotnet-приложения (по умолчанию 5001)

На этом этапе вы уже можете развернуть свой веб-сайт и открыть его в браузере.

Если вы собираетесь использовать MSSQL с Ubuntu, обязательно установите его, следуя этим шагам:

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2022.list)"
sudo apt-get update
sudo apt-get install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
systemctl status mssql-server --no-pager
sudo ufw allow 1433
ufw deny 1433
ufw deny 22
ufw deny 21
ufw deny 20

Want more articles like this?

Subscribe for updates on .NET, Umbraco, nopCommerce, and software engineering.

Get in touch →