Ubuntu 18.04 LTS (Bionic Beaver) LAMP szerver v1.0 telepítése

botond küldte be 2019. 08. 06., k – 16:55 időpontban

Tartalom

 

Bevezető

A LAMP rendszerek segítségével kiváló fejlesztői, vagy tesztkörnyezetet alakíthatunk ki otthoni számítógépünkön is. Korábban már készítettem LAMP szervert Debian 8 (Jessie) illetve Debian 9 (Stretch) rendszerekre is, ebben a leírásban pedig az Ubuntu 18.04 LTS (Bionic Beaver) Linux disztribúciójára fogjuk feltelepíteni a LAMP szerver elemeit, amely az alábbiakból áll:

Ha komolyabb, összetettebb rendszert szeretnénk építeni, akkor az eddig elkészített szerverek közül tudom ajánlani a Debian 9 (Stretch) tökéletes szervert, ami már éles helyzetben is kiválóan megállja a helyét, mint osztott tárhelyes webszolgáltatás. Idővel majd Ubuntura is elkészítem a hasonló változatot.

Ezt az Ubuntu 18.04 LTS (Bionic Beaver) 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.

Frissítés (2020-10-21):
A LAMP szerver telepítő leírása elkészült az újabb Ubuntu 20.04 LTS (Focal Fossal) rendszerre is:
Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver v1.0 telepítése

 

 

Alapfeltétel

A leírás elkészítéséhez szükség van a Ubuntu 18.04 LTS (Bionic Beaver) 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-get update
apt-get -y upgrade

 

MariaDB telepítése

Ubuntuban lehetőségünk van feltelepíteni a MySQL 5.7-es verzióját vagy a MariaDB 10.1.40-es változatát. Én az utóbbit javaslom, mivel a Debian alapú disztribúciók is egyre inkább a MariaDB irányába orientálódnak. A Debian 9 (Stretch)-től például már csak a MariaDB telepíthető fel a hivatalos csomagtárból (a mysql nevű metacsomagok is már csak a MariaDB binárisokra hivatkoznak).

A MariaDB adatbázis kiszolgáló telepítéséhez (root-ként maradva) futtassuk az alábbi parancsot:

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

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 ezeken a lépéseken:

mysql_secure_installation

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 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
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 belépés tesztelése

Az iménti root jelszó beállításának sikerességéről az alábbi MySQL/MariaDB beléptető parancs segítségével győződhetünk meg:

mysql -u root -p

Ezután gépeljük be a fent megadott root jelszót. Ha minden jól ment, akkor ilyen kimenetet kell kapnunk:

MariaDB root belépés tesztelése

A konzol parancsokról itt olvashatunk bővebben. A kilépéshez gépeljük be az exit vagy a \q parancsok valamelyikét.

 

Apache web szerver telepítése

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

apt-get -y install apache2

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 töltjük be. Én a 192.168.1.125-ös IP-címet adtam meg a telepítéskor, tehát nálam a következő lesz:

http://192.168.1.125/

Amire bejön az Apache Ubuntu alapértelmezett oldala:

Apache Ubuntu alapértelmezett oldala

 

 

PHP 7.2 telepítése

Az Ubuntu 18.04 LTS (Bionic Beaver) operációs rendszeren az alapértelmezett PHP ág a 7.2. Ennek a legfrissebb hivatalos kiadása jelenleg (a cikk írásának idején: 2019-08-06) a 7.2.21.

Ennél léteznek még újabb PHP ágak is, amiket ennek a disztribúciónak a hivatalos csomagtárai nem tartalmaznak, így ezeknek a telepítésére most nem térünk ki. Az újabb PHP verzióknak az egyedi, opcionális telepítését majd későbbi leírásokban fogjuk átnézni.

A PHP Apache modulként (mod-php) történő telepítését a következő paranccsal végezhetjük:

apt-get -y install php7.2 libapache2-mod-php7.2

Ezután ha ellenőrizzük a verziót:

php --version

akkor viszont még csak a 7.2.19-es verziót látjuk a gépünkön:

PHP 7.2.19-0ubuntu0.18.04.1 (cli) (built: Jun  4 2019 14:48:12) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.19-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies
Mindez azért van, mert a PHP fentebb is említett 7.2.21-es változata még frissebb, mint ami az Ubuntu csomagtáraiban található. Ami jelenleg a csomagtárban van (7.2.19), azt a PHP 2019. május 30-án adta ki, majd az Ubuntuban június 4-én került lefordításra, csomagolásra.
Egy ennél későbbi időpontban történő telepítéskor már esélyes, hogy valamelyik újabb verzió fog felkerülni.

További PHP csomagok telepítése

Az imént telepített PHP rendszerünk még nagyon alap, ezért további PHP csomagok telepítése szükséges.

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

apt-cache search php7.2

Itt elég sokat ad ki, ezekből általában nincs mindre szükségünk. Alább összeállítottam egy válogatást, amiket célszerű telepíteni, hogy a legtöbb helyzetben működőképes rendszerünk legyen:

apt-get -y install \
    php-pear \
    php-imagick \
    php-apcu \
    php-memcache \
    php-gettext \
    php7.2-mysql \
    php7.2-curl \
    php7.2-gd \
    php7.2-intl \
    php7.2-imap \
    php7.2-pspell \
    php7.2-recode \
    php7.2-sqlite3 \
    php7.2-tidy \
    php7.2-xmlrpc \
    php7.2-xsl \
    php7.2-xml \
    php7.2-zip \
    php7.2-mbstring \
    php7.2-opcache

Természetesen szükség esetén később még bármikor telepíthetők hozzá további kiegészítők.

A Korábbi PHP verziókban használt php7.x-mcrypt csomagot itt ne keressük, mert a PHP 7.1-es ágában elavulttá nyilvánították, majd a 7.2-es ágból kivették a teljes mcrypt bővítményt. Így tehát a php7.2-mcrypt csomag ilyen formában már nem létezik. Ezért fontos, hogy az üzemeltetni kívánt weboldal esetében győződjünk meg arról, hogy nincs-e szüksége erre a bővítményre, akár csak függőségi szinten is. Amennyiben igen, kerülő megoldásokkal fogjuk tudni szóra bírni a webhelyet.
Néhány CMS rendszer is hiányolta (példa) egy időben ezt a bővítményt, azonban a legújabb kiadásokban már áttértek más megoldások használatára.

Ezután indítsuk újra az Apache-ot a systemctl-el:

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

És tegyük bele a következő tartalmat:

1
2
3
<?php
phpinfo();
?>

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

http://192.168.1.125/phpinfo.php

PHP tesztelése a phpinfo oldallal

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.2/apache2/php.ini

 

 

phpMyAdmin telepítése

Nem maradt más hátra a LAMP rendszerünkből, mint a phpMyAdmin telepítése. Aki nem ismerné, a phpMyAdmin az adatbáziskezelés elengedhetetlen kelléke, segítségével webes felületen kényelmesen kezelhetjük adatbázisainkat, tábláinkat, valamint a hozzájuk kapcsolódó felhasználókat és jogosultságaikat.

Telepítése a következő paranccsal történik:

apt-get -y install phpmyadmin

A telepítés közben feltesz néhány kérdést dialógusok formájában. Elsőként, hogy melyik HTTP kiszolgálót választjuk:

phpMyAdmin konfigurálása - Webkiszolgáló kiválasztása

Itt válasszuk az apache2 beállítást.

Hát, nem pont erre a színvilágra gondoltam, jobban tetszett a Debian-on megszokott kék dialógusos téma, de hát ez van. Legalább fél álomban sem keverem össze a Debiannal... :D

Leokézva megy tovább a telepítés, majd ismét előjön egy újabb megválaszolandó kérdés:

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 a dbconfig-common segítségével:

phpMyAdmin konfigurálása - Adatbázis automatikus beállítása 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:

phpMyAdmin konfigurálása - Jelszó bekérése a kontroll felhasználó számára

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.

Root belépés engedélyezése

Itt alapból – biztonsági okokból – nincs engedélye a root belépés a phpMyAdmin felületén, ezt nekünk kell kézzel beállítani. Ehhez hajtsuk végre az alábbi parancsot:

echo "UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';FLUSH PRIVILEGES;" | mysql -u root -p

Ekkor bekéri tőlünk a parancssor a MariaDB root jelszavát, adjuk meg.

Ezután már be tudunk lépni a root felhasználóval is a phpMyAdmin felületén, ami a megfelelő IP-címen érhető el:

http://192.168.1.125/phpmyadmin/index.php

phpMyAdmin - Belépés

(Itt is természetesen használja mindenki a minimális szerveren beállított saját fix IP-címét.)

Majd sikeres bejelentkezés után a jól ismert kezdőképernyő fogad bennünket:

phpMyAdmin - Kezdőképernyő

 

 

További biztonsági beállítások (opcionális)

Ha a későbbiekben tervezzük használni a parancssori adatbázis használatát, illetve shell scriptekből is szeretnénk kezelni adatbázisainkat, akkor erősen javaslom a parancsori adatbázishasználat biztonságossá tételét.

Ennek a lényege röviden, hogy egyszer beállítjuk egy defaults fájlba a szükséges felhasználónév-jelszó párost, majd beállítjuk a megfelelő jogosultságokat a fájlra. Ezután már csak erre a fájlra kell hivatkoznunk minden parancssori vagy script-beli adatbázis műveletnél, ahol ezáltal nem kerülnek megjelenésre a jelszavaink.

Ennek a beállítása pontosan megegyezik a Debian 9 (Stretch) LAMP szerveren lévő MariaDB-n elvégzett beállítással, így annak pontos végrehajtásával itt is biztonságosan kezelhetjük a parancssorból az adatbázisainkat.

 

Virtuális gép letöltése

Az elkészült Ubuntu 18.04 LTS (Bionic Beaver) LAMP szerver virtuális gép képfájlja megtalálható a letöltések között.

 

Konklúzió

Íme egy alap Ubuntu 18.04 LTS (Bionic Beaver) alapú LAMP szerver, amin futtathatók a PHP, MySQL/MariaDB alapú dinamikus weboldalak. A későbbiekben még bővíteni fogjuk ezt a szervert is, hogy több mindenre lehessen használni.