在 Ubuntu 20.04 LTS 与 aaPanel 中运行 dotnet
在 Ubuntu 中运行 Umbraco
在 Linux 上安装 .NET 应用可以带来多方面的好处:
- 跨平台兼容性:.NET Core 作为 .NET 的跨平台版本,使应用能够在包括 Linux 在内的多种操作系统上运行。这扩大了应用在不同环境下的覆盖范围和可用性。
- 性能与可靠性:Linux 以其性能和稳定性而著称。在 Linux 上运行 .NET 应用可以充分利用这些特性,有望带来更好的应用性能和可靠性。
- 开源与社区支持:Linux 和 .NET Core 都是开源的,这意味着它们都受益于强大的社区支持和持续的改进。这可以带来更好的安全性、更多的功能以及更快的 Bug 修复。
- 成本效益:对于希望降低运营成本的企业或开发者而言,Linux 是托管应用更具成本效益的选择。许多 Linux 发行版都可免费获取,从而降低了软件许可的成本。
- 与现有 Linux 基础设施的集成:对于已经在服务器或 IT 基础设施其他部分使用 Linux 的组织来说,在 Linux 上安装 .NET 应用可以确保在其现有生态系统内实现无缝集成与管理。
- 现代开发实践:Linux 上的 .NET Core 支持现代开发实践与工具,包括使用 Docker 进行容器化,而 Docker 在 Linux 中得到原生支持。这有助于实现更高效的开发、测试和部署流程。
- 安全性:Linux 常因其安全特性而广受赞誉。在 Linux 上运行 .NET 应用可以受益于这些安全方面的优势,为应用提供更安全的运行环境。
总而言之,在 Linux 上安装 .NET 应用可以在兼容性、性能、成本、集成、现代开发实践和安全性等方面带来优势,使其成为许多开发者和组织颇具吸引力的选择。
按照以下概述的步骤来实现这一点:
安装 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)
此时,你已经可以部署你的网站并访问它了。
如果你打算在 Ubuntu 上使用 MSSQL,请务必按照以下步骤进行安装:
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