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)
A 3. oldal tartalma
Folytatás
A leírás első oldalán feltelepítettük a MariaDB-t, Apache webkiszolgálót, és a PHP 7.3-at. Majd a második oldalon feltelepítettük és beállítottuk a a phpMyAdmin webes adatbáziskezelő felületet, ezen az oldalon pedig opcionálisan létrehozunk és beállítunk egy külön PHP-FPM pool-t a PMA számára.
phpMyAdmin PHP-FPM finomhangolása (opcionális)
A LAMP szerver telepítése során szó volt a PHP-FPM-re történő teljes átállásról, ami azzal jár, hogy a mod_php alapú virtualhost-ok és globális konfigurációk átirányításra kerülnek PHP-FPM-re a bekapcsolt php7.3-fpm konfigurációnak köszönhetően, amennyiben nem áll rendelkezésre a mod_php. Ha az elején nem kapcsoltuk ki a mod_php-t, akkor ezzel nincs semmi további teendőnk, mivel a phpMyAdmin példányunk a fenti Apache konfigurációnak megfelelő beállításokkal fut, amiben van néhány hasznos flag és PHP változó, amiket bármikor tudunk módosítani, vagy ki tudunk egészíteni.
Azonban ha kikapcsoltuk a mod_php-t az elején (mint ahogyan én is tettem), vagy egyáltalán fel sem telepítettük ezeket a modulokat, akkor viszont megvalósul az átirányítás, tehát az előző oldalon mutatott Apache konfigban lévő IfModule mod_php7.c blokkban lévő részek nem kerülnek kiértékelésre, hanem helyettük a PHP-FPM alapértelmezett 'www' pool-jának (alap)beállításai lesznek érvényben, mert ilyenkor a phpMyAdminunk ebben az FPM pool-ban fut. Ezért ha közelebbről megvizsgáljuk friss szerzeményünk futási környezetét (a könyvtárában elhelyezett phpinfo segítségével), akkor előkerül pár apróság:
Itt látszik a PHP-FPM (átirányított) működése, annak ellenére, hogy a fenti Apache konfigunkban mod_php7-el került beállításra az egész. Tehát ha közelebbről megvizsgálunk még pár dolgot, akkor az is jól látszik, hogy a korábbi konfigurációban beállított dolgok itt érvénytelenek, mivel egy másik PHP környezetben futnak. Például:
Nincs open_basedir értéke ennek a környezetnek, vagy
nincs upload_tmp_dir érték sem (annak ellenére, hogy korábban be lettek állítva), és így tovább.
Ha nem a várt módon viselkedik a rendszerünk, vagy éppen egy éles környezetben hirtelen be kell állítanunk valamit, teszem azt például hogy a gyári 2 MB-os fájlfeltöltési korlátot feljebb szeretnénk emelni csak a phpMyAdminban, hogy nagyobb méretű SQL fájlokat is be tudjunk importálni, akkor bizony értetlenül kerülünk szembe a problémával, mert hirtelen nem tudjuk, hogy miért nem érvényesülnek a beállításaink.
Ezért ha még bírjuk idegzettel, és igazán precízen be szeretnénk állítani mindent, én azt javaslom, hogy ha már úgy is PHP-FPM-el fut a phpMyAdminunk, készítsünk neki egy saját pool-t, amiben kényelmesen be tudunk állítani egyedileg minden szükséges dolgot, ami csak ebben a pool-ban lesz érvényes. Így bármikor egyedileg tudjuk szabályozni kedvenc adatbáziskezelő felületünk minden beállítását, függetlenül a szerveren futó többi PHP dologtól.
Persze megtehetnénk azt is, hogy az alapértelmezett 'www' pool beállításait igazítanánk igényeinkhez, azonban ez nem lenne bölcs megoldás, mert ha később még más weboldal vagy konfiguráció is bekerül ebbe az alapértelmezett pool-ba, akkor a beállítások mindegyik esetén érvényesek lennének. Így célszerű minden virtualhost-ot, konfigurációt külön poolban futtatni, hogy mindegyiket egyedileg tudjuk szabályozni az adott szükségleteknek megfelelően.
Saját pool beállítása
A PHP-FPM pool-okról már korábban esett szó, így most ezeknek az ismertetésével nem is húznám tovább az időt, hanem kezdjünk is neki a phpMyAdmin pool-jának létrehozásához és beállításához.
Pool létrehozása
Hacsak nincs több PHP verzió telepítve, akkor a Debian 10 (Buster) rendszerben az alapértelmezett 7.3-as PHP áll rendelkezésünkre. Lépjünk be ennek a PHP-FPM pool könyvtárába:
cd /etc/php/7.3/fpm/pool.d
Hozzunk létre egy fájlt a phpMyAdmin számára:
nano phpmyadmin.conf
És tegyük bele az alábbi beállításokat:
; Pool-unk neve [phpmyadmin] ; Futtató felhasználó user = www-data group = www-data ; Socket fájl listen = /run/php/php7.3-phpmyadmin-fpm.sock ; Socket fájl tulajdonosa és módja listen.owner = www-data listen.group = www-data listen.mode = 0660 ; Process management beállítások pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 pm.max_requests = 0 ; log fájl access.log = /var/log/phpmyadmin/php-fpm-access.log access.format = "Log: %t \"%m %r%Q%q\" %s time:%{mili}dm mem:%{kilo}MKB cpu:%C%%" ; Ezekben a fájltípusokban futhatnak php kódok security.limit_extensions = .php .html ; Környezeti változók env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /var/lib/phpmyadmin/tmp env[TMPDIR] = /var/lib/phpmyadmin/tmp env[TEMP] = /var/lib/phpmyadmin/tmp ; PHP beállítások php_admin_flag[log_errors] = on php_flag[display_errors] = off php_admin_value[session.gc_maxlifetime] = 3600 php_admin_value[error_log] = /var/log/phpmyadmin/php-errors.log php_admin_value[memory_limit] = 128M php_admin_value[upload_max_filesize] = 256M ; További PHP beállítások, amiket a 'gyári' phpMyAdmin Apache konfigból vettünk át php_flag[magic_quotes_gpc] = off php_flag[track_vars] = on php_flag[register_globals] = off php_value[include_path] = . php_admin_value[upload_tmp_dir] = /var/lib/phpmyadmin/tmp php_admin_value[open_basedir] = /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/ php_admin_value[mbstring.func_overload] = 0
Gyorsan átfutva a következők kerülnek itt beállításra:
- Beállítjuk a pool-ban futó weboldalak vagy konfigurációk felhasználóját www-data-ra. Itt akár létre is hozhattunk volna bármilyen felhasználót, de felesleges, itt csak a külön pool a lényeg, hogy a phpMyAdminnak legyen egy külön futási környezete, egyedi beállítási lehetőségekkel.
- Socket fájl: Ezen a fájlon keresztül történik a kommunikáció az Apache és a PHP-FPM között. Valamint itt beállítjuk ennek a fájlnak a tulajdonosát is.
- Process management beállítások: Itt szabályozhatjuk ennek a pool-nak a process managementjét, azaz hogy hány gyermek folyamatot, szervert, tartalék szervert indítson a rendszer, stb. Ezeket az alapbeállításokról másoltam le, itt nincs szükség a cifrázásra, mivel ez egy admin felület, amit jó esetben maximum 1-2 ember használ egyszerre. De ha mondjuk egy nagyvállalatnál lenne ez a szerver, ahol egyszerre 50 alkalmazott nyüstölné a phpMyAdmint, akkor itt lehetne óvatosan emelgetni az értékeken. Vagy például ha ez egy forgalmas weboldal lenne sokezer látogatóval...
- Majd beállítjuk az access.log fájl elérését, és gyűjtési formátumát.
- security.limit_extensions: Ezekben engedi a PHP-FPM lefuttatni a PHP kódokat. Ennek a felsorolásnak szinkronban kell lennie az Apache konfigba bekerülő FilesMatch résszel...
- Környezeti változók: Itt adjuk át a PHP környezetnek a Linux rendszer környezet változóit. Többek között a phpMyAdmin tmp könyvtárát itt is beállítjuk többféle változóba is.
- PHP beállítások: Itt pedig a szokványos PHP flag-eket és változókat állíthatjuk be. Pl naplózás: be, hibák megjelenítése: ki, munkamenet hossza: 1 óra, hibanaplófájl útvonala, stb.
- További PHP beállítások: Itt pedig csak áthoztam a gyári Apache konfigból a phpMyAdmin beállításait, hogy minden megfelelően működjön ebben a környezetben is. Ezeknél csak arra kell figyelni, hogy az itteni beállításnál kicsit más a szintaktika, itt tömb elemeknek adunk értéket, így szögletes zárójelbe kerülnek a címkék, majd egyenlőségjelekkel adjuk meg az értékeket.
Apache beállítása
Nyissuk meg a korábban létrehozott Apache konfig fájlunkat:
nano /etc/apache2/conf-available/phpmyadmin.conf
És az IfModule blokk alá tegyünk be egy néhány soros részt, ahogy alább is látható:
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
<IfModule mod_php7.c>
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/
php_admin_value mbstring.func_overload 0
</IfModule>
# PHP-FPM beállítása a saját phpmyadmin pool-hoz
<IfModule mod_proxy_fcgi.c>
<FilesMatch "\.(php|html)$">
SetHandler "proxy:unix:/run/php/php7.3-phpmyadmin-fpm.sock|fcgi://localhost"
</FilesMatch>
</IfModule>
# PHP-FPM beállítás vége
</Directory>
Itt tehát annyi történik ebben a pár sorban, hogy ha php vagy html fájl lekérésekkel találkozik az Apache, akkor a mod_proxy_fcgi modul jelenlétében – és annak segítségével – átirányítja a kérést a PHP-FPM-nek, de így most már nem az alapértelmezett ''www' pool-ban fog futni ez a konfig (mint előtte), hanem az új pool-unkban, aminek a socket fájlját adtuk meg. A pool-ban fentebb elhelyezett beállítások pedig érvénybe lépnek a phpMyAdmin futása során.
Most még nem indítunk újra semmit, még el kell rendeznünk a log fájlokat...
Log fájlok lekezelése
Fentebb a pool beállításainál megadtunk két naplófájl elérést a /var/log/phpmyadmin/ könyvtárban: a php-fpm-access.log és a php-errors.log fájlokét. Az első a PHP-FPM-el kapcsolatos elérési információkat gyűjti, valamint itt jelzi nekünk az FPM, ha például valamelyik Process Management beállítást emelni kellene, a második fájlban pedig a hagyományos PHP hibák gyűlnek. Ezeket úgy alakítjuk ki, hogy egy helyen legyenek a /var/log struktúrában, így kényelmesen elérjük bármikor, amikor bele szeretnénk nézni. Ehhez hozzuk létre a fenti könyvtárat:
mkdir /var/log/phpmyadmin
Majd állítsuk át a jogosultságát a www-data felhasználóra, hiszen ez a felhasználó fogja futtatni ezt a pool-t, így a naplófájlok is ennek a nevében fognak módosulni:
chown -R www-data:www-data /var/log/phpmyadmin
Már majdnem készen is vagyunk, még be kell állítani ezeknek a naplófájloknak a forgatását, mert idővel sok adat gyűlik fel például a php-fpm-access.log -ban. Mindezt a logrotate rendszer segítségével fogjuk megoldani, amiről már korábban volt szó.
Hozzunk létre egy logrotate fájlt a phpMyAdminnak:
nano /etc/logrotate.d/phpmyadmin
És tegyük bele ezt a pár sornyi beállítást:
/var/log/phpmyadmin/php-fpm-access.log /var/log/phpmyadmin/php-errors.log { rotate 7 daily copytruncate compress delaycompress missingok notifempty }
Majd mentsük le. A beállításokról részletesen a fentebbi linken tájékozódhatunk.
Rendszerek újraindítása
Végül indítsuk újra a PHP-FPM-et és az Apache-ot:
systemctl restart php7.3-fpm.service
systemctl restart apache2.service
phpMyAdmin pool tesztelése
Minden készen áll, már csak ki kell próbálnunk ténykedésünk sikerét. Ha még nem helyeztünk el teszt fájlt a phpMyAdmin könyvtárában, most megtehetjük:
nano /usr/share/phpmyadmin/my_phpinfo.php
itt már létezik egy phpinfo.php nevű fájl, amit másra használ a PMA, így másik néven kell létrehoznunk. Majd tegyük bele a szokásost:
<?php
phpinfo();
?>
És töltsük be a böngészőbe a szerver IP-címének segítségével:
http://192.168.1.130/phpmyadmin/my_phpinfo.php
Itt eddig nincs semmi eltérés az előző állapothoz képest, de ha lejjeb görgetünk, és rákeresünk a beállított paramétereinkre, akkor láthatóvá válik a működés. Néhányat szúrópróba-szerűen:
memory_limit és open_basedir: Ezeket mind beállítottuk, látszik is az értékük.
upload_max_filesize és upload_tmp_dir: Ezeknek is megvan a beállított értékük.
És így tovább a többi beállítás mind megtalálható.
Most már mondhatjuk, hogy tökéletes a phpMyAdmin telepítésünk. :)
Szerver letöltése
Konklúzió
Ezzel el is készült a Debian 10 (Buster) alapú LAMP szerverünk, ami kicsit hosszabbra sikeredett, mint az eddigiek, hiszen a phpMyAdmin webes adatbáziskezelő felületet kézzel kellett feltelepíteni és beállítani. Valamint itt-ott erősebb konfigurációt is kapott ez a szerver, hiszen később ez lesz az alapja a Debian 10-es tökéletes szervernek, így ez a változat kicsit combosabb lett, mint a korábbi LAMP-ok. De amíg elkészül ebből a tökéletes szerver telepítő leírás, addig is próbáljátok ki, használjátok egészséggel!
Sok LAMP telepítő leírással lehet találkozni a neten, ezért igyekeztem most is némi pluszt beleadni, hogy ne csak a sablon telepítőparancsokat kínáljam nektek, hanem további hasznos információkkal is szolgálhassak. Remélem ezzel sikerül fenntartani a kedveteket a további telepítgetésekhez.
Hogyan tovább?
Ha elkészítettük ezt a LAMP szervert, akkor hasznos lehet feltelepíteni rá további PHP verziókat is, hogy régebbi weboldalakkal is kompatibilis legyen. Továbbá, ha egyszerre több weboldalt is szeretnénk futtatni ezen a szerveren, akkor itt tájékozódhatunk, hogyan tudunk további virtualhost-okat beállítani, hogy a honlapok párhuzamosan működhessenek rajta. De ha tovább szeretnénk fejleszteni a szervert, akkor ajánlom a Tökéletes szerver: Debian 10 (Buster) V1.0 telepítését, ami kiváló megoldás az éles szerver üzemeltetésére.
- 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
- Hogyan állítsuk át manuálisan egy PHP-FPM pool-ban futó weboldalunk vagy webalkalmazásunk PHP verzióját?
- 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
- 936 megtekintés