
Studio Kalmus
Autor
PHP wciąż napędza większość internetu - od WordPressa, przez Laravela, po niestandardowe systemy sprzedażowe. Jeśli administrujesz własnym serwerem VPS albo dopiero uczysz się zarządzać środowiskiem produkcyjnym, prędzej czy później staniesz przed zadaniem zainstalowania i skonfigurowania PHP tak, żeby działało szybko, stabilnie i bezpiecznie. Ten przewodnik prowadzi przez cały proces krok po kroku - od przygotowania systemu, przez wybór metody instalacji, po integrację z Apache lub Nginx, optymalizację wydajności i rozwiązywanie typowych błędów.
W 2026 roku różnica między „PHP jakoś działa” a „PHP działa dobrze” to często kilkaset milisekund czasu odpowiedzi serwera, co ma bezpośrednie przełożenie na doświadczenie użytkownika, współczynnik odrzuceń i pozycję w wynikach wyszukiwania. Dlatego w tym materiale nie poprzestajemy na samej komendzie instalacyjnej - pokazujemy też, jak skonfigurować OPcache, PHP-FPM i podstawowe zabezpieczenia, żeby Twoja aplikacja była gotowa na realny ruch, a nie tylko na testy lokalne.
Dlaczego PHP i Linux to nadal sprawdzony duet
PHP to język skryptowy zaprojektowany z myślą o generowaniu dynamicznych stron internetowych. Jego kod można osadzać bezpośrednio w HTML, co czyni go wygodnym narzędziem do obsługi formularzy, komunikacji z bazami danych i renderowania spersonalizowanych treści. Linux z kolei jest fundamentem większości serwerów WWW na świecie - stabilny, otwartoźródłowy i przewidywalny w zachowaniu, co czyni go naturalnym środowiskiem dla PHP.
Połączenie tych dwóch technologii tworzy klasyczny stos LAMP (Linux, Apache, MySQL, PHP) lub jego nowocześniejszy wariant LEMP (Linux, Nginx, MySQL, PHP). Oba warianty napędzają miliony stron, w tym WordPressa, Joomlę i niezliczone aplikacje pisane w Laravelu czy Symfony. Zanim zaczniesz instalację, warto zrozumieć, że to nie jest jednorazowy proces „zainstaluj i zapomnij” - PHP wymaga regularnych aktualizacji wersji, monitorowania zużycia zasobów i dostosowywania konfiguracji do rosnącego ruchu.
Dobra znajomość podstawowych komend terminala i struktury katalogów Linuksa znacząco ułatwia cały proces. Jeśli zarządzasz serwerem, na którym uruchomisz też inne usługi - na przykład panel hostingowy jak CyberPanel - warto od razu zaplanować, jak PHP będzie współistnieć z resztą stosu technologicznego.
Przygotowanie serwera przed instalacją
Pierwszym krokiem, niezależnie od wybranej dystrybucji, jest aktualizacja systemu operacyjnego. Zapewnia to dostęp do najnowszych poprawek bezpieczeństwa i eliminuje potencjalne konflikty zależności podczas instalacji nowych pakietów. Na systemach Debian/Ubuntu wykonasz to poleceniami sudo apt update oraz sudo apt upgrade -y, a na systemach z rodziny Red Hat (CentOS, Rocky Linux, AlmaLinux) odpowiednikiem jest sudo dnf update -y.
Kolejna decyzja to wybór wersji PHP. W 2026 roku rekomendowanym minimum jest PHP 8.2, a tam gdzie to możliwe - PHP 8.3 lub nowsze, ze względu na poprawki wydajności, silniejsze typowanie i łatki bezpieczeństwa. Starsze gałęzie PHP (7.x i wcześniejsze) od dawna nie otrzymują wsparcia, a uruchamianie na nich produkcyjnej aplikacji to prosta droga do podatności. Zanim zainstalujesz konkretną wersję, sprawdź wymagania swojej aplikacji - większość nowoczesnych wtyczek WordPressa i frameworków jasno deklaruje minimalną obsługiwaną wersję PHP.
Ostatni element przygotowań to serwer WWW, bez którego PHP nie obsłuży żadnego zapytania HTTP. Najpopularniejszy wybór to Apache (prostszy w konfiguracji dla początkujących) lub Nginx (lżejszy i wydajniejszy przy dużym ruchu, ale wymaga PHP-FPM). Upewnij się, że jeden z nich działa poprawnie, zanim przejdziesz do kolejnego etapu.
Standardowe repozytoria czy zewnętrzne PPA/REMI
Masz do wyboru dwie ścieżki instalacji: standardowe repozytoria dystrybucji albo zewnętrzne repozytoria specjalizujące się w PHP, jak PPA Ondrej Sury dla Ubuntu/Debian czy REMI dla systemów Red Hat-owych. Wybór wpływa na dostępność najnowszych wersji, możliwość instalacji wielu wersji równolegle i łatwość aktualizacji.
| Cecha | Repozytoria standardowe | Repozytoria zewnętrzne (PPA/REMI) |
|---|---|---|
| Aktualność wersji PHP | Często starsze, zgodne z cyklem życia dystrybucji | Najnowsze stabilne wersje, szybkie aktualizacje |
| Stabilność | Bardzo wysoka, gruntownie testowane z systemem | Dobra, zależna od reputacji maintainera |
| Wiele wersji równolegle | Trudne, zazwyczaj jedna wersja główna | Łatwe, instalacja side-by-side |
| Łatwość instalacji | Bardzo prosta, jedna komenda | Wymaga dodania repozytorium, potem standardowe kroki |
| Dostępność rozszerzeń | Podstawowe i popularne | Szerszy wybór, w tym nowsze i bardziej specjalistyczne |
Dla większości nowych projektów zalecamy zewnętrzne repozytoria, ponieważ dają dostęp do aktualnych, wspieranych wersji PHP i pozwalają utrzymywać kilka wersji obok siebie, jeśli obsługujesz różne aplikacje na jednym serwerze.
Instalacja na Debianie i Ubuntu
Na systemach Debian/Ubuntu najpopularniejszym źródłem aktualnych pakietów PHP jest repozytorium Ondrej Sury. Proces obejmuje trzy kroki: dodanie repozytorium poleceniem sudo add-apt-repository ppa:ondrej/php -y po wcześniejszym zainstalowaniu pakietu software-properties-common, odświeżenie indeksu pakietów komendą sudo apt update, a następnie instalację wybranej wersji, na przykład sudo apt install php8.3 php8.3-cli php8.3-common php8.3-mysql php8.3-xml php8.3-mbstring php8.3-gd php8.3-curl php8.3-fpm php8.3-zip -y. Warto od razu dobrać zestaw rozszerzeń pod konkretną aplikację - WordPress i większość frameworków wymagają co najmniej mbstring, xml, curl i gd. Po zakończeniu instalacji sprawdź wersję komendą php -v.
Instalacja na CentOS, Rocky Linux i AlmaLinux
W rodzinie Red Hat najczęściej korzysta się z repozytoriów EPEL i REMI. Najpierw instalujesz EPEL poleceniem sudo dnf install epel-release -y, następnie REMI odpowiednim dla wersji systemu, po czym włączasz konkretny moduł PHP - na przykład sudo dnf module enable php:remi-8.3 -y - i instalujesz pakiet główny wraz z rozszerzeniami poleceniem sudo dnf install php php-cli php-common php-mysqlnd php-xml php-mbstring php-gd php-curl php-fpm php-zip -y. Podobnie jak w przypadku Debiana, zakończ weryfikacją komendą php -v.
Integracja PHP z Apache i Nginx
Sama instalacja to dopiero połowa pracy - PHP musi zostać poprawnie połączone z serwerem WWW, żeby obsługiwał realne żądania. W przypadku Apache masz do wyboru starszy moduł mod_php, który osadza interpreter bezpośrednio w procesach Apache, oraz nowocześniejsze PHP-FPM (FastCGI Process Manager), które działa jako osobny proces komunikujący się przez protokół FastCGI. PHP-FPM jest zalecany niemal zawsze, ponieważ lepiej zarządza zasobami i jest wydajniejszy pod obciążeniem. Nginx nie ma wbudowanej obsługi PHP, więc zawsze wymaga PHP-FPM.
Aby uruchomić PHP-FPM, wystarczy komenda sudo systemctl start php8.3-fpm oraz sudo systemctl enable php8.3-fpm, żeby usługa startowała automatycznie po restarcie serwera. W konfiguracji Nginx dla danej domeny dodajesz blok obsługujący pliki .php, wskazujący na odpowiedni socket FPM, na przykład unix:/run/php/php8.3-fpm.sock. Ścieżka do socketa różni się w zależności od dystrybucji, dlatego warto ją zweryfikować w pliku konfiguracyjnym puli FPM przed pierwszym testem.
Po każdej zmianie w konfiguracji serwera WWW lub PHP koniecznie zrestartuj odpowiednie usługi - Apache, Nginx lub PHP-FPM - aby zmiany zostały zastosowane. Pomijanie tego kroku to jeden z najczęstszych powodów, dla których „poprawiona” konfiguracja wciąż nie działa.
Optymalizacja wydajności i bezpieczeństwa
Zainstalowane i podłączone PHP to dopiero punkt startowy. Najważniejszym elementem optymalizacji jest OPcache - wbudowany mechanizm buforowania skompilowanego kodu w pamięci, który eliminuje potrzebę ponownego parsowania skryptów przy każdym żądaniu. Włączenie OPcache i dostrojenie parametrów pamięci potrafi wielokrotnie przyspieszyć odpowiedź serwera, szczególnie w rozbudowanych aplikacjach z dużą liczbą plików.
Drugim obszarem optymalizacji jest strojenie PHP-FPM - liczba procesów potomnych, limity pamięci i strategia zarządzania pulą (pm.max_children, pm.start_servers) powinny być dopasowane do realnego obciążenia serwera, a nie ustawione domyślnie i zostawione bez zmian. Zbyt niskie limity ograniczają przepustowość pod ruchem szczytowym, zbyt wysokie mogą doprowadzić do wyczerpania pamięci RAM.
W kwestii bezpieczeństwa kluczowe jest wyłączenie zbędnych funkcji poleceniem disable_functions, ograniczenie dostępu do systemu plików przez open_basedir oraz ukrycie wersji PHP w nagłówkach HTTP ustawieniem expose_php = Off. Regularne aktualizacje do najnowszej stabilnej wersji PHP są absolutnie niezbędne - każda nowa wersja usuwa znane luki bezpieczeństwa. Upewnij się też, że pliki aplikacji mają odpowiednie uprawnienia: katalogi 755, pliki 644, a właścicielem jest użytkownik, pod którym działa serwer WWW.
Warto pamiętać o kilku wartościach w php.ini, które regularnie wymagają dostosowania: memory_limit odpowiadający realnym potrzebom aplikacji, max_execution_time zapobiegający zawieszaniu się długich skryptów, upload_max_filesize i post_max_size dopasowane do rozmiaru przesyłanych plików oraz poprawna strefa czasowa ustawiona przez date.timezone.
Testowanie instalacji i typowe problemy
Najprostszym testem jest utworzenie pliku testowego w katalogu głównym serwera WWW z zawartością wywołującą funkcję phpinfo. Po otwarciu adresu tego pliku w przeglądarce powinieneś zobaczyć szczegółową stronę z informacjami o konfiguracji PHP. Jeśli zamiast tego widzisz pusty ekran, kod PHP jako czysty tekst albo błąd 500, oznacza to problem z integracją - najczęściej brak włączonego modułu PHP w serwerze WWW, błędną konfigurację FastCGI albo nieuruchomioną usługę PHP-FPM.
W przypadku problemów zawsze zacznij od logów - Apache zapisuje błędy w /var/log/apache2/error.log, Nginx w /var/log/nginx/error.log, a same błędy PHP trafiają do ścieżki wskazanej w dyrektywie error_log w php.ini. Te pliki niemal zawsze zawierają dokładną przyczynę problemu, więc oszczędzają godziny zgadywania. Po zakończeniu testów koniecznie usuń plik testowy z serwera - ujawnia on szczegółowe informacje o konfiguracji, które mogą pomóc atakującemu.
Migracja ze starszej wersji PHP i utrzymanie w czasie
Bardzo częstym scenariuszem nie jest instalacja PHP od zera, ale migracja z wygasłej już gałęzi, na przykład PHP 7.4 lub 8.0, na aktualnie wspieraną wersję. Taka migracja wymaga więcej ostrożności niż świeża instalacja, ponieważ starszy kod może korzystać z funkcji oznaczonych jako przestarzałe (deprecated) lub wręcz usuniętych w nowszych wersjach. Zanim przełączysz produkcję na nową wersję PHP, uruchom aplikację równolegle na osobnym porcie lub subdomenie testowej i przejrzyj logi błędów pod kątem ostrzeżeń o przestarzałych funkcjach.
Dobrą praktyką jest też skorzystanie z narzędzi do statycznej analizy kodu, które potrafią automatycznie wykryć niekompatybilne fragmenty przed wdrożeniem. W przypadku WordPressa dodatkowo warto sprawdzić kompatybilność wszystkich zainstalowanych wtyczek z docelową wersją PHP - część starszych, rzadko aktualizowanych wtyczek może przestać działać poprawnie lub generować błędy krytyczne po aktualizacji interpretera.
Po zakończonej migracji instalacja PHP nie powinna zostać pozostawiona samej sobie. Warto ustawić automatyczne powiadomienia o dostępnych aktualizacjach bezpieczeństwa, regularnie przeglądać logi błędów pod kątem powtarzających się wyjątków oraz monitorować zużycie pamięci i czasu odpowiedzi PHP-FPM za pomocą prostych narzędzi jak systemctl status czy dedykowanych paneli monitoringu. Serwer, który dziś obsługuje niewielki ruch, za pół roku może wymagać zupełnie innych ustawień puli procesów - dlatego konfigurację warto traktować jako proces ciągły, a nie jednorazowe zadanie do odhaczenia.
Jeśli zarządzanie infrastrukturą serwerową odciąga Cię od rozwijania samego produktu, rozważ też przeniesienie części odpowiedzialności na zarządzany hosting lub firmę zewnętrzną, która zajmie się aktualizacjami wersji PHP, monitoringiem i reagowaniem na incydenty bezpieczeństwa, podczas gdy Ty skupisz się na treści i funkcjonalności serwisu.
Najczęściej zadawane pytania
Jak sprawdzić aktualną wersję PHP na serwerze? Najprościej wpisując w terminalu komendę php -v, która pokaże wersję PHP CLI. Aby sprawdzić wersję używaną przez serwer WWW, utwórz plik testowy wywołujący phpinfo i otwórz go w przeglądarce - pamiętaj o jego usunięciu po sprawdzeniu.
Dlaczego strona wyświetla kod PHP jako zwykły tekst zamiast go wykonywać? Najczęstsza przyczyna to brak włączonego modułu PHP w konfiguracji serwera WWW albo nieuruchomiona usługa PHP-FPM. Sprawdź konfigurację Virtual Hosta (Apache) lub bloku location (Nginx) i upewnij się, że wskazuje na poprawny interpreter.
Czy da się bezpiecznie utrzymywać kilka wersji PHP na jednym serwerze? Tak, to standardowa praktyka przy hostingu wielu aplikacji o różnych wymaganiach. Na Debianie/Ubuntu instalujesz kilka wersji obok siebie z repozytorium Ondrej Sury i przełączasz domyślną wersję CLI komendą update-alternatives, a każdej domenie przypisujesz osobny socket PHP-FPM w konfiguracji serwera WWW.
Prawidłowo skonfigurowany serwer PHP to fundament, na którym można bezpiecznie budować dalej - czy to stronę firmową, sklep internetowy, czy rozbudowaną aplikację webową. Jeśli wolisz oddać tę część w ręce specjalistów i skupić się na rozwoju biznesu, zapoznaj się z ofertą Studio Kalmus obejmującą wdrożenia i utrzymanie infrastruktury.
Więcej technicznych szczegółów na temat poszczególnych dyrektyw znajdziesz w oficjalnej dokumentacji PHP, a specyfikę konfiguracji PHP-FPM opisuje dokumentacja PHP-FPM. Warto też śledzić oficjalną dokumentację serwera WWW, z którego korzystasz - dokumentację Nginx lub dokumentację Apache - ponieważ obie zawierają aktualne rekomendacje dotyczące bezpieczeństwa i wydajności, które zmieniają się wraz z nowymi wersjami oprogramowania.

