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.