Phpinfo to wbudowana funkcja PHP, która po wywołaniu wyświetla stronę ze szczegółową konfiguracją serwera. To jedno proste polecenie pozwala błyskawicznie sprawdzić wersję interpretera, załadowane moduły czy ustawione limity zasobów. Choć jest to niezastąpione narzędzie diagnostyczne, jego nieostrożne użycie stanowi poważne ryzyko bezpieczeństwa. Wiedza o tym, jak z niego korzystać skutecznie i bezpiecznie, pozwala uniknąć wielu problemów z działaniem aplikacji i serwera.
Spis treści
ToggleCo to jest phpinfo() i do czego służy?
Funkcja phpinfo() to wbudowane narzędzie języka PHP, które generuje stronę HTML zawierającą szczegółowe informacje o aktualnej konfiguracji PHP na serwerze. Jest to podstawowe narzędzie diagnostyczne używane przez programistów do weryfikacji środowiska uruchomieniowego i debugowania aplikacji. Wywołanie tej funkcji pozwala uzyskać kompleksowy raport bez konieczności dostępu do plików konfiguracyjnych, takich jak php.ini.
Głównym zadaniem funkcji jest dostarczanie scentralizowanego wglądu w kluczowe parametry serwera. Wygenerowany raport obejmuje takie dane jak wersja interpretera PHP, informacje o systemie operacyjnym, opcje kompilacji, załadowane moduły i rozszerzenia (np. mysqli, gd, curl), a także wartości dyrektyw konfiguracyjnych – w tym limity pamięci (memory_limit) czy maksymalny czas wykonania skryptu (max_execution_time). Dodatkowo prezentowana jest pełna lista zmiennych środowiskowych i nagłówków HTTP.
Funkcja phpinfo() jest również nieoceniona przy rozwiązywaniu problemów, ponieważ wyświetla zawartość predefiniowanych zmiennych EGPCS (Environment, GET, POST, Cookie, Server). Dzięki temu programista może szybko sprawdzić, jakie dane docierają do skryptu, co ułatwia identyfikację błędów w formularzach czy sesjach.
Jak krok po kroku utworzyć plik phpinfo.php?
Utworzenie pliku phpinfo.php to prosty, trzypoziomowy proces możliwy do wykonania w mniej niż minutę. Kluczowe jest umieszczenie pliku w odpowiednim katalogu, aby uzyskać dane dla właściwego środowiska.
Aby samodzielnie wygenerować raport, postępuj według poniższych kroków:
- Utwórz plik na serwerze. Zaloguj się przez FTP lub użyj menedżera plików w panelu hostingowym. Przejdź do katalogu, którego konfigurację chcesz sprawdzić – najczęściej będzie to
public_htmldla domeny głównej lubhtdocsdla lokalnego serwera (np. XAMPP). Stwórz tam plik o nazwiephpinfo.php. - Dodaj kod i zapisz plik. Otwórz
phpinfo.phpw edytorze tekstu i wklej jedną linię:<?php phpinfo(); ?>. Zapisz zmiany, upewniając się, że plik jest kodowany w UTF-8, aby uniknąć błędów wyświetlania. - Wyświetl raport w przeglądarce. Uruchom przeglądarkę i wpisz adres, pod którym znajduje się plik, np.
http://twoja-domena.pl/phpinfo.php. Strona od razu pokaże pełny raport.
Dlaczego phpinfo() to ryzyko? Zasady bezpieczeństwa
Publiczne udostępnienie pliku z funkcją phpinfo() stanowi poważne zagrożenie dla bezpieczeństwa serwera. Choć to cenne narzędzie diagnostyczne, pozostawienie go w publicznym katalogu ujawnia wrażliwe dane, które mogą zostać wykorzystane przez atakujących. Raport zawiera m.in. wersję PHP, informacje o systemie operacyjnym, załadowane moduły oraz dokładne ścieżki serwera. Te informacje tworzą cyfrowy „odcisk palca” środowiska, ułatwiając identyfikację możliwych luk i podatności w oprogramowaniu.
Z tego powodu najważniejszą zasadą jest natychmiastowe usunięcie pliku po zakończeniu analizy konfiguracji. Nigdy nie powinno się pozostawiać go na serwerze produkcyjnym. Aby dodatkowo zmniejszyć ryzyko, podczas krótkiego użycia zaleca się nadanie plikowi trudnej do odgadnięcia nazwy, np. info-temp-2024.php zamiast standardowego phpinfo.php. Taka praktyka utrudnia odnalezienie pliku przez automatyczne skanery, dopóki administrator świadomie go nie usunie, zweryfikowawszy krytyczne parametry jak memory_limit czy max_execution_time.
Kluczowe informacje w raporcie phpinfo: co warto sprawdzić?
Raport generowany przez phpinfo() jest bardzo obszerny, więc skuteczna analiza wymaga skupienia się na najważniejszych sekcjach. Należy zwrócić uwagę na wersję PHP, limity zasobów serwera oraz listę aktywnych rozszerzeń, które mają bezpośredni wpływ na stabilność i wydajność aplikacji.
Podczas przeglądania raportu zwróć uwagę na:
- Wersję PHP i lokalizację pliku konfiguracyjnego – Sprawdź wersję interpretera i zgodność z wymaganiami projektu. Raport wskaże także ścieżkę do aktywnego pliku
php.ini(Loaded Configuration File). - Kluczowe limity zasobów – Zwróć uwagę na
memory_limit,max_execution_timeiupload_max_filesize. Raport podaje dwie wartości:Local Value(dotyczącą danego katalogu, modyfikowaną plikami.htaccesslub.user.ini) orazMaster Value(globalną zphp.ini). Zbyt niskie lokalne limity często powodują błędy aplikacji. - Aktywne rozszerzenia PHP – Upewnij się, że na liście są wszystkie potrzebne moduły, np.
gd(obsługa grafiki),curl(połączenia HTTP),mysqli(baza danych). Brak któregokolwiek może powodować awarie. - Zmienne środowiskowe i serwera – Analiza zmiennych, jak
$_SERVER['DOCUMENT_ROOT'], pomaga w diagnozowaniu problemów ze ścieżkami do plików czy konfiguracją serwera WWW.
Alternatywy i zaawansowane opcje filtrowania danych
Choć phpinfo() dostarcza najpełniejszych danych, są prostsze metody na sprawdzenie wersji PHP. Sama funkcja pozwala też na filtrowanie wyników, dzięki czemu można wyświetlić tylko wybrane sekcje raportu, co ułatwia precyzyjną diagnostykę.
Najprostszą alternatywą jest polecenie echo phpversion();, które zwraca tylko numer aktualnej wersji PHP, bez zbędnych detali. Dla osób pracujących w terminalu przydatna jest komenda php -i, która pokazuje dane podobne do phpinfo(), ale w formacie tekstowym. To pozwala na szybkie przeszukiwanie (np. przez grep) bez otwierania przeglądarki. Wersję interpretera można również sprawdzić w panelu hostingu, jak cPanel czy Plesk. Te metody są szybkie, ale nie pokazują konfiguracji modułów, limitów zasobów czy innych szczegółów.
Funkcja phpinfo() przyjmuje opcjonalny parametr, który pozwala ograniczyć wynik do konkretnych danych. Można przekazać jedną z predefiniowanych stałych (lub odpowiadającą jej wartość liczbową), by wygenerować raport zawierający tylko interesujące sekcje:
- INFO_GENERAL (1) – Wyświetla ogólne informacje: wersja PHP, dane o serwerze, systemie i lokalizacja pliku
php.ini. - INFO_CONFIGURATION (4) – Pokazuje lokalne i globalne wartości dyrektyw konfiguracyjnych PHP.
- INFO_MODULES (8) – Prezentuje załadowane moduły wraz ze szczegółowymi ustawieniami.
- INFO_ENVIRONMENT (16) – Zawiera zmienne środowiskowe dostępne dla skryptu.
- INFO_CREDITS (2) – Pokazuje listę autorów języka PHP i wykorzystywanych modułów.

