Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver v1.0 telepítése

botond küldte be 2020. 10. 21., sze – 18:33 időpontban

Tartalom

 

Bevezető

LAMP rendszerek segítségével futtathatunk dinamikus weboldalakat szerverünkön, vagy akár otthoni gépünkön is. Korábban már készítettem LAMP szervereket Debian 8 (Jessie)Debian 9 (Stretch) és Ubuntu 18.04 LTS (Bionic Beaver) rendszerekre is, ebben a leírásban pedig az Ubuntu 20.04 LTS (Focal Fossa) Linux disztribúciójára fogjuk feltelepíteni a LAMP szerver részeit, amely az alábbiakból áll:

(A feltűntetett verziószámok a leírás készítésének idején lévő állapotot tükrözik, ez később változhatnak)

Ezt az Ubuntu 20.04 LTS (Focal Fossa) LAMP telepítést 1.0-ás verziószámmal jelölöm meg, mert a későbbiekben még sok egyéb kiegészítővel fogjuk bővíteni, hogy még hasznosabbá és hatékonyabbá tehessük.

Ezt a LAMP szervert úgy állítjuk össze, hogy alkalmas legyen arra, hogy később erre építsük a tökéletes szervereknek ezt a vonalát (Ubuntu 20.04). Ezáltal ez a LAMP rendszer újrahasználható lesz, mivel a tökéletes szervernek is tartalmaznia kell ezeket a részeket. Ennél fogva nem kell előröl kezdeni a tökéletes szerver telepítését is, hanem innen folytathatjuk. Így tehát fontos, hogy az itt leírtakat pontosan végezzük, hogy a későbbi tökéletes szerver telepítésénél ne adódhassanak problémák.

 

 

Alapfeltétel

A leírás elkészítéséhez szükség van a Ubuntu 20.04 LTS (Focal Fossa) minimális szerver feltelepítésére vagy az elkészített szerver letöltésére, mert ezt a LAMP szervert erre fogjuk építeni.
Természetesen feltelepíthető grafikus környezettel rendelkező asztali használatú számítógépre is, a lényeg, hogy a fenti összetevők most kerüljenek fel először a gépre a megfelelő konfiguráció és működés érdekében.

 

Rendszer frissítése

Először frissítsük csomagtár adatbázisunkat és a csomagjainkat, hogy mindig a legfrissebb csomagokkal dolgozhassunk. Ehhez adjuk ki az alábbi apt-get parancsokat root-ként:

apt update
apt upgrade

A továbbiakban maradjunk root-ként, és így folytassuk a telepítést.

 

Apache web szerver telepítése

Az Apache webkiszolgáló telepítéséhez futtassuk az alábbi parancsot root-ként:

apt install -y apache2 apache2-utils

Miután lefutott a telepítő, tesztelhetjük is, ha a böngészőben a minimális szerver telepítésekor beállított IP-címet vagy hosztnevet töltjük be. Nálam az ubuntu20.linuxportal.vm hosztnév van beállítva tehát nálam a következő lesz:

http://ubuntu20.linuxportal.vm/

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - Apache ellenőrzése

 

PHP 7.4 telepítése

Az Ubuntu 20.04 LTS (Focal Fossa) operációs rendszeren az alapértelmezett PHP ág a 7.4. Ennek a legfrissebb hivatalos kiadása jelenleg (a cikk írásának idején) a 7.4.11.

A PHP teljesen alap, Apache modulként (mod-php) futó telepítését a következő paranccsal végezhetjük:

apt-get -y install \
    php7.4 \
    libapache2-mod-php7.4 \
    php7.4-mysql

Ezután ellenőrizzük az alábbi paranccsal:

