Debian 10 (Buster) LAMP szerver v1.0 telepítése (2. oldal)

botond küldte be 2019. 11. 19., k – 14:28 időpontban

Tartalom

 

A 2. 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. Ezen az oldalon befejezzük a LAMP szerver építését: feltelepítjük és beállítjuk a phpMyAdmin webes adatbáziskezelő felületet, melyet egyedi módon hajtunk végre, mert a Debian 10 csomagtára alapból nem tartalmazza ezt a szoftvert.

 

 

A phpMyAdmin telepítése

Debian 10 (Buster) csomagtára nem tartalmazza a phpMyAdmin csomagot, amit így nem tudjuk az APT csomagkezelő segítségével egyszerűen telepíteni. Helyette kézzel kell letölteni a forráskódot tartalmazó csomagot, és magunknak kell elvégezni a telepítés és beállítás teljes menetét. Azonban akik szeretnek mókolni a terminálban – mint ahogyan én is –, azoknak ez a telepítés egy igazi ínyenc falat lesz!

Fontos!
Mivel egyedileg kell telepítenünk a phpMyAdmin-t, így ezt többféleképpen is megtehetjük. Azonban ha később ebből a telepítésből egy tökéletes szervert is szeretnénk építeni, akkor fontos, hogy az itt leírtak alapján haladjunk, hogy később ne adódhassanak problémák.

 

Frissítés 2021-02-16:
A Debian időközben elérhetővé tette a Buster Backports tárolójában a phpMyAdmin telepítőcsomagját, így onnan is telepíthető. Tehát ha nem szeretnénk kézzel telepíteni és beállítgatni, akkor látogassunk el az alábbi linkre:

A kézi telepítéshez folytassuk a leírás elkészítését.

 

Könyvtárstruktúra kialakítása

Root-ként maradva, először hozzuk létre a szükséges könyvtárakat és a HTTP hitelesítéshez szükséges beállítófájlt, amit üresen is hagyunk:

mkdir /usr/share/phpmyadmin
mkdir /etc/phpmyadmin
mkdir -p /var/lib/phpmyadmin/tmp
touch /etc/phpmyadmin/htpasswd.setup

Letöltés és kicsomagolás

A phpMyAdmin hivatalos letöltőoldalán legörgetve találunk egy olyan részt, hogy "Latest Stable Version". Itt keressük ki a "phpMyAdmin-latest-all-languages.tar.gz" linket, aminek most használni fogjuk az URL címét.

Lépjünk be a /tmp könyvtárba és töltsük le:

cd /tmp
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

Csomagoljuk ki, és a tartalmát tegyük át a fentebb létrehozott könyvtárába:

tar -xzf phpMyAdmin-latest-all-languages.tar.gz
mv phpMyAdmin-4.9.1-all-languages/* /usr/share/phpmyadmin/

(Itt természetesen a kicsomagolt könyvtárnév az aktuális verziónak megfelelően alakul)

Töröljük a felesleges dolgokat:

rm phpMyAdmin-latest-all-languages.tar.gz
rm -rf phpMyAdmin-4.9.1-all-languages/

Állítsuk át a www-data felhasználóra a phpMyAdmin könyvtárát és annak teljes tartalmát, mert ennek a felhasználónak a nevében kell majd tudnia hozzáférnie a PHP-nek:

chown -R www-data:www-data /var/lib/phpmyadmin

Beállítások

A programcsomag már a helyén van, még el kell végeznünk néhány beállítást, hogy működésre is bírhassuk kezdhetjük is az adatbázis beállításaival.

Adatbázis beállítások

PMA kontroll felhasználó és adatbázis létrehozása

A phpMyAdmin egy ún. kontroll felhasználó segítségével tartja karban, illetve szinkronban a saját, belső információs tábláit a háttérben. Ezzel a felhasználóval nekünk nem lesz később dolgunk, de itt most létre kell hoznunk manuálisan. Lényegében ez a korábbi Ubuntu 18.04 LTS, illetve Debian 9 (Stretch) LAMP szervereken is elvégzett kontroll felhasználók automatikus beállításainak a kézi megfelelője. Itt tehát találjunk ki egy jelszót, amit mindjárt használni is fogunk.

Lépjünk be a MariaDB konzoljába a beállított defaults fájlunk segítségével:

mysql --defaults-file=/etc/mysql/debian.cnf

Majd soronként egyesével adjuk ki az alábbi SQL parancsokat, behelyettesítve a 'jelszo' részeket az általunk kitalált jelszóra:

CREATE DATABASE phpmyadmin;
CREATE USER 'pma'@'localhost' IDENTIFIED BY 'jelszo';
GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'jelszo' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Normál esetben ehhez hasonlóan kell kinéznie a történetnek:

MariaDB - PMA kontroll felhasználó létrehozása

 

 

phpMyAdmin saját tábláinak létrehozása

A pma saját felhasználója és adatbázisa létrejött, már csak fel kell töltenünk ezt az adatbázist a phpMyAdmin saját tábláival. Erre a célra van egy SQL fájl a letöltött csomagban, amit csak le kell futtatnunk az adatbázisban:

mysql --defaults-file=/etc/mysql/debian.cnf < /usr/share/phpmyadmin/sql/create_tables.sql

A parancs normál esetben nem ad semmilyen kimenetet, de ha újra belépünk a konzolba, akkor egyszerűen ellenőrizhetjük a táblák létrejöttét:

mysql --defaults-file=/etc/mysql/debian.cnf

Majd a konzolban:

use phpmyadmin;
show tables;
exit;

MariaDB - PMA táblák ellenőrzése

Itt láthatjuk, hogy létrejött 19 darab "pma__" kezdetű tábla, tehát a csomagban kapott SQL fájl gond nélkül futott le.

Root belépés engedélyezése

Ahogyan a korábbi Debian 9 (Stretch), vagy az Ubuntu 18.04 LAMP szerverek phpMyAdmin-jainak telepítésekor, itt is engedélyeznünk kell a root belépést, ami alapból biztonsági okok miatt tiltva van.

Ehhez ismét lépjünk be a MariaDB konzolba:

mysql --defaults-file=/etc/mysql/debian.cnf

Majd itt adjuk ki soronként az alábbi SQL parancsokat:

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

Az első parancsra ilyesmit kell hogy visszaadjon:

Query OK, 1 row affected (0.014 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Ezzel az adatbázis részekkel meg is volnánk.

A config.inc.php beállítása

A config.inc.php a phpMyAdmin fő konfigurációs fájlja, ebben található minden szükséges beállítás. Kiinduló helyzetben egy sablon fájlról kell másolatot készítenünk, amiben utána elvégezzük a módosításokat. A másolást a következő paranccsal hajtsuk végre:

cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php

Mielőtt megnyitnánk a fájlt, szükségünk lesz egy ún. blowfish secret kódra, ami a süti alapú bejelentkezést biztosítja számunkra, így kényelmesebben használhatjuk a phpMyAdmint, mint az alap HTTP hitelesítés segítségével. A kódnak egyedinek kell lennie, amit számos weboldalon is generáltathatunk, vagy akár magunk is létrehozhatunk a parancssorban. Sokféle módon elő lehet ilyet állítani, például az alábbi paranccsal:

cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32 && echo

Most így hirtelen ez jött. A végén az echo csak egy sortörést ad, hogy kényelmesebben ki tudjuk másolni a kapott kódot. Példa kimenet (ne ezt használjuk, generáljunk sajátot):

935N410AWjD5CUe1mPyV36nLVGaUA2Br

Miután kimásoltuk ezt a 32 karakterhosszúságú alfanumerikus karakterláncot, nyissuk meg a config.inc.php fájlt:

nano /usr/share/phpmyadmin/config.inc.php

És végezzük el az alábbi módosításokat:

[...]

$cfg['blowfish_secret'] = 'ide helyezzük be a generált 32 karakter hosszúságú blowfish_secret kódunkat';

[...]

// $cfg['Servers'][$i]['controlhost'] = 'localhost';
// $cfg['Servers'][$i]['controlport'] = '';
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'itt adjuk meg a korábban beállított PMA jelszavunkat';

/* Storage database and tables */
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma__relation';
// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
// $cfg['Servers'][$i]['history'] = 'pma__history';
// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
// $cfg['Servers'][$i]['users'] = 'pma__users';
// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

