>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
PHP

Dlaczego warto korzystać z Adminera, skoro są phpMyAdmin i rozbudowane klienty GUI

Każdy, kto kiedykolwiek wdrożył aplikację webową na skromnym VPS-ie, pamięta tę rutynę. Musisz pilnie sprawdzić tabelę w bazie danych lub naprawić jeden wiersz. Instalacja klienta desktopowego jak DBeaver i konfiguracja tunelu SSH zajmuje zbyt dużo czasu. Wgrywanie phpMyAdmin też jest niepożądane: tysiące małych plików w archiwum, masa ustawień, megabajty rozpakowanego kodu.

W takich sytuacjach z pomocą przychodzi Adminer — projekt czeskiego programisty Jakuba Vrány, który znajduje się na GitHubie od ponad 15 lat. Koncepcja narzędzia jest prosta: w pełni funkcjonalny panel administracyjny baz danych mieszczący się w jednym pliku PHP.

Struktura tabeli

Jak to działa

Pobierasz jeden plik adminer.php o rozmiarze około 400 kilobajtów. Wgrywasz go do folderu strony na serwerze i otwierasz w przeglądarce. To wszystko jeśli chodzi o instalację. Pojawia się formularz logowania z opcjami wyboru systemu zarządzania bazą danych, hosta, nazwy użytkownika i hasła.

Skompilowana wersja Adminera działa praktycznie w każdym środowisku. Wymaga tylko PHP 5.3, które wciąż było powszechne na serwerach pod koniec lat 2000. Jeśli pracujesz z kodem źródłowym z repozytorium i budujesz projekt samodzielnie, potrzebujesz PHP 7.4 lub nowszego.

W przeciwieństwie do phpMyAdmin, który historycznie jest związany z MySQL, Adminer obsługuje wiele systemów zarządzania bazami danych out of the box:

  • MySQL i MariaDB
  • PostgreSQL
  • SQLite (wersje 2 i 3)
  • MS SQL
  • Oracle
  • CockroachDB

Podłączenie oficjalnych wtyczek rozszerza tę listę. Dostępna staje się obsługa ClickHouse, Redis, Elasticsearch i MongoDB.

Dlaczego format jednego pliku wciąż jest wygodny

Spakowanie całej aplikacji w jeden skrypt przynosi wymierne korzyści w praktyce.

Po pierwsze, szybkość wdrożenia. Plik pobiera się w sekundę przez wget lub curl bezpośrednio w konsoli serwera. Nie trzeba rozpakowywać archiwów, tworzyć pomocniczych tabel dla ustawień ani modyfikować plików konfiguracyjnych.

Po drugie, efektywność zasobów. Skrypt jest napisany bez frameworków. Strony ładują się błyskawicznie nawet na najsłabszych serwerach wirtualnych z 512 MB RAM.

Po trzecie, narzędzie ostrożnie zarządza pamięcią podczas importu i eksportu zrzutów. Tam gdzie phpMyAdmin zawodzi z powodu limitu pamięci lub błędów timeout, Adminer zazwyczaj radzi sobie bez problemów.

Co kryje się w repozytorium

Zaglądając do kodu źródłowego w repozytorium vrana/adminer, odkrywamy, że projekt jest zorganizowany znacznie ciekawiej, niż mogłoby się wydawać. To nie jest tylko 400 kilobajtów zmieszанego HTML i PHP.

Kod źródłowy jest podzielony na moduły:

  • adminer/ — główny kod interfejsu
  • editor/ — lekka wersja Adminer Editor
  • compile.php — skrypt budujący, który składa wszystkie komponenty, style i pliki językowe w końcowy monolityczny plik
  • lang.php — narzędzie do aktualizacji lokalizacji
  • tests/ — testy end-to-end Playwright do weryfikacji w przeglądarce

Skrypt budujący usuwa białe znaki, eliminuje komentarze i minifikuje CSS. Efektem jest kompaktowy plik gotowy do wdrożenia bez zewnętrznych zależności.

Osobna wersja dla użytkowników końcowych

W repozytorium znajduje się drugi produkt — Adminer Editor.

Rozważ typowy scenariusz: musisz przyznać menedżerowi lub redaktorowi treści dostęp do edycji rekordów w bazie danych. Nie możesz jednak pokazywać im struktur tabel, indeksów ani pozwalać na wykonywanie dowolnych zapytań SQL.

Adminer Editor rozwiązuje dokładnie ten problem. Zapewnia uproszczony interfejs na bazie danych. Nie ma w nim przycisków do modyfikacji DDL ani ustawień administracyjnych. Użytkownicy widzą tylko znajome formularze do dodawania, edycji i wyszukiwania rekordów. W razie potrzeby Editor łatwo dostosować do reguł projektu za pomocą niewielkiej klasy PHP.

Bezpieczeństwo i zastrzeżenia

Praca z narzędziem jest wygodna, ale pozostawienie adminer.php publicznie dostępnym na serwerze produkcyjnym jest ryzykowne. Boty nieustannie skanują strony w poszukiwaniu standardowych nazw plików jak adminer.php czy db.php, próbując metodą brute force odgadnąć hasła do bazy danych.

Aby zabezpieczyć serwer, stosuj się do tych prostych wytycznych:

  1. Usuń plik natychmiast po zakończeniu debugowania.
  2. Zmień nazwę skryptu na losowy ciąg znaków (na przykład db_access_9281.php).
  3. Ogranicz dostęp do pliku na poziomie serwera WWW za pomocą HTTP Basic Auth lub ograniczeń IP.

Inną kwestią jest domyślny wygląd narzędzia. Design out of the box przypomina przyjazny powrót do 2008 roku. Można to jednak łatwo naprawić, podłączając motywy CSS innych firm z oficjalnego katalogu projektu.

Kto znajdzie to narzędzie przydatne

Adminer zajmuje doskonałą niszę w zestawie narzędzi programisty. Jest niezastąpiony przy szybkim debugowaniu na serwerach deweloperskich, pracy z plikami SQLite oraz w sytuacjach, gdy dostęp do serwera ogranicza się tylko do interfejsu webowego.

Projekt zdobył ponad 7,5 tysiąca gwiazdek na GitHubie i wciąż jest rozwijany przez swojego autora. To dobry przykład na to, jak prosta i minimalistyczna architektura pozostaje aktualna przez lata.

Powiązane projekty