php --version
PHP 7.4.3 (cli) (built: Oct  6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
Itt a parancssori (CLI) PHP ad nekünk információt a most telepített változatról. Könnyen észrevehető, hogy nem a fentebb jelzett legfrissebb verzió került fel, hanem kicsivel régebbi. Ezzel nem kell foglalkoznunk, egy kis idő (néhány hét, stb) mindig eltelik, amíg a legfrissebb PHP verzió bekerül az Ubuntu csomagtárába.

További PHP csomagok telepítése

Az imént telepített PHP rendszerünk még nagyon alap, ezért ha később ebből egy komolyabb, ISPConfig-os szerverkörnyezetet szeretnénk összeállítani, akkor további PHP csomagok telepítése is szükséges.

Az alábbi apt-cache parancs segítségével kereshetünk rá a disztribúcióban elérhető PHP 7.4-es csomagokra:

apt-cache search php7.4

Itt elég sok csomagot találhatunk a 7.4-es PHP-hez, de ezekből általában nincs mindre szükségünk. Alább összeállítottam egy válogatást, amiket ajánlott telepíteni az általános esetekre is, de ha később tervezzük a tökéletes szerver építését ebből a LAMP rendszerből, akkor pedig mindenképpen telepítsük ezeket:

apt-get -y install \
    php-apcu \
    php-imagick \
    php-memcache \
    php-pear \
    php-yaml \
    php7.4-bcmath \
    php7.4-bz2 \
    php7.4-cgi \
    php7.4-cli \
    php7.4-common \
    php7.4-curl \
    php7.4-fpm \
    php7.4-gd \
    php7.4-imap \
    php7.4-intl \
    php7.4-json \
    php7.4-mbstring \
    php7.4-opcache \
    php7.4-pspell \
    php7.4-soap \
    php7.4-sqlite3 \
    php7.4-tidy \
    php7.4-xml \
    php7.4-xmlrpc \
    php7.4-xsl \
    php7.4-zip
Ha módosítjuk ezt a többsoros telepítőparancsot, akkor ügyeljünk rá, hogy a sorok végén lévő "\" karakterek után már ne kerüljön oda semmi, még szóköz se. Valamint az utolsó sor végére nem kell a "\" jel. A behúzások nem kötelezők, csak esztétikai szerepük van. Erre a célra csak szóközöket használjunk. Tabulátor esetén elindul a parancssori kiegészítés, így nem fut le a parancsunk.

Ezek közül némelyik már felkerülhetett az alap PHP csomagok függőségeiként, de azért bent hagyom, így biztosan telepítésre kerülnek. Természetesen szükség esetén később még bármikor telepíthetők hozzá további kiegészítők, amennyiben a helyzet megkívánja.

A korábbi PHP változatokban lévő Recode kiterjesztés a 7.4 ágban már nem érhető el, hanem csak C forráskódból fordítható, mert elavulttá nyilvánították. Ha kompatibilitási okok miatt mégis szükségünk lenne rá, akkor erről egy másik leírásban (hamarosan) tájékozódhatunk.

A csomagok telepítése után indítsuk újra az Apache-ot:

systemctl restart apache2

PHP tesztelése

 

 

PHP rendszerünk működését teszteljük az alábbi módon: hozzunk létre egy fájlt a webgyökér könyvtárban:

nano /var/www/html/phpinfo.php
1
2
3
<?php
phpinfo();
?>

Mentsük le, majd töltsük be a böngészőbe a megfelelő IP-címen vagy hosztnéven ezt a fájlt:

http://ubuntu20.linuxportal.vm/phpinfo.php

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - PHP tesztelése

Ha itt lejjebb görgetünk, akkor láthatjuk az összes betöltött PHP modult, és azoknak a beállításait is.

Ha valamit állítanunk kell a php.ini-ben, azt pedig itt találjuk: /etc/php/7.4/apache2/php.ini. Módosítás után mindig indítsuk újra az Apache-ot.

 

MariaDB telepítése

A MariaDB a MySQL magas kompatibilitású helyettesítője. A MySQL csapat korábbi tagjai fejlesztették ki, akik aggódnak amiatt, hogy az Oracle a MySQL-t zárt forráskódú termékké alakíthatja.

Az Ubuntu 20.04 LTS (Focal Fossa) kiadásában rendelkezésünkre áll mindkét adatbázis szerver, a MySQL és a MariaDB is. Az Ubuntu hivatalos csomagtárában a MySQL-ből a 8.0.21-es változat érhető el, a MariaDB-ből pedig a 10.3.22-es verzió. A MySQL esetében ez nagy váltást jelent, mert az Ubuntu 18.04 LTS (Bionic Beaver) kiadásában még csak a MySQL 5.7.31-es verzió volt elérhető. Így tehát most szoros a "verseny" a két adatbázis szerver között, mivel mindkettőből hasonlóan friss verziójú csomag érhető már el, nem úgy, mint a korábbi Ubuntuban. Így tehát mindenkinek a saját döntése, hogy melyiket telepíti fel.

Én nem kívánok rábeszélni senkit semelyikre, viszont mivel nálam a Debian 10-es szerveremen már egy jó ideje a MariaDB működik – mert a Debian 9 (Stretch) óta "átterelték" a felhasználókat a MariaDB használatára –, így nekem is ezt kellett anno telepítenem, de nem volt még vele semmi gondom. Több weboldal is hibátlanul működik rajta, többek között ez a robosztus, Drupal CMS rendszerű oldal is. Így tehát most ebben a leírásban is a MariaDB telepítésével fogok továbbhaladni.

Természetesen, akik jobban szeretnék a MySQL-t használni, ők itt a második parancsot futtassák.

Először tehát a MariaDB telepítéséhez szükséges parancs:

apt-get -y install mariadb-server mariadb-client

És akik a MySQL-t szeretnék telepíteni, azok az előző parancs helyett futtassák az alábbit:

apt-get -y install mysql-server mysql-client
A MySQL választása esetén lesznek a MariaDB-től eltérő kérdések és beállítási lehetőségek a következő lépésnél. Én itt most a MariaDB telepítésével folytatom ennek a LAMP szervernek a telepítését, a MySQL-el történő beállításokra nem térek ki.

Adatbázis biztonságossá tétele

Egyetlen paranccsal elvégezhetjük az adatbázis szerverünk és adatbázisaink biztonságossá tételét, ami néhány lépésből áll. A mysql_secure_installation parancs végigvezet bennünket a szükséges lépéseken:

mysql_secure_installation

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - Adatbázis biztonságossá tétele

A parancs futtatásakor ez a szöveg fogad bennünket. A program feltesz nekünk néhány kérdést, amire válaszokat kell adnunk:

Enter current password for root (enter for none): [Enter]
Set root password? [Y/n] y
New password: Adjuk meg az új adatbázis root jelszót
Re-enter new password: Ismételjük meg
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

A teljes kimenet pedig:

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - Adatbázis biztonságossá téve

Ezekről a kérdésekről és válaszokról már írtam részletesebben a korábban elkészített Debian 9 (Stretch) LAMP szerver telepítésekor, így ott tájékozódhatunk bővebben.

Root felhasználó beállítása

 

 

A MariaDB-ben (a Debian rendszerekben a 9 es verziótól felfelé, az Ubuntu rendszerekben pedig a 15.10-es verziótól felfele a friss telepítésekben), illetve a MySQL-ben az 5.7-es verziójától kezdődően (itt a disztribúciótól függetlenül) mindkét adatbázis kiszolgáló úgy van beállítva, hogy a root felhasználók alapból nem a natív jelszó (mysql_native_password) segítségével hitelesítik a belépést, hanem az Unix socket (unix_socket) használatával. Ez lehetővé teszi, hogy pl a Linux root felhasználójával egyszerűen beléphessünk root-ként a jelszó megadása nélkül, mivel beazonosítja a socket-en keresztül az aktuális Linux felhasználót:

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - Adatbázis root belépés az unix_socket segítségével

Ez egyfelől nagyobb biztonságot ad, mivel az adatbázisba a root felhasználóval csak a Linux root felhasználójával lehetséges a belépés, és ugyanígy a többi adatbázis felhasználók fiókjaiba is csak párhuzamosan az azonos nevű Linux felhasználókkal (a Linux root felhasználóval természetesen be lehet lépni a többi adatbázis felhasználójával is, ha paraméterként megadjuk neki a cél felhasználót és jelszavát). Így például hiába is tudjuk az adatbázis root felhasználójának a jelszavát, másik nevű Linux felhasználóval nem tudunk belépni vele. További előnye, hogy nem fenyeget az a kellemetlenség, hogy elfelejtjük az adatbázis root jelszavát.

A másik oldalról ez sokszor meg is nehezíti a dolgunkat, mert például a phpMyAdmin-ba sem tudunk emiatt belépni root-ként, mivel a webes felületek általában a www-data Linux felhasználó nevében futnak (amennyiben a PHP-t az Apache modulként futtatjuk), vagy egyéb felhasználókként is futhatnak (például ha PHP-FPM pool-okban futtatjuk az adott webes felületet), amikről nem lehetséges a root belépés. Ennek orvoslására kétféle megoldás is kínálkozik:

Alternatív adminisztrációs adatbázis felhasználó létrehozása

Az első megoldás az, ha létrehozunk egy alternatív adminisztrációs adatbázis felhasználót, aminek minden jogosultságot megadunk, és jelszóalapú hitelesítést állítunk be, azaz adunk neki egy jelszót. Ez akkor fontos, ha például éles környezetben használjuk a szervert, ami a külvilág felől is hozzáférhető, így ilyenkor javasolt a nagyobb fokú biztonság. Ezzel nem adunk esélyt annak, hogy kívülről beléphessenek a root felhasználónkkal a phpMyAdmin rendszerbe, mi viszont egy másik felhasználóval ugyanúgy be tudunk lépni. Hátrányként előfordulhatnak olyan helyzetek, ahol fixen a root felhasználóra lenne szükségünk másik Linux felhasználóval. Akkor használjuk ezt a megoldást, ha a biztonság a fontosabb szempont a kompatibilitással szemben.

Ehhez lépjünk be az SQL parancssorába a mysql paranccsal (továbbra is root-ként):

mysql

Ilyenkor tehát az adatbázis kiszolgálón is automatikusan root-ként lépünk be. Hozzunk létre egy adminisztrációs felhasználót minden jogosultsággal. Én csak a példa kedvéért hozom létre admin névvel a felhasználót, azonban célszerű olyan felhasználónevet választani, ami nem utal a szerepkörére, és nehezebb kitalálni. A password helyén pedig adjuk meg a saját tetszőleges jelszavunkat. Az SQL parancsunk tehát a következő:

GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Itt Az IDENTIFIED BY '****' rész gondoskodik arról, hogy jelszó alapú hitelesítéssel kérjük az felhasználónkat.

Ezután ürítsük a jogosultságok gyorsítótárát és lépjünk ki:

FLUSH PRIVILEGES;
exit

Innentől már be tudunk lépni az új admin adatbázis felhasználónkkal a jelszó segítségével akár nem root Linux felhasználóval is:

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - Belépés az alternatív adminisztrációs adatbázis felhasználóval

Ha ezt a megoldást választjuk, és később szeretnénk ebből a szerverből egy ISPConfig-os "tökéletes" szerverkörnyezetet építeni, akkor majd az ISPConfig telepítésénél ügyeljünk, hogy ezt a felhasználót kell majd megadni, a root helyett amikor a telepítő a MySQL root felhasználót és jelszavát kéri be tőlünk, hogy a kontroll panel el tudja végezni a szükséges adminisztrációs feladatokat az adatbázisban. De erre majd az ISPConfig telepítésénél is felhívom a figyelmet a másik leírásban.

A root felhasználó hitelesítési módjának beállítása

A másik lehetőség az, hogy a root felhasználónál átállítjuk a Unix socket alapú hitelesítést natív jelszó alapú hitelesítésre. Ez kevésbé biztonságos megoldás, mert így kitehetjük szerverünket annak, hogy például a phpMyAdmin-ba kívülről be tudjanak lépni root felhasználóval, vagy például egy kevésbé biztonságos webes alkalmazáson keresztül próbálkozhassanak a root belépéssel. Persze egy megfelelően erős root jelszó használatával erre gyakorlatilag nulla az esély, de a lehetőség a root belépésre adott. Cserében csökkentjük a komplikációs lehetőségeket, mert előfordulhatnak olyan helyzetek ahol fixen a root hozzáférésre lenne szükségünk másik felhasználóval. Akkor válasszuk ezt a megoldást, ahol inkább a kompatibilitás a fontosabb szempont a biztonsággal szemben.

Ennek beállításához lépjünk be az adatbázis szerverre:

mysql

Végezzük el a beállítást a root felhasználó rekordján, töröljük a jogosultságok gyorsítótárát és lépjünk ki:

UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';
FLUSH PRIVILEGES;
exit

Itt egy képen látszik a dolog működése:

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - Adatbázis root felhasználó hitelesítési módjának beállítása

Az első belépésnél még nem kellett megadni se felhasználónevet, se jelszót – mint ahogy korábban sem. Majd miután beállítottuk a jelszó alapú hitelesítési módot, utána már nem engedett vissza az alap mysql paranccsal, mondván, hogy nem használtunk jelszót. Ezután pedig csak a paraméterben megadott root felhasználóval, és a bemenetről bekért jelszóval engedett be.

Ezután még próbaképpen ha kilépünk a root felhasználóból, akkor már a sima felhasználóból is ugyanúgy be tudunk lépni a root adatbázis felhasználóval:

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - Adatbázis root felhasználó kipróbálása sima Linux felhasználóval

Tehát pontosan úgy működik, ahogyan kell.

Defaults fájl beállítása (opcionális)

 

 

Natív jelszó alapú hitelesítés esetén a defaults fájlok használatával biztonságosabbá tehetjük az adatbázisainkkal folytatott munkát, mert nem kell begépelni, sem a parancssorban megadni az adatbázis felhasználóinkhoz megadott jelszavakat a terminálba, hanem helyette egy biztonságos fájlban tároljuk a felhasználó jelszavát. Ennek köszönhetően könnyen és biztonságosan készíthetünk különböző adatbázis-mentő és egyéb karbantartó, automatizáló szkripteket, mert ezekben sem kell jelszavakat tárolnunk. További előnye, hogy ha véletlenül elfelejtenénk a jelszót, akkor ebben a biztonságos fájlban mégis csak le van írva.

A cnf fájlok lényege, hogy olyan jogosultságok vannak rajta beállítva, hogy csak a root – illetve egyéb felhasználó esetén a tulajdonos is – tudja olvasni (600). Ezáltal bekerülhetnek szkriptekbe, vagy akár a parancssori előzményekben is megjelenhetnek, nem fogja tudni olvasni gazdáján és a root-on kívül senki.

Korábban már készítettem erről egy leírást, hogy hogyan tehetjük biztonságossá a parancssori adatbázis használatot a defaults fájlok segítségével, és most itt is alkalmazzuk ezt a megoldást.

Itt attól függően, hogy az előző lépésben melyik opciót választottuk, annak függvényében hajtsuk végre a következő részeket továbbra is root-ként:

Saját cnf fájl használata

Ha fentebb az "Alternatív adminisztrációs adatbázis felhasználó létrehozása" opciót hajtottuk végre, akkor a root felhasználóhoz "gyárilag" létrehozott .cnf fájlt semmiképpen se módosítsuk, mivel ebben az opcióban nem változtattunk a root felhasználó beállításain sem. Helyette másoljuk le a /etc/mysql/debian.cnf fájlt egy saját fájlba:

cp /etc/mysql/debian.cnf /etc/mysql/admin.cnf

Itt is természetesen használjuk az admin név helyett a fentebb létrehozott alternatív adminisztrációs felhasználónk nevét a másolat fájlnevében, így később is tudni fogjuk, hogy mihez tartozik. Valamint a fájl helye is teljesen mindegy, akárhova tehetjük, ahol jobban kézre áll.

Ezután nyissuk meg szerkesztésre a másolatunkat:

nano /etc/mysql/admin.cnf

Ez alapból így néz ki:

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = root
password = 
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = root
password = 
socket   = /var/run/mysqld/mysqld.sock

Ebben a beállításban alapból a kliens, azaz a mysql/mariadb parancs számára biztosít hozzáférési adatokat, valamint a frissítő scriptekhez.

Ezt módosítsuk, valamint bővítsük még további két szekcióval, hogy végül így nézzen ki:

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = admin
password = 'saját jelszavunk'
#socket   = /var/run/mysqld/mysqld.sock

[mysql_upgrade]
host     = localhost
user     = admin
password = 'saját jelszavunk'
#socket   = /var/run/mysqld/mysqld.sock

[mysqldump]
host     = localhost
user     = admin
password = 'saját jelszavunk'
#socket   = /var/run/mysqld/mysqld.sock

[mysqlcheck]
host     = localhost
user     = admin
password = 'saját jelszavunk'
#socket   = /var/run/mysqld/mysqld.sock

Itt módosítsuk a root felhasználókat a saját alternatív adminisztrációs adatbázis felhasználónkra. A jelszavakat sima aposztrófok között adjuk meg, így működnek a szóközök és sok speciális karakter is a jelszavakban. Végül a két új szekcióban pedig a mysqldump és a mysqlcheck parancsok számára is beállítjuk a hozzáférést. A mysqldump segítségével készíthetünk adatbázis dump-okat, a mysqlcheck paranccsal pedig ellenőrizhetjük a megadott adatbázis tábláinak állapotát, stb. Végül a socket részeket kikommentezhetjük, mert úgy is jelszó alapú hitelesítés történik, tehát nincs hatásuk.

Az eredeti debian.cnf fájl használata

Ha fentebb a "A root felhasználó hitelesítési módjának beállítása" opciót hajtottuk végre, akkor megváltoztattuk a root felhasználó beállításait, ezért a "gyári" /etc/mysql/debian.cnf fájlt kell módosítanunk. Nyissuk meg szerkesztésre a fájlt:

/etc/mysql/debian.cnf

Itt most nem írom le még egyszer ugyanazokat, tehát ezt is módosítsuk a fenti mintájára, annyi különbséggel, hogy itt maradjanak a root felhasználók mindegyik szekciónál, tehát ezeket itt ne írjuk át.

A cnf fájl kipróbálása

Végül kipróbálhatjuk a cnf fájlunk működését. Ebben a példában én az alternatív adminisztrációs adatbázis felhasználóm cnf fájljával lépek be:

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - Belépés az adatbázis kiszolgálóra a defaults fájl segítségével

A defaults fájloknak tehát csak akkor van jelentősége, ha natív jelszó alapú hitelesítést használunk az adott felhasználóval. Ellenkező esetben a belépés Unix socket segítségével történik.

 

phpMyAdmin telepítése

A phpMyAdmin segítségével a böngészőből kényelmesen tudjuk kezelni adatbázisainkat, és az azokhoz kapcsolódó felhasználóinkat, stb. Telepítéséhez futtassuk az alábbi parancsot:

apt-get install phpmyadmin

A telepítés közben válaszolnunk kell néhány kérdésre. Az elsőnél megkérdi, hogy melyik HTTP kiszolgálót szeretnénk használni:

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - phpMyAdmin telepítése - Web szerver kiválasztása

Itt válasszuk az apache2 opciót, majd lépjünk tovább.

A phpMyAdmin működéséhez szüksége van egy saját adatbázisra, szeretnénk-e hogy beállítsa-e automatikusan ezt nekünk a dbconfig-common segítségével:

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - phpMyAdmin telepítése - Beállítás a dbconfig-common segítségével

Itt válasszunk igen-t.

 

 

Ezután kér még egy jelszót, amivel a phpMyAdmin kontroll felhasználója fog dolgozni:

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - phpMyAdmin telepítése - Kontroll felhasználó beállítása

Ezzel a felhasználóval a phpMyAdmin a háttér karbantartást, struktúra szinkronizációkat, stb végzi, tehát nekünk nem lesz vele dolgunk. Így nyomjunk erre egy entert, hogy generáljon magának egy saját jelszót.

Ezzel készen is van a telepítés.

phpMyAdmin tesztelése

A szerverünk IP-címével, vagy beállított hosztnevével, töltsük be a phpMyAdmin-t a böngészőbe:

http://ubuntu20.linuxportal.vm/phpmyadmin/

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - phpMyAdmin belépés

Itt adjuk meg a megfelelő felhasználót és jelszavát: Ha korábban alternatív adminisztrációs adatbázis felhasználót állítottunk be, akkor azt adjuk meg, ha pedig a root felhasználó hitelesítési módját állítottuk natív jelszavas hitelesítésre, akkor pedig a root felhasználóval léphetünk be. Én itt az alternatív admin felhasználómmal lépek be:

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - A phpMyAdmin főoldala

 

UFW tűzfal beállítása

LAMP szerverünk utolsó részeként még állítsuk be az UFW tűzfalat is.

Az UFW tűzfal egy könnyen kezelhető tűzfal, amivel kényelmesen levédhetjük rendszerünket. Alapértelmezetten inaktív állapotban van, amit nekünk kell aktiválni. Előtte azonban be kell állítanunk a megfelelő bejövő kapcsolatok szabályait.

Root-ként maradva futtassuk az ufw parancsot az alábbi paraméterekkel:

ufw app list

A parancs kilistázza a rendelkezésre álló UFW alkalmazás profilokat. A jelenlegi telepítésünknél ez így néz ki:

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - UFW tűzfal alkalmazás profilok listája

Ezek a következők:

  • Apache: Ez a profil csak a 80-as portot nyitja meg (normál, titkosítatlan internetes forgalom, HTTP protokoll).
  • Apache Full: Ez a profil megnyitja mind a 80-as (normál, titkosítatlan internetes forgalom, HTTP protokoll), mind a 443-as portot (TLS / SSL titkosított forgalom, HTTPS protokoll).
  • Apache Secure: Ez a profil pedig csak a 443-as portot nyitja meg a titkosított forgalom számára
  • OpenSSH: Ez pedig az SSH kapcsolatokat engedélyezi.

Ezek közül tehát szükségünk lesz első körben az OpenSSH profilra, hogy ne szakadjon meg az SSH kapcsolatunk a szerverrel, és engedélyezzük még az Apache Full profilt is, így később HTTPS-en keresztül is elérhetjük a weboldalakat pl ha később ISPConfig kezelőpanelt telepítünk fel.

A profilok engedélyezéséhez futtassuk az alábbi parancsokat:

ufw allow in "OpenSSH"
ufw allow in "Apache Full"

Ezután engedélyezzük a tűzfalat:

ufw enable

Ekkor figyelmeztet, hogy a művelet megszakíthatja az aktuális SSH kapcsolatot, folytatjuk-e? Nyomjunk y-t.

Nyilván nem szakítja meg, mert engedélyeztük az előbb az OpenSSH-t is.

Végül lekérdezhetjük az UFW tűzfal állapotát:

ufw status

Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver telepítése - UFW tűzfal beállítása

Itt a v6-os jelzések az IPv6 protokollra utalnak, tehát ha IPv6-os hálózaton működik a szerverünk, akkor azon is beállította a kért profilokat.

Az UFW tűzfal részletesebb beállításairól és használatáról itt tájékozódhatunk.

 

Virtuális gép letöltése

A virtuális gép elérhető a letöltőoldalán:
Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver v1.0 letöltése

 

 

Konklúzió

Ez lenne tehát egy Ubuntu 20.04 LTS (Focal Fossa) alapú LAMP szerver, amin futtathatjuk dinamikus weboldalainkat, CMS rendszereinket és egyéb webalkalmazásainkat.

Sok LAMP telepítő leírással lehet találkozni a neten, ezért igyekeztem ennél a telepítésnél is részletesebben kidolgozni, hogy ne csak a sablon telepítőparancsokat kínáljam nektek, hanem további hasznos információkkal is szolgálhassak. Remélem hasznosnak találjátok.

 

Hogyan tovább?

Ha elkészült a LAMP szerver, érdemes rá újabb PHP verziókat is telepíteni:

Az Ubuntu 20.04 LTS (Focal Fossa) vonalán egyelőre még nincs erre épülő tökéletes szerver telepítő leírás, így addig ajánlom tanulmányozásra az eddig elkészített Debian alapú tökéletes szervereket, valamint a lenti kapcsolódó linkeket: