Tartalom
- oldal: MariaDB, Apache és PHP7.3 telepítése és beállítása
- oldal: phpMyAdmin kézi telepítése, bekonfigurálása és tesztelése
- oldal: PHP-FPM pool létrehozása és beállítása a phpMyAdmin számára (opcionális)
Az 1. oldal tartalma
Bevezető
A LAMP rendszerek segítségével dinamikus weboldalakat futtathatunk szerverünkön, vagy akár otthoni gépünkön. Ebben a leírásban a Debian 10 (Buster) operációs rendszerre készítünk el egy LAMP szervert, amely az alábbi összetevőkből fog állni:
- Apache (verziója a Debian 10-ben: 2.4.38)
- MariaDB (verziója a Debian 10-ben: 10.3.18)
- PHP (aktuális verziója a Debian 10-ben: 7.3)
- phpMyAdmin (aktuális verziója 2019. november 16-án: 4.9.1)
A phpMyAdmin sajnos nem része a Debian 10 (Buster) hivatalos csomagtárának, ezért ezt külön fogjuk telepíteni, viszont a többi komponenst a szokásos módon az APT csomagkezelő segítségével szerezzük be, amit később ugyanezzel frissíthetünk is.
Korábban már készültek LAMP szervereket telepítő leírások, ezek is hasznosak lehetnek:
- Ubuntu 18.04 LTS (Bionic Beaver) LAMP szerver v1.0 telepítése (2019. 08. 06)
- Debian 9 (Stretch) LAMP szerver v1.0 telepítése (2019. 06. 21)
- Debian 8 (Jessie) LAMP szerver v1.0 telepítése (2019. 02. 09)
Ezt a telepítést is az 1.0 verziószámmal neveztem el, így ha később kerülnek még rá kiegészítők (további verziókban), akkor pontosabban tudok hivatkozni az éppen szükséges LAMP változatra a megfelelő verziószám megjelölésével.
Elkészült a LAMP szerver Debian 11 (Bullseye) változata:
Alapfeltétel
Természetesen feltelepíthető akár grafikus környezettel rendelkező asztali használatú számítógépre is, a lényeg, hogy a LAMP rendszer összetevői 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
Minden nagyobb telepítési munkát célszerű a rendszer frissítésével kezdeni, hogy a folyamat során a legfrissebb csomagokkal dolgozhassunk. Ehhez lépjünk be root-ként, majd adjuk ki az alábbi apt-get parancsokat:
apt-get update
apt-get upgrade
MariaDB telepítése
A Debian 10 (Buster) rendszerben is a MariaDB adatbázis kiszolgáló az alapértelmezett, így egyszerűen telepíthetjük a csomagtárból:
apt-get -y install mariadb-server mariadb-client
Adatbázis biztonságossá tétele
Adatbázis szerverünket, és adatbázisainkat biztonságosabbá tehetjük, ha elvégzünk néhány beállítást. Ezeket a biztonsági beállításokat egyszerre elvégezhetjük a mysql_secure_installation parancs futtatásával:
mysql_secure_installation
A program feltesz nekünk néhány kérdést, amire válaszoljunk az alábbiak szerint:
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
Defaults fájl beállítása
A biztonság és az automatizálhatóság alapkövetelmények. A parancssori adatbázishasználat során szükségünk lehet az automatizált megoldásokra, amikor nem kell jelszavakat gépelnünk a terminálba, hanem szkriptekkel távollétünkben is elvégezhetők az adatbázisokkal kapcsolatos háttérfeladatok. Továbbá fontos szempont az is, hogy adatbázis jelszavaink ne jelenjenek meg sem a parancssori előzményekben, sem szkriptjeinkben, hogy ne kerülhessenek illetéktelen kezekbe. Erről már volt szó, hogyan tehetjük biztonságossá a parancssori adatbázis használatot a defaults fájlok segítségével, ennek megfelelően most beállítjuk ezt, hogy később már kényelmesen használhassuk például a mysql parancsot.
Root-ként maradva nyissuk meg szerkesztésre a /etc/mysql/debian.cnf fájlt:
nano /etc/mysql/debian.cnf
Ebben az alábbi tartalmat találjuk, amit egészítsünk ki a zölddel kiemelt részeknek megfelelően:
# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = root password = '<adatbázis root jelszavunk>' socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = root password = '<adatbázis root jelszavunk>' socket = /var/run/mysqld/mysqld.sock basedir = /usr
A két password sorban tehát szimpla aposztrófok között állítsuk be a fentebb megadott új root jelszavunkat. Az aposztrófok csak azért kellenek, ha a jelszó esetleg szóközöket, vagy egyéb speciális karaktereket tartalmaz, akkor azokkal is működni fog így.
Root belépés tesztelése
A beállítások elvégzése után pedig teszteljük a root belépést az adatbázis kiszolgálóba. Itt most háromféleképpen is belépünk, ezzel szemléltetve a különböző módok használhatóságát és biztonságosságát.
Hagyományos belépési mód, a root jelszó begépelésével
A belépéshez futtassuk az alábbi parancsot:
mysql -u root -p
Itt láthatjuk, hogy a rendszer bekéri tőlünk a jelszót, azután beléptet. Ez ugyan biztonságos, de így nem automatizálható pl. szkriptekből, mivel felhasználói interakcióra vár.
Hagyományos belépési mód, a jelszó parancssori megadásával
Beléphetünk úgy is, hogy előre megadjuk a jelszót:
mysql -u root -p<jelszavunk>
Itt fontos, hogy a -p kapcsolót közvetlenül kövesse a jelszó, tehát nem lehet a kapcsoló és a jelszó között szóköz!
Ezzel már lehet automatizálni, szkriptekben is szépen lefut, mert nem vár felhasználói beavatkozásra. Viszont egyáltalán nem biztonságos, mert ahogy a képen is látszik, kint van a jelszó. Ez megjelenik a parancssori előzményeket előhívó history parancs kimenetében is, valamint beletekintve szkriptjeinkbe, szintén látható.
Belépés a defaults fájl használatával
És végül az automatizálható és biztonságos belépés a defaults fájl használatával:
mysql --defaults-file=/etc/mysql/debian.cnf
Ennek eredménye pedig:
Itt tehát nincs sem felhasználói interakció, és a jelszó sem jelenik meg sehol. A gyári defaults fájl pedig a megfelelő jogosultságokkal van ellátva, amit csak a root olvashat (600). Ennek megfelelően, ha újabb defaults fájlt hozunk létre például másik felhasználó számára, gondoskodnunk kell a fájl ugyanilyen jogosultsági beállításáról, és így teljes marad a biztonság.
Az első két módszert csak a szemléltetés kedvéért alkalmaztuk, a LAMP szerver telepítésének további részeiben már csak a defaults fájlos megoldást használjuk.
Apache web szerver telepítése
Az Apache2 telepítéséhez futtassuk a következőt:
apt-get -y install apache2 apache2-doc apache2-utils
Az alapértelmezett webgyökér könyvtár a /var/www/html. Tehát alapból ez az egy virtualhoszt kerül beállításra telepítéskor, melynek a konfigurációs fájlja itt található: /etc/apache2/sites-enabled/000-default.conf
Ennek tartalma pedig:
cat /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Ha át szeretnénk állítani például a webgyökér könyvtárat, stb, akkor ebben a fájlban kell módosítani.
Az Apache2 fő konfigurációs fájlja pedig: /etc/apache2/apache2.conf.
Apache tesztelése
Az Apache működését a böngészőben tesztelhetjük, a szerver IP-címével (ennek a szervernek: 192.168.1.130):
PHP 7.3 telepítése
A Debian 10 (Buster) operációs rendszer hivatalos csomagtárában a 7.3-as PHP ág található, ami jelenleg a legújabb stabil branch. Egy lépésben történő telepítéséhez futtathatjuk az alábbi parancsot, ami nálam már a jól bevált PHP csomagokat tartalmazza:
apt-get -y install \
apache2-suexec-pristine \
libapache2-mod-fcgid \
libapache2-mod-python \
libapache2-mod-passenger \
libapache2-mod-php \
libruby \
mcrypt \
imagemagick \
memcached \
php-pear \
php-memcache \
php-imagick \
php-gettext \
php-apcu \
php-yaml \
php7.3 \
php7.3-bcmath \
php7.3-bz2 \
php7.3-cgi \
php7.3-cli \
php7.3-common \
php7.3-curl \
php7.3-fpm \
php7.3-gd \
php7.3-imap \
php7.3-intl \
php7.3-json \
php7.3-mbstring \
php7.3-mysql \
php7.3-opcache \
php7.3-pspell \
php7.3-recode \
php7.3-soap \
php7.3-sqlite3 \
php7.3-tidy \
php7.3-xml \
php7.3-xmlrpc \
php7.3-xsl \
php7.3-zip
Ezeken kívül keresgélhetünk még további PHP csomagokat is az apt-cache paranccsal, ha az igények megkívánják:
apt-cache search php7.3
A telepítés néhány sor NOTICE-al zárul:
NOTICE: Not enabling PHP 7.3 FPM by default. NOTICE: To enable PHP 7.3 FPM in Apache2 do: NOTICE: a2enmod proxy_fcgi setenvif NOTICE: a2enconf php7.3-fpm NOTICE: You are seeing this message because you have apache2 package installed.
Ez teljesen normális, mindez azért kerül megjegyzésre, mert egyszerre telepítettük a PHP Apache csomagját – ami lehetővé teszi a PHP Apache modulként történő futtatását –, és a PHP-FPM csomagját is. Ezért jelzi nekünk a telepítő, hogy alapból nem kerül engedélyezésre a PHP FPM szerver API módja, amíg azt be nem kapcsoljuk a leírt lépésekkel.
Ezzel kapcsolatban két lehetőségünk is van:
PHP használata az alapértelmezett mod_php módban
Ez az alapértelmezett mód. Ehhez nem kell semmit tennünk, csak elhelyezni a webgyökérben a kívánt PHP tartalmat, és már működik is. Hozzuk létre a szokásos phpinfós fájlunkat:
nano /var/www/html/phpinfo.php
Majd tegyük bele a már jól ismert sorokat:
<?php
phpinfo();
?>
Ezután nyissuk meg a böngészőben:
A Server API sorában láthatjuk a "Apache 2.0 Handler" értéket.
Ha arra van szükségünk, hogy minél hamarabb összerakjunk egy tesztkörnyezetet, amiben mindegy, hogy hogy fut a PHP, vagy valami ritka kompatibilitási követelménynek kell megfelelnünk, akkor ez az optimális választás.
Mindazonáltal ebben az esetben is van lehetőségünk további virtualhoszt-okat létrehozni, ahol használhatjuk ugyanígy a mod_php-t vagy akár a PHP-FPM-et is. Ezt most nem kívánom túlragozni, erről már írtam korábban a Hogyan telepítsük fel a PHP-FPM-et egy Debian 8 (Jessie) LAMP szerverre című útmutatóban. Természetesen abban a leírásban még a PHP 5.6-al végeztem el ezeket a beállításokat, ami ebből a szempontból nem változtat a beállítások menetén.
Szerver átállítása PHP-FPM-re
A másik lehetőség, hogy átállítunk globálisan mindent PHP-FPM-re. Ez azt jelenti, hogy innentől nem lesz elérhető a régi és elavult mod_php, mivel ahogy fentebb is írta a telepítő, ennek használatához ki kell kapcsolni, hogy működésbe hozhassuk alapértelmezettként a PHP-FPM-et. Ehhez futtassuk root-ként az alábbi 4 parancsot:
a2dismod php7.3
a2enmod proxy_fcgi setenvif
a2enconf php7.3-fpm
systemctl restart apache2
Itt kikapcsoljuk az Apache aktuális php modulját, bekapcsoljuk a szükséges egyéb modulokat, majd engedélyezzük az FPM konfigurációt, és végül újraindítjuk az Apache-ot.
Ezután ha ráfrissítünk a korábbi phpinfó böngészőablakunkra, akkor már így fog kinézni:
És már a PHP-FPM-el jön be az alapértelmezett webgyökérben is a PHP. Ez a megoldás annyiban különbözik az előzőtől, hogy az engedélyezett php7.3-fpm Apache konfiguráció végrehajt egy átirányítást az FPM-re, amennyiben nem találja a (kikapcsolt) mod_php-t. Erről részletesen az iménti linken írtam egy hasonló téma kapcsán.
A PHP-FPM modernebb, biztonságosabb, és hatékonyabb, ezért mindenképp ajánlott a használata. Valamint ha később be szeretnénk állítani a HTTP/2-t, akkor ez az átkapcsolás amúgy is szükségszerű lesz, de erről majd egy másik leírásban...
Amennyiben vissza szeretnénk váltani az eredeti módra, bármikor megtehetjük a fenti parancsok fordított futtatásával:
a2disconf php7.3-fpm
a2dismod proxy_fcgi setenvif
a2enmod php7.3
systemctl restart apache2
A következő oldalon folytatjuk a LAMP szerver építését a phpMyAdmin telepítésével és beállításával...
- Debian 9 (Stretch) LAMP szerver v1.0 telepítése
- Debian 8 (Jessie) LAMP szerver v1.0 telepítése
- Ubuntu 18.04 LTS (Bionic Beaver) LAMP szerver v1.0 telepítése
- Ubuntu 20.04 LTS (Focal Fossa) LAMP szerver v1.0 telepítése
- Debian 11 (Bullseye) LAMP szerver v1.0 telepítése
- Tökéletes szerver: Debian 11 (Bullseye) v1.0
- Hogyan telepítsük fel a PHP-FPM-et egy Debian 8 (Jessie) LAMP szerverre
- Hogyan telepíthetünk újabb PHP verziókat Debian 9 (Stretch) LAMP szerverünkre PHP-FPM módban
- A Debian 10 (Buster) operációs rendszer újdonságai, változásai
- Hogyan telepíthetjük egyszerűen a backports tárolóból, vagy frissíthetjük a kézzel feltelepített phpMyAdmin webes adatbázis kezelő rendszerünket Debian 10 (Buster) szervereken
Lapozó
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
- 2307 megtekintés