phpMyAdmin není omezen jen na použití s jediným MySQL serverem. Základní nastavení pro
jeden server
již bylo popsáno dříve, teď je na čase
postoupit k nastavení pro složitější konfigurace a podrobněji popsat možnosti, které phpMyAdmin nabízí.
Typ přihlášení
Základní možnosti přihlašování byly stručně popsány
dříve
, ale jejich výhody a nevýhody si teď ještě probereme podrobněji. Volba
typu přihlášení se do konfiguračního souboru píše následovně:
$cfg['Servers'][$i]['auth_type'] = 'typ';
config
Připojení je nadefinované v konfiguračním souboru, omezení přístupu by mělo být zajištěno jiným způsobem. Pokud používáme phpMyAdmina jen na lokálním počítači, může se
jednat o nejpohodlnější variantu.
cookie
Přihlašování pomocí koláčků, kdy se uživatel přihlašuje stejným uživatelským jménem a heslem jako do MySQL. Autentizace tedy necháváme na MySQL serveru se všemi výhodami a
nevýhodami, které z toho plynou. Pozor například na zpřístupnění všech účtů vzdáleně, tedy i těch, které jsou v MySQL povoleny jen z lokálního počítače.
Heslo se do koláčků ukládá šifrované klíčem uloženém na serveru (
$cfg['blowfish_secret']
), čímž se poněkud snižuje riziko útoku v případě ukradení koláčku (ale
není mu zabráněno úplně, takže dodržovat nějaké bezpečnostní zvyklosti je pořád potřeba).
Jedná se asi o nejpoužívanější volbu a kromě pevně definovaného MySQL serveru umožňuje také uživateli zadat libovolný MySQL server po nastavení:
$cfg['AllowArbitraryServer'] = TRUE;
Pozor však pokud phpMyAdmin běží na web serveru za firewallem, v tomto případě může uživatel získat při povolení zadání libovolného serveru i přístup k interním MySQL
serverům, ke kterým by jinak přístup neměl.
http
HTTP přihlašování je dost podobné přihlašování pomoci koláčků, platí pro ni téměř to samé. Jen není možné provést plnohodnotné odhlášení (HTTP autentizace toto
neumožňuje) a heslo na straně klienta není ukládáno šifrovaně.
signon
Tato metoda je určena pro integraci phpMyAdmina do jiných systémů, kdy se uživatel přihlašuje heslem do jiného systému a ten phpMyAdminovi při vstupu do něj předá přístupové údaje
do MySQL. Podrobněji se implementaci tohoto typu budu věnovat v některém s dalších článků, takže vás zatím jen odkážu na
anglický
popis na wiki
.
Parametry připojení
Většina parametrů připojení asi není potřeba moc popisovat a jejich názvy celkem vypovídají co asi daná volba dělá:
$cfg['Servers'][$i]['host'] = 'mysql.example.net';
$cfg['Servers'][$i]['port'] = '4242';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['ssl'] = false;
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['extension'] = 'mysql';
V případě, že MySQL provozujete na standardním portu (nebo soketu v případě lokálního počítače), jediné co opravdu potřebujete nastavit je
$cfg['Servers'][$i]['host']
.
V případě novějšího PHP je také vhodné nastavit používané rozšíření PHP na
mysqli
:
$cfg['Servers'][$i]['extension'] = 'mysqli';
Více serverů
Více serverů není pro phpMyAdmina žádným problémem. Jistě jste si všimli
$i
zadávaného ve všech konfiguračních parametrech. Touto proměnou je možné nadefinovat
libovolné množství serverů, ze kterých si uživatel bude moci vybra. Proměnná se používá místo přímého udání čísla pro snadnější případný přesun serverů nebo kopírování
parametrů. Konfigurace pro více serverů pak v podstatě jen spočívá v kopírování a upravování parametrů pro jednotlivé servery. Například tedy může vypadat takto:
/* Servers configuration */
$i = 0;
/* Server localhost (config:root) [1] */
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'mysql';
/* Server localhost (config:franta) [2] */
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'franta';
$cfg['Servers'][$i]['password'] = 'heslo';
Ve výchozím nastavení se phpMyAdmin automaticky pokusí připojit k prvnímu serveru. Pokud chceme, aby se připojoval k jinému, zadáme jeho pořadové číslo do proměnné
$cfg['ServerDefault']
, pokud chceme aby si uživatel nejdříve vybral server, zadáme nulu:
$cfg['ServerDefault'] = 0;