Linux Sunucuda .net core projesi çalıştırma sıfırdan kurulum

Değerli kardeslerim .net core ile proje geliştirenler linux üzerinde projelerini çalıştırabilirler. bunun için yapmaları gerekenleri sıfırdan anlatıyorum.

Öncelikle bir fiziksel yada sanal sunucunuz olmalı ve ssh yetkiniz bulunmalı. cünkü tüm işlemleri ssh ile yapağız.

ilk olarak dosyarımızı yöneteceğimiz ve ssh komutlarını kullanabileceğimiz WinSCP programını kuralım.
https://winscp.net/eng/download.php kurulumdan sonra asağıdaki resimde gösterdiğim alanları doldurup bağlanalım

sonrasında ssh komuttunu acarak asağıdaki kodları tek tek sıra ile uygulayalım. ilk olarak sunucumuzu en son güncellemeye alalım (ben ubuntu üzerinde kuracağım.)

root girişi yaptıktan sonra kodları sırasıyla uygulayalım
apt-get update”, “apt-get upgrade” bu komutlar sistemi güncelleyecek biraz uzun sürebilir sonrasında
https://dotnet.microsoft.com/download/linux-package-manager/rhel/sdk-current buraya gidip aspnet paketini sırasıyla kendi işletim sistemimize göre kuralım ben ubuntu 16.04 üzerinde kuracağım ve ona göre komutlar yollayacağım. asağıdaki komut paketi tanıtıyoruz. ikinci satırdaki ilede kurulumu yapıyoruz.

wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb

sudo dpkg -i packages-microsoft-prod.deb

Sonrasında asağıdaki komutları sırasıyla yapıyoruz.

sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2

tamamlanınca artık linuxumuz asp.net core çalıştırabilecek duruma geliyor. şimdi

Asp Net Core Projemizi nasıl yayına alacağız buna bakalım

ilk olarak asağıdaki komutla modülümüzü etkinlestiriyoruz.

a2enmod proxy proxy_http proxy_html

Bir yapılandırma dosyası oluşturmamız gerekecek her proje için ayrı ayrı bunun için aşağıdaki komutu kullanın

sudo nano /etc/apache2/conf-enabled/aspnetcoredemo.conf

Bu, yapılandırma dosyasının içeriğini asağıdaki verdiğim kodları yapıştırın ve ctrl+x yes ve enter ile kaydedin. bu içerik sizin yayın yapacağınız portu tanımlıyor. 80 portunda biz bu projeyi cağıracağız demek

<VirtualHost *:80>

ProxyPreserveHost On

ProxyPass / http://127.0.0.1:5000/

ProxyPassReverse / http://127.0.0.1:5000/

ErrorLog /var/log/apache2/aspnetcoredemo-error.log

CustomLog /var/log/apache2/aspnetcodedemo-access.log common

</VirtualHost>

Şimdi asağıdaki komutu kullarak apache yi yeniden başlatalım.

sudo service apache2 restart

Apache artık http://127.0.0.1:5000 adresindeki Kestrel’de çalışan ASP.NET Core uygulamasına http: // localhost: 80’e yapılan istekleri iletmek üzere yapılandırılmıştır

sıra artık Asp net projesi oluşturup yayına almak bunun için asağıdaki komutları sırasıyla çalışıtın komutlar yeni bir klasör oluşturmak sonrasında yeni bir asp projesi ni o klasöre kurmak içindir

mkdir aspnetcoredemo

cd aspnetcoredemo/

dotnet new mvc

şimdiden oluşturduğumuz aspnet core projemizi yayına alıp ilgili klasöre kopyalamak bunun için yine asağıdaki kodu kullanalım

dotnet publish

sudo cp -a ~/aspnetcoredemo/bin/Debug/netcoreapp2.0/publish/ /var/aspnetcoredemo/

Bitmedi! sıra bu projemize run demek. yani çalıştıracağız bunun için bir yapılandırma dosyası oluşturuyoruz.

sudo nano /etc/systemd/system/kestrel-aspnetcoredemo.service

Sonra bu yapılandırma dosyasının içine asağıdaki kodu yapıştırıyoruz. yine ctrl X yes ve enterle kaydediyoruz.

[Unit]

Description=Example ASP .NET Web Application running on Ubuntu 16.04

[Service]

WorkingDirectory=/var/aspnetcoredemo

ExecStart=/usr/bin/dotnet /var/aspnetcoredemo/aspnetcoredemo.dll

Restart=always

RestartSec=10

SyslogIdentifier=dotnet-demo

User=www-data

Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]

WantedBy=multi-user.target

Bu servis dosyasını kaydettik ve artık çalıştırmamız gerekiyor bunun içinde asağıdaki kodları yollayalım.

sudo systemctl enable kestrel-aspnetcoredemo.service

sudo systemctl start kestrel-aspnetcoredemo.service

Arık projemizi yayına almış olalıyız. direk var var/aspnetcoredemo/ klasöründe demo bir projemiz yayında bunu isterseniz baska bir proje içine atarak yukarıdaki komuttaki dll i (/usr/bin/dotnet /var/aspnetcoredemo/aspnetcoredemo.dll) kendi projenizin uzantısına göre yayına alabilirsiniz. emeğe saygı için kopyala yapıştır yapmayın. kaynak link göstererek alabilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir