Ebben a cikkben azt mutatjuk be, hogy hogyan lehet egy Ubuntu 20.04 operációs rendszerrel rendelkező VPS-t felkészíteni arra, hogy ASP.NET Core alkalmazások futtatására képes legyen. Ebben a cikkben nem foglalkozunk az Nginx beállításának lehetőségeivel, hogy a tárhely ne csak egy domain "lekezelésére" legyen képes. A következő cikkben térünk ki erre a lehetőségre is, akkor fogjuk megnézni azt is, hogy hogyan lehet a C# nyelven írt webes alkalmazást kipublikálni erre az Ubuntu szerverre.
Először az Ubuntu 20.04-re feltelepítjük a .NET Core 3.1-et, majd alkalmassá kell tennünk a VPS-ünket arra, hogy webes kéréseket ki tudjon szolgálni. Erre több lehetőségünk is van, telepíthetjük akár az Apache-ot, vagy az Nginx-et erre a célra. Mi az Nginx-et fogjuk majd telepíteni.
A webes fejlesztéseknél ma már elengedhetetlen az adatbázisok használata. Noha célszerű külön adatbázisszervert alkalmazni, de a cikk elkészítésekor a webes kiszolgáló és az adatbázisszerver ugyanazon az IP címen található. Célszerűnek tűnik az MySql telepítése az Ubuntu-ra, de az ASP.NET Core miatt a cikk írásakor az MSSql-re esett a választás.
Először képessé kell tennünk az Ubuntu operációs rendszert futtató VPS-ünket arra, hogy .NET Core alkalmazásokat tudjon futtatni, ehhez telepítenünk kell a keretkörnyezetet. A cikk írásakor a legújabb stabil keretkörnyezet a 3.1-es. A következő "Ubuntu" operációs rendszerekre érhető el a .NET Core (1. ábra).
1. ábra A .NET Core a következő Ubuntu verziókra érhető el
Először adjuk ki a következő parancsot, amelynek segítségével a telepítőfile-t lemásoljuk a 20.04-es VPS-ünkre.
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
Ezután a "dpkg -i" uatsítással tudjuk az Ubuntu operációs rendszeren a "*.deb" csomagokat telepíteni.
dpkg -i packages-microsoft-prod.deb
Ez a két lépés látható a következő ábrán.
2. ábra .NET Core 3.1 telepítése Ubuntu 20.04-re
A telepítés után update-eljük az operációs rendszerünket.
apt-get update
Ezután tudjuk telepíteni a .NET Core SDK-t a következő parancs kiadásával.
apt-get install -y dotnet-sdk-3.1
A .NET Core SDK telepítése látható a 3. ábrán.
3. ábra Az SDK telepítése
A telepítés végén a következő üdvözlő képernyő fogad minket (4. ábra).
4. ábra Sikeres az SDK telepítése
Célszerű telepíteni még a Runtime-ot is, adjuk ki ehhez a következő utasítást.
apt-get install -y aspnetcore-runtime-3.1
Ezekkel a lépésekkel a .NET Core sikeresen telepítettük. Most kell egy webkiszolgáló, amely a webes kéréseinket fogja kezelni. Ez lehet akár az Apache, de akár az Nginx is. Fontos megjegyezni azt, hogy egyszerre csak az egyik működhet.
Az Nginx telepítéséhez a következő parancs kiadása szükséges.
apt install nginx
Ezzel a paranccsal a telepítés sikeresen megtörténik (5. ábra).
5. ábra Nginx telepítése az Ubuntu 20.04-es operációs rendszerre
Nézzük most meg, hogy a tűzfalszabályhoz melyik alkalmazásokat tudjuk hozzáadni. Ehhez a következő utasítás kiadása szükséges.
ufw app list
Látható a 6. ábrán, hogy az Nginx képes lekezelni a HTTP (80-as port) és a HTTPS (443-as port) kéréseket. Látható továbbá az is, hogy a VPS-ünkön megtalálható az Apache is.
6. ábra Tűzfal
Engedélyezzük az előbb felsorolt alkalmazáslistából az Nginx HTTP-t és a HTTPS-t, illetve ha szeretnénk ssh-val hozzáférni a szerverünkhöz, akkor adjuk hozzá a szabályhoz az ssh-t is. Ezeket az utasításokat kell kiadni a fent említett tűzfalszabályok beállításához.
ufw allow 'Nginx HTTP'
ufw allow 'Nginx HTTPS'
A két Nginx-es engedélyezés helyett alkalmazhattuk volna a "Full"-t is. Végül hozzáadhatjuk a 22-es port engedélyezését is, megkönnyítve a szerverünk távoli menedzselését (és az esetleges feltörését is.... :( )
ufw allow ssh
Ezután nézzük meg a következő utasítással a tűzfal beállítását.
ufw status
A tűzfal szabály megtekintése, illetve a módosítása látható a következő ábrán.
7. ábra Tűzfal szabály kiiratása, illetve kibővítése az ssh-val
Végül nézzük meg, hogy működik-e az Nginx. Adjuk ki a következő parancsot ehhez.
systemctl status nginx
Látható a 8. ábrán, hogy az Nginx ugyan telepítésre került, de még nem működik, inaktív.
8. ábra Az Nginx még inaktív
Azért inkatív még az Nginx, mert az Apache fut (9. ábra).
9. ábra Az Apache fut még az Nginx helyett
Tiltsuk le az Apache működését (disable), majd indítsuk el az Nginx-et és kérdezzük le a státuszát (10. ábra).
10. ábra Az Nginx elindítása, és a státuszának lekérdezése
Látható tehát az, hogy az Nginx már fut, a webes kéréseket innentől kezdve nem az Apache, hanem az Nginx szolgálja ki.
Noha C# nyelven kényelmesen megoldható a különböző SQL parancsok futtatása, tehát akár MySql szerver is használható, mi most még is az MSSql-t fogjuk telepíteni.
A telepítés elkezdésekor a következő utasítás szükséges.
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
Ezután adjuk hozzá a repository-hoz a jövetkező Microsoft-os elérést. Adjuk ki a következő parancsot.
add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/18.04/mssql-server-2019.list)"
Látható a következő ábrán, hogy ennek a parancsnak a futtatása nem volt sikeres, mert ismeretlen az "add-apt-repository". Szerencsére kapunk egy ajánlást a telepítésre, ezért könnyen tudjuk telepíteni ezt a hiányzó parancsot.
11. ábra Sikertelen repository használat
Most adjuk ki újra a korábbi utasítást, amely sikeresen lefut (12. ábra).
12. ábra Sikeresen hozzáadásra került a kérdéses link a repository-ba
Ahhoz, hogy a (bővített) repository már használható legyen, update-elni kell, ehhez adjuk ki a következő utasítást.
apt update
Most már kényelmesen tudjuk telepíteni a MSSql szervert a következő utasítással.
apt install mssql-server
A 13. ábrán látható a telepítés menete.
13. ábra MSSql szerver telepítése
A szerver telepítése után ki kell még adni az ábrán kijelölt utasítást (14. ábra).
14. ábra Az MSSql szerver konfigurálása
A sikeres installálás után látható, hogy a szerverünk már aktív, a szolgáltatás fut (15. ábra).
15. ábra Az MSSql szerver állapotának lekérdezése
Több lehetőségünk is van, hogy használatba vegyük a frisssen telepített szervert, hogy létrehozzunk adatbázisokat, stb. Elérhetjük távolról is, ehhez azonban ki kell nyitni a 1433-as portot. Ez nem szerencsés IT biztonság szempontjából, ezért célszerű inkább valamilyen konzolos programot. Ilyen az "sqlcmd" és az "mssql_cli", ezeket fogjuk most telepíteni.
Először az "sqlcmd" programot telepítsük, ehhez a következő utasítások kiadása szükséges.
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/19.10/prod.list > /etc/apt/sources.list.d/mssql-release.list
apt update
ACCEPT_EULA=Y apt install mssql-tools unixodbc-dev
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
A 16. ábrán látható ezeknek az utasításoknak a végrehajtása.
16. ábra Az sqlcmd telepítésének részlete
Indítsuk most el az sqlcmd-t. Látható, hogy -szerintünk- bonyolult, szokatlan ennek az alkalmazásnak a használata (17. ábra).
17. ábra Az sqlcmd használata
Telepítsük most az "mssql_cli"-t, amelynek a használata véleményünk szerint kényelmesebb. Ehhez telepíteni kell a "pip"-et. Ubuntu 20.04-nél nem olyan egyszerű, ezért használjuk a "get-pip.py" file-t, ezért ezt le kell töltenünk. Használjuk ehhez a következő parancsot.
wget https://bootstrap.pypa.io/get-pip.py
A sikeres letöltést láthatjuk a 18. ábrán.
18. ábra A "get-pip.py" file letöltése
Ezután tudjuk ennek a file-nak a segítségével a "pip"-et telepíteni, futtassuk a következő utasítást.
python get-pip.py
A sikeres telepítés után a "pip" már alkalmazható (19. ábra). Ez kell nekünk, hogy a mssql_cli programot telepíteni tudjuk.
19. ábra A pip telepítése
Az mssql_cli telepítéséhez a következő parancs kiadása szükséges.
pip install mssql-cli
A telepítés menetét látjuk a 20. ábrán.
20. ábra Az mssql-cli telepítése
A sikeres telepítés után már el tudjuk indítani ezt az alkalmazást. Célszerű a "-d" kapcsolóval megnevezni azt az adatbázist, amelyen különböző műveleteket szeretnénk végrehajtani. Ezt most mi nem fogjuk megtenni, hiszen még nincs saját készítésű adatbázisunk. A "-S" kapcsolóval a szerver elérést adhatjuk meg a "-U" segítségével adhatjuk meg a felhasználó nevét, a "-P"-vel pedig a jelszót.
Adjuk ki a következő utasítást.
mssql-cli -S localhost -U SA
A default felhasználóval (SA) indítjuk el ezt az alkalmazást. majd a kérdőjellel kérünk segítséget, ezzel listázzuk ki a kiadható parancsok listáját (21. ábra).
21. ábra Az mssql-cli használata
Adjuk ki az "ld" parancsot, és megjelenítjük az adatbázisokat (22. ábra).
22. ábra Az MSSql szerveren lévő adatbázisok
Ezzel be is fejeztük az Ubuntu 20.04-re a különböző telepítéseket. A következő cikkben beállítjuk az Nginx-et úgy, hogy több domain "kiszolgálására" is képes legyen, illetve egy egyszerű alkalmazást is kipublikálunk erre a tárhelyre.
A Microsoft által kínált .NET Core nagy népszerűségnek örvend, hiszen ennek a segítségével már nem csak Microsoft operációs rendszer alatt tudjuk futtatni az alkalmazásainkat, hanem akár Linux rendszeren is. Ehhez azonban a Linux operációs rendszerü. . . .
Ebben a cikkben megnézzük az Ubuntu 20.04-re azoknak a programoknak, szolgáltatásoknak a telepítését, amelyek szükségesek ahhoz, hogy az ASP.NET Core alkalmazások futtathatók legyenek ezen a disztribúción. Ezért telepíteni fogjuk most a keretkörnyeze. . . .
A Microsoft által kínált .NET Core nagy népszerűségnek örvend, hiszen ennek a segítségével már nem csak Microsoft operációs rendszer alatt tudjuk futtatni az alkalmazásainkat, hanem akár Linux rendszeren is. Ehhez azonban a Linux operációs rendszerü. . . .