Funkcja phpinfo() w PHP to potężne narzędzie diagnostyczne, które wyświetla kompleksowy raport o konfiguracji serwera, wersji PHP, załadowanych rozszerzeniach, zmiennych środowiskowych i wielu innych parametrach.
Jest niezbędna do debugowania, weryfikacji wymagań aplikacji oraz optymalizacji środowiska hostingowego.
Czym dokładnie jest phpinfo() i jak działa?
phpinfo() to wbudowana funkcja PHP, która generuje szczegółowy raport w HTML o całym środowisku wykonawczym. Po jej wywołaniu dane są prezentowane w sekcjach obejmujących m.in.:
- wersję PHP i informacje o kompilacji – dokładną wersję interpretera (np. PHP 8.3.x), opcje i datę kompilacji, informacje o systemie operacyjnym;
- ustawienia konfiguracyjne – wartości dyrektyw z pliku php.ini, w tym limity jak memory_limit, post_max_size, max_input_time, max_input_vars;
- załadowane rozszerzenia i moduły – listę aktywnych modułów (np. GD, PDO, cURL, mbstring) wraz z wersjami i ustawieniami;
- zmienne środowiskowe i serwera – dane EGPCS (Environment, GET, POST, Cookie, Server), nagłówki HTTP, ścieżki systemowe, zmienne jak $_SERVER;
- inne sekcje – informacje o serwerze WWW (Apache, Nginx), licencji PHP oraz lokalnych i globalnych wartościach dyrektyw.
Każdy serwer ma unikalną konfigurację – phpinfo() w kilka sekund pokazuje dostępne zmienne i ustawienia dla aktualnego środowiska.
Składnia i parametry funkcji phpinfo()
Podstawowa składnia to proste wywołanie funkcji, które domyślnie wyświetla wszystkie informacje:
phpinfo();
Funkcja akceptuje opcjonalny parametr int $flags, który filtruje dane dzięki bitowych stałych (można je łączyć operatorem |). Oto pełna lista dostępnych flag:
| INFO_GENERAL | 1 | Konfiguracja php.ini, lokalizacje, data wersji, serwer, system. |
| INFO_CREDITS | 2 | Lista autorów PHP. |
| INFO_CONFIGURATION | 4 | Lokalne i główne wartości dyrektyw PHP. |
| INFO_MODULES | 8 | Załadowane moduły i ich ustawienia. |
| INFO_ENVIRONMENT | 16 | Zmienne środowiskowe ($HTTP_ENV_VARS). |
| INFO_VARIABLES | 32 | Zmienne EGPCS (Environment, GET, POST, Cookie, Server). |
| INFO_LICENSE | 64 | Licencja PHP. |
| INFO_ALL | -1 | Wszystkie powyższe (domyślnie). |
Na przykład, aby wyświetlić tylko moduły lub połączyć kilka sekcji, użyj następujących wywołań:
<?php
// Wyświetla tylko moduły
phpinfo(INFO_MODULES);
// Wyświetla konfigurację i moduły
phpinfo(INFO_CONFIGURATION | INFO_MODULES);
?>
Kompatybilność: PHP 4, 5 i nowsze wersje.
Krok po kroku – jak utworzyć i uruchomić plik phpinfo()?
Poniżej znajdziesz prostą instrukcję, jak sprawdzić konfigurację PHP na swoim serwerze:
- Utwórz plik na komputerze – otwórz edytor tekstu (np. Notatnik, VS Code), wklej poniższy kod i zapisz go jako info.php:
<?php
phpinfo();
?> - Prześlij plik na serwer – użyj klienta FTP (np. FileZilla) i umieść plik w wybranym katalogu, np. public_html;
- Uruchom w przeglądarce – wejdź pod adres, np. https://twojadomena.pl/info.php. Strona wyświetli pełny raport – skorzystaj z Ctrl + F, aby gwałtownie znaleźć parametry, np. memory_limit;
- Sprawdź i usuń – po analizie usuń plik z serwera. phpinfo() ujawnia wrażliwe dane (ścieżki, wersje), co stanowi realne ryzyko bezpieczeństwa.
Na serwerach współdzielonych (np. LH.pl, home.pl) procedura wygląda identycznie.
Kiedy i dlaczego używać phpinfo()?
phpinfo() przydaje się w wielu kluczowych scenariuszach, m.in. wtedy, gdy:
- weryfikujesz wymagania aplikacji – przed instalacją CMS/Frameworków, takich jak WordPress, Laravel czy Magento, sprawdź wersję PHP, wymagane rozszerzenia (np. mysqli, OpenSSL) i limity;
- debugujesz błędy – przy problemach z uploadem sprawdź file_uploads, upload_max_filesize, a także ustawienia jak allow_url_fopen;
- optymalizujesz serwer – dostosuj display_errors, max_execution_time, error_reporting i inne parametry wpływające na wydajność;
- porównujesz środowiska – na DEV/STAGING/PROD upewnij się, iż najważniejsze konfiguracje są spójne;
- współpracujesz ze wsparciem technicznym – udostępnij zrzut ekranu z phpinfo() w celu szybszej diagnozy.
Najczęściej sprawdzane dyrektywy i ustawienia obejmują:
- allow_url_fopen – włączanie/wyłączanie pobierania danych zdalnych via HTTP/FTP;
- display_errors – kontrolę wyświetlania błędów (wyłącz na produkcji!);
- file_uploads – zezwolenie na przesyłanie plików;
- memory_limit – limit pamięci dla procesu PHP (np. 256M).
Bezpieczeństwo – nigdy nie zostawiaj phpinfo() na serwerze!
Nigdy nie pozostawiaj pliku z phpinfo() publicznie dostępnego po zakończonej diagnostyce. To miecz obosieczny – atakujący mogą wykorzystać wersje modułów i ścieżki do przygotowania exploitów. Stosuj następujące dobre praktyki:
- usuwaj plik po użyciu – minimalizujesz ekspozycję środowiska;
- ograniczaj dostęp – jeżeli musisz go czasowo zostawić, zabezpiecz hasłem lub dozwolonymi adresami IP;
- na produkcji ogranicz zakres – np. phpinfo(INFO_GENERAL); zamiast pełnego raportu.
Alternatywy dla phpinfo()
Jeśli nie możesz lub nie chcesz uruchamiać pliku na serwerze, skorzystaj z poniższych metod:
- komenda CLI – php --ini (lokalizacja plików konfiguracyjnych), php -m (lista modułów);
- plik php.ini – ścieżkę znajdziesz w phpinfo(); edytuj potrzebne dyrektywy;
- panel hostingowy – cPanel lub Plesk często mają wbudowany podgląd phpinfo();
- inne funkcje PHP – ini_get('nazwa_dyrektywy') do pobierania pojedynczych wartości.
Przykłady użycia w praktyce
Aby wyświetlić pełny raport, użyj najprostszego możliwego skryptu:
<?php
phpinfo();
?>
Jeśli zależy Ci na szybkim wglądzie w wersję PHP i limit pamięci oraz liście modułów, skorzystaj z poniższego przykładu:
<?php
echo "Wersja PHP: " . phpversion() . "<br>";
echo "Memory limit: " . ini_get('memory_limit') . "<br>";
phpinfo(INFO_MODULES);
?>
phpinfo() to fundament pracy z PHP – od początkujących developerów po administratorów serwerów – pozwala uniknąć niekompatybilnych konfiguracji i błyskawicznie zdiagnozować problemy, także w środowiskach chmurowych i kontenerach (np. Docker).








