Home / Blog

Ubuntu 20.04 LTSでdotnetを動かす方法

SplatDev · January 2, 2024 ·3 分で読めます

Ubuntu 20.04 LTSとaaPanelでdotnetを動かす

UbuntuでUmbracoを動かす

.NETアプリケーションをLinuxにインストールすることには、いくつかの利点があります。

  1. クロスプラットフォーム互換性:.NETのクロスプラットフォーム版である.NET Coreにより、アプリケーションはLinuxを含む複数のオペレーティングシステム上で動作します。これにより、さまざまな環境におけるアプリケーションのリーチと利便性が向上します。
  2. パフォーマンスと信頼性:Linuxはそのパフォーマンスと安定性で知られています。.NETアプリケーションをLinux上で実行すると、これらの特性を活かし、アプリケーションのパフォーマンスと信頼性の向上につながる可能性があります。
  3. オープンソースとコミュニティのサポート:Linuxと.NET Coreはどちらもオープンソースであり、強力なコミュニティのサポートと継続的な改善の恩恵を受けています。これにより、より高いセキュリティ、より多くの機能、より迅速なバグ修正が実現されます。
  4. コスト効率:Linuxは、特に運用コストの削減を目指す企業や開発者にとって、アプリケーションをホスティングするうえでより費用対効果の高い選択肢となり得ます。多くのLinuxディストリビューションは無料で利用でき、ソフトウェアライセンスのコストを削減できます。
  5. 既存のLinuxインフラとの統合:すでにサーバーやITインフラの一部にLinuxを使用している組織にとって、.NETアプリケーションをLinuxにインストールすることで、既存のエコシステム内でのシームレスな統合と管理が実現できます。
  6. 最新の開発手法:Linux上の.NET Coreは、LinuxでネイティブにサポートされているDockerによるコンテナ化を含む、最新の開発手法とツールをサポートします。これにより、より効率的な開発、テスト、デプロイのプロセスが可能になります。
  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)に必ず向けてください。

この時点で、すでにウェブサイトをデプロイして閲覧することができます。

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

Want more articles like this?

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

Get in touch →