Ubuntu 20.04 LTSでASP.NET Coreを動かす
Ubuntu 20.04 LTS
.NET Core 3.1
でサービス化するまでの覚え書き。
LinuxでASP.NETが動くってかなり感動する。
設定もIISよりシンプルでいいね。
もう個人用途でWindows Server建てることなさそう。
■ .NET Coreをインストール
参考:Ubuntu 20.04 パッケージ マネージャーに .NET Core をインストールする – .NET Core | Microsoft Docs
.NET CoreになってからMSドキュメントすげー充実してて良いと思う。
そのまま実施でよい。
wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb dpkg -i packages-microsoft-prod.deb add-apt-repository universe apt-get install apt-transport-https apt-get update apt-get install aspnetcore-runtime-3.1
■ サービス作成
systemctlで管理できるようにサービスを作成する。
実行資産はあらかじめSCPなどでどこかに置いておく。
以下は「/var/www/myapp」に置いた想定。
vi /etc/systemd/system/kestrel-myapp.service
[Unit] Description=My App Description After=network.target [Service] WorkingDirectory=/var/www/myapp ExecStart=/usr/bin/dotnet /var/www/myapp/myapp.dll --server.urls "http://localhost:5000" Restart=always RestartSec=10 SyslogIdentifier=dotnet-mmyapp User=www-data Environment=ASPNETCORE_ENVIRONMENT=Production [Install] WantedBy=multi-user.target
dotnetコマンドは–server.urlsパラメータで公開URL+ポートを設定できて便利。
ポート番号を変更すれば、1台のサーバで複数サービス起動できるね。
サービス開始、自動起動設定をする。
systemctl start kestrel-myapp systemctl enable kestrel-myapp
ここまででブラウザで「web.local.domain.jp」にアクセスするとASP.NET Coreのサイトにアクセスできる。