[...]

$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

[...]

Sorban haladva tehát a következőket hajtsuk végre:

  1. $cfg['blowfish_secret'] itt adjuk meg a blowfish_secret kódunkat az aposztrófok között
  2. $cfg['Servers'][$i]['controlhost'] itt állítsuk be a következő értéket: 'localhost'
  3. $cfg['Servers'][$i]['controlpass'] sorában pedig adjuk meg a fentebb kitalált PMA jelszavunkat.
  4. Kicsit lejjebb, a SaveDir-es sor alá illesszük be az alatta lévő zölddel kiemelt TempDir-es sort.
    Lényegében bárhova beszúrhatjuk, de itt a könyvtárak beállító részeinél a logikus elhelyezni.
  5. Végül vegyünk ki minden pirossal kiemelt kommentet a sorok elől.

Mentsük le a fájlt.

 

 

Apache beállítása

Utolsó lépésként már csak az Apache beállítása maradt hátra. Hozzuk létre a phpMyAdmin Apache konfigurációs fájlját:

nano /etc/apache2/conf-available/phpmyadmin.conf

És tegyük bele az alábbi tartalmat:

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<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>
</Directory>

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
	<IfModule mod_authn_file.c>
		AuthType Basic
		AuthName "phpMyAdmin Setup"
		AuthUserFile /etc/phpmyadmin/htpasswd.setup
	</IfModule>
	Require valid-user
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
	Order Deny,Allow
	Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
	Order Deny,Allow
	Deny from All
</Directory>

Ez a phpMyAdmin alapértelmezett konfigurációja.

Majd engedélyezzük a konfigot:

a2enconf phpmyadmin

Csinálhatunk egy konfigtesztet is, hogy megfelelő-e a szintaktika:

apache2ctl configtest

Ha rendben van, akkor indítsuk újra az Apache-ot:

systemctl restart apache2

 

phpMyAdmin tesztelése

És eljött a pillanat, amikor minden készen áll, kipróbálhatjuk a phpMyAdminunkat. Töltsük be a böngészőbe a megfelelő IP-címmel:

http://192.168.1.130/phpmyadmin

phpMyAdmin - Belépés

Itt adjuk meg a root hozzáférésünket, és meg is érkezünk a kezdőoldalra:

phpMyAdmin - Kezdőképernyő

Íme egy friss, ropogós, hibátlan 4.9.1-es phpMyAdmin példány. Azonban még ne menjünk messzire, ha még van kedvünk, mert még csiszolhatunk rajta. :)

 

 

A következő oldalon folytatjuk a phpMyAdmin PHP-FPM-hez történő opcionális finomhangolásával.

 

 

Lapozó

Ez a leírás több oldalból áll: