🚀 Instalacja PHP 8.3 na Ubuntu 24.04 z Apache i Nginx
Kompletny przewodnik instalacji i konfiguracji najnowszej wersji PHP 8.3 na Ubuntu 24.04 LTS z najpopularniejszymi serwerami WWW: Apache i Nginx. Niezależnie od tego, czy tworzysz nowe środowisko deweloperskie, czy aktualizujesz istniejący serwer produkcyjny, ten artykuł przeprowadzi Cię przez cały proces krok po kroku.
⚡ Ekspresowe Podsumowanie:
- Aktualizacja i przygotowanie systemu: Kluczowe kroki przed instalacją PHP 8.3 na Ubuntu 24.04.
- Instalacja PHP z Apache: Konfiguracja stosu LAMP z najnowszą wersją PHP.
- Instalacja PHP z Nginx: Wdrożenie stosu LEMP z PHP-FPM dla lepszej wydajności.
- Wybór i konfiguracja niezbędnych rozszerzeń PHP: Instalacja najpotrzebniejszych modułów PHP.
🗺️ Spis Treści - Twoja Mapa Drogowa
📋 Przygotowanie systemu Ubuntu 24.04
Zanim przystąpimy do instalacji PHP 8.3, należy odpowiednio przygotować system Ubuntu 24.04. Poprawne przygotowanie środowiska zapewni bezproblemową instalację i optymalne działanie PHP.
Aktualizacja systemu
Pierwszym krokiem jest aktualizacja repozytoriów i pakietów systemowych do najnowszych wersji:
sudo apt update
sudo apt upgrade -y
Następnie warto zrestartować system, jeśli zostały zainstalowane aktualizacje jądra:
sudo reboot
Instalacja niezbędnych narzędzi
Do sprawnej pracy z PHP i serwerami WWW potrzebne będą podstawowe narzędzia deweloperskie:
sudo apt install -y software-properties-common curl wget unzip git
Dodanie repozytorium Ondřeja Surýego
Choć PHP 8.3 może być dostępne w standardowych repozytoriach Ubuntu 24.04, zalecamy użycie repozytorium Ondřeja Surýego, które zawsze oferuje najnowsze wersje PHP:
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
✨ Pro Tip: Repozytorium Ondřeja Surýego pozwala na jednoczesną instalację wielu wersji PHP na jednym serwerze, co jest niezwykle przydatne w środowiskach deweloperskich lub przy migracji aplikacji.
💽 Instalacja PHP 8.3 z Apache
Apache jest jednym z najpopularniejszych serwerów WWW, często używanym w kombinacji z PHP. Poniżej znajdziesz kroki do zainstalowania i skonfigurowania stosu LAMP (Linux, Apache, MySQL, PHP) z najnowszą wersją PHP 8.3.
Instalacja Apache
sudo apt install -y apache2 libapache2-mod-php8.3
Po instalacji sprawdź, czy Apache działa poprawnie:
sudo systemctl status apache2
Powinieneś zobaczyć informację, że usługa jest aktywna (running).
Instalacja PHP 8.3 dla Apache
Teraz zainstalujemy PHP 8.3 wraz z najpopularniejszymi modułami:
sudo apt install -y php8.3 php8.3-common php8.3-cli php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip php8.3-mysql php8.3-intl
Uwaga: Powyższa komenda instaluje tylko podstawowe rozszerzenia PHP. W zależności od Twoich potrzeb, możesz zainstalować dodatkowe moduły, które omówimy w dalszej części artykułu.
Konfiguracja PHP dla Apache
Po instalacji PHP 8.3, warto dostosować kilka podstawowych ustawień w pliku konfiguracyjnym PHP. Otwórz plik php.ini:
sudo nano /etc/php/8.3/apache2/php.ini
Zalecamy następujące zmiany:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
date.timezone = Europe/Warsaw
Uwaga: Ustaw strefę czasową (
date.timezone
) odpowiednią dla twojej lokalizacji.
Po dokonaniu zmian, zapisz plik (Ctrl+O, Enter) i zamknij edytor (Ctrl+X).
Testowanie instalacji Apache z PHP
Aby sprawdzić, czy PHP działa poprawnie z Apache, utwórz plik phpinfo:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Teraz otwórz przeglądarkę i przejdź do adresu:
http://twój_serwer_lub_localhost/info.php
Powinieneś zobaczyć stronę z informacjami o konfiguracji PHP.
🔒 Pamiętaj: Po przetestowaniu instalacji, usuń plik info.php ze względów bezpieczeństwa:
sudo rm /var/www/html/info.php
🌐 Instalacja PHP 8.3 z Nginx
Nginx to serwer WWW znany ze swojej wydajności i małego zużycia zasobów. W połączeniu z PHP-FPM tworzy szybki i efektywny stos LEMP (Linux, Nginx, MySQL, PHP). Poniżej przedstawiamy kroki potrzebne do instalacji i konfiguracji.
Instalacja Nginx
sudo apt install -y nginx
Sprawdź, czy Nginx działa poprawnie:
sudo systemctl status nginx
Instalacja PHP-FPM 8.3
Dla Nginx, zamiast standardowego modułu PHP używanego przez Apache, zainstalujemy PHP-FPM (FastCGI Process Manager):
sudo apt install -y php8.3-fpm php8.3-common php8.3-cli php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip php8.3-mysql php8.3-intl
Po instalacji sprawdź, czy PHP-FPM działa:
sudo systemctl status php8.3-fpm
Konfiguracja PHP-FPM
Podobnie jak w przypadku Apache, warto dostosować ustawienia PHP. Otwórz plik konfiguracyjny PHP-FPM:
sudo nano /etc/php/8.3/fpm/php.ini
Wprowadź te same zmiany, co w przypadku konfiguracji dla Apache:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
date.timezone = Europe/Warsaw
Po zapisaniu zmian, zrestartuj PHP-FPM:
sudo systemctl restart php8.3-fpm
Konfiguracja Nginx dla obsługi PHP
Teraz musimy skonfigurować Nginx, aby korzystał z PHP-FPM. Najpierw stwórzmy bazową konfigurację dla domyślnej witryny:
sudo nano /etc/nginx/sites-available/default
Zastąp zawartość pliku następującą konfiguracją:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Zapisz zmiany i sprawdź, czy konfiguracja Nginx jest poprawna:
sudo nginx -t
Jeśli wszystko jest w porządku, zrestartuj Nginx:
sudo systemctl restart nginx
Testowanie instalacji Nginx z PHP
Podobnie jak w przypadku Apache, utwórz plik testowy:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Przejdź do:
http://twój_serwer_lub_localhost/info.php
Po przetestowaniu, usuń plik testowy:
sudo rm /var/www/html/info.php
📦 Wybór i instalacja popularnych rozszerzeń PHP
PHP 8.3 oferuje wiele rozszerzeń, które mogą być przydatne w zależności od Twoich potrzeb. Poniżej przedstawiamy listę popularnych rozszerzeń i sposób ich instalacji.
Podstawowe rozszerzenia dla aplikacji webowych
Jeśli tworzysz standardowe aplikacje webowe, te rozszerzenia są praktycznie niezbędne:
sudo apt install -y php8.3-mysql php8.3-pgsql php8.3-sqlite3 php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip php8.3-intl
Rozszerzenia dla popularnych frameworków i CMS-ów
Poniższe rozszerzenia są często wymagane przez nowoczesne frameworki PHP i systemy CMS:
-
WordPress:
sudo apt install -y php8.3-mysql php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-imagick
-
Laravel/Symfony:
sudo apt install -y php8.3-bcmath php8.3-ctype php8.3-fileinfo php8.3-json php8.3-mbstring php8.3-pdo php8.3-tokenizer php8.3-xml
-
Drupal:
sudo apt install -y php8.3-gd php8.3-opcache php8.3-xml php8.3-mysql php8.3-mbstring php8.3-intl
Rozszerzenia dla zwiększenia wydajności
Dla aplikacji wymagających wysokiej wydajności, warto zainstalować następujące rozszerzenia:
sudo apt install -y php8.3-opcache php8.3-apcu
Aby aktywować OPcache, należy dostosować konfigurację w zależności od używanego serwera:
-
Dla Apache:
sudo nano /etc/php/8.3/apache2/conf.d/10-opcache.ini
-
Dla PHP-FPM:
sudo nano /etc/php/8.3/fpm/conf.d/10-opcache.ini
Zalecane ustawienia OPcache:
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
Po dokonaniu zmian, zrestartuj Apache lub PHP-FPM:
# Dla Apache
sudo systemctl restart apache2
# Dla PHP-FPM
sudo systemctl restart php8.3-fpm
✨ Pro Tip: Rozszerzenie APCu (Alternative PHP Cache) może znacząco zwiększyć wydajność aplikacji poprzez przechowywanie obiektów PHP w pamięci. Jest to szczególnie przydatne dla frameworków takich jak Symfony czy Drupal.
Tabela popularnych rozszerzeń PHP
Rozszerzenie | Przeznaczenie | Polecenie instalacji |
---|---|---|
mysql | Obsługa bazy MySQL | sudo apt install php8.3-mysql |
pgsql | Obsługa PostgreSQL | sudo apt install php8.3-pgsql |
sqlite3 | Obsługa SQLite | sudo apt install php8.3-sqlite3 |
curl | Obsługa transferu danych | sudo apt install php8.3-curl |
gd | Przetwarzanie grafiki | sudo apt install php8.3-gd |
mbstring | Obsługa wielobajtowych ciągów znaków | sudo apt install php8.3-mbstring |
xml | Przetwarzanie XML | sudo apt install php8.3-xml |
zip | Obsługa archiwów ZIP | sudo apt install php8.3-zip |
intl | Internacjonalizacja | sudo apt install php8.3-intl |
imagick | Zaawansowane przetwarzanie obrazów | sudo apt install php8.3-imagick |
opcache | Przyspieszenie wykonywania kodu | sudo apt install php8.3-opcache |
apcu | Cache obiektów w pamięci | sudo apt install php8.3-apcu |
redis | Integracja z Redis | sudo apt install php8.3-redis |
memcached | Integracja z Memcached | sudo apt install php8.3-memcached |
🔧 Konfiguracja i optymalizacja PHP 8.3
Po instalacji PHP warto dostosować jego ustawienia, aby zwiększyć wydajność i bezpieczeństwo aplikacji.
Podstawowe ustawienia bezpieczeństwa
Edytuj plik php.ini (dla Apache lub PHP-FPM) i dokonaj następujących zmian:
; Ukrywanie informacji o wersji PHP
expose_php = Off
; Wyłączanie niebezpiecznych funkcji
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
; Ograniczenie dostępu do plików
open_basedir = /var/www/:/tmp/
; Wyłączenie wyświetlania błędów na produkcji
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
Uwaga: Ustawienia
disable_functions
iopen_basedir
należy dostosować do potrzeb Twojej aplikacji. Zbyt restrykcyjne ustawienia mogą uniemożliwić działanie niektórych funkcjonalności.
Optymalizacja wydajności
Dla zwiększenia wydajności PHP, zalecamy następujące ustawienia:
; Zwiększenie limitu pamięci
memory_limit = 256M
; Optymalizacja garbage collector
zend.enable_gc = On
gc_probability = 1
gc_divisor = 100
; Buforowanie opcode
opcache.enable = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 4000
opcache.validate_timestamps = 1
opcache.revalidate_freq = 60
opcache.save_comments = 1
Konfiguracja PHP-FPM dla lepszej wydajności
Jeśli używasz PHP-FPM z Nginx, warto dostosować plik konfiguracyjny www.conf:
sudo nano /etc/php/8.3/fpm/pool.d/www.conf
Zalecane ustawienia:
; Dynamiczne zarządzanie procesami
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
; Buforowanie soketu
listen.backlog = 65536
; Konfiguracja slowlog
slowlog = /var/log/php-fpm/slowlog.log
request_slowlog_timeout = 5s
Po dokonaniu zmian, zrestartuj PHP-FPM:
sudo systemctl restart php8.3-fpm
✨ Pro Tip: Ustawienia pm.*
należy dostosować do specyfikacji serwera. Na serwerze z 4GB RAM, podane wartości są dobrym punktem wyjścia, ale dla serwerów z większą ilością pamięci, wartości można zwiększyć.
🔄 Obsługa wielu wersji PHP na jednym serwerze
Jedną z największych zalet korzystania z repozytorium Ondřeja Surýego jest możliwość instalacji wielu wersji PHP na jednym serwerze. Jest to szczególnie przydatne, gdy trzeba obsługiwać aplikacje wymagające różnych wersji PHP.
Instalacja dodatkowych wersji PHP
Aby zainstalować inne wersje PHP obok PHP 8.3:
# Instalacja PHP 7.4
sudo apt install -y php7.4 php7.4-fpm php7.4-common [pozostałe moduły]
# Instalacja PHP 8.0
sudo apt install -y php8.0 php8.0-fpm php8.0-common [pozostałe moduły]
# Instalacja PHP 8.2
sudo apt install -y php8.2 php8.2-fpm php8.2-common [pozostałe moduły]
Przełączanie domyślnej wersji PHP CLI
Aby zmienić domyślną wersję PHP używaną w linii komend:
sudo update-alternatives --config php
Pojawi się lista dostępnych wersji PHP. Wybierz numer odpowiadający wersji, której chcesz używać jako domyślnej.
Konfiguracja Apache dla wielu wersji PHP
Dla Apache możesz aktywować moduły PHP dla poszczególnych wersji i przełączać się między nimi:
# Wyłączenie aktualnego modułu PHP
sudo a2dismod php8.3
# Włączenie innej wersji
sudo a2enmod php7.4
# Restart Apache
sudo systemctl restart apache2
Alternatywnie, możesz używać różnych wersji PHP dla różnych wirtualnych hostów:
<VirtualHost *:80>
ServerName app1.example.com
DocumentRoot /var/www/app1
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php8.3-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
<VirtualHost *:80>
ServerName app2.example.com
DocumentRoot /var/www/app2
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
Konfiguracja Nginx dla wielu wersji PHP
W przypadku Nginx, konfiguracja wielu wersji PHP jest jeszcze prostsza:
server {
listen 80;
server_name app1.example.com;
root /var/www/app1;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
}
}
server {
listen 80;
server_name app2.example.com;
root /var/www/app2;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
❓ FAQ - Odpowiedzi na Twoje Pytania
Jakie są główne różnice między PHP 8.3 a poprzednimi wersjami?
PHP 8.3 wprowadza nowe funkcje jak typed class constants, dynamiczne pobieranie właściwości przy destrukturyzacji oraz ulepszenia readonly. Zawiera również optymalizacje wydajnościowe i poprawki błędów.
Czy mogę zainstalować PHP 8.3 obok starszej wersji PHP?
Tak, używając repozytorium Ondřeja Surýego możesz zainstalować wiele wersji PHP jednocześnie i łatwo przełączać się między nimi.
Jak sprawdzić, czy PHP działa poprawnie?
Utwórz plik PHP zawierający <?php phpinfo(); ?>
i otwórz go w przeglądarce. Możesz też użyć komendy php -v
w terminalu.
Jakie są zalecane moduły PHP dla WordPress?
Dla WordPress zaleca się: php-mysql, php-curl, php-gd, php-mbstring, php-xml, php-imagick, php-zip i php-intl.
Czy PHP 8.3 jest szybsze od poprzednich wersji?
Tak, PHP 8.3 wprowadza szereg optymalizacji wydajnościowych, które mogą przyspieszyć aplikacje o 5-30% w porównaniu do PHP 8.2, w zależności od rodzaju aplikacji.
Jak zabezpieczyć instalację PHP?
Kluczowe kroki to: regularnie aktualizuj PHP, odpowiednio skonfiguruj php.ini (ukrycie wersji, wyłączenie niebezpiecznych funkcji), używaj PHP-FPM w trybie socket zamiast TCP/IP, ogranicz dostęp do plików przez open_basedir.
✅ Checklista po instalacji PHP 8.3
Aby upewnić się, że Twoja instalacja PHP 8.3 działa optymalnie, przejdź przez tę listę kontrolną:
- 🔍 Sprawdź, czy PHP działa i wyświetla poprawną wersję (
php -v
) - 🔄 Zweryfikuj działanie PHP z serwerem WWW (Apache lub Nginx)
- 🔒 Dostosuj ustawienia bezpieczeństwa w php.ini
- 📊 Włącz i skonfiguruj OPcache dla lepszej wydajności
- 📝 Sprawdź logi PHP pod kątem błędów
- 🎓 Upewnij się, że wszystkie wymagane moduły są zainstalowane
- 📱 Przetestuj swoją aplikację z nową wersją PHP
🏁 Podsumowanie - Gotowy do działania
Instalacja PHP 8.3 na Ubuntu 24.04 z Apache lub Nginx to prosty proces, który otwiera drzwi do korzystania z najnowszych funkcji i ulepszeń wydajnościowych, jakie oferuje PHP. Dzięki odpowiedniej konfiguracji można stworzyć środowisko, które jest zarówno wydajne, jak i bezpieczne.
W tym przewodniku omówiliśmy:
- Przygotowanie systemu Ubuntu 24.04
- Instalację PHP 8.3 z serwerem Apache (stos LAMP)
- Instalację PHP 8.3 z serwerem Nginx i PHP-FPM (stos LEMP)
- Wybór i instalację popularnych rozszerzeń PHP
- Optymalizację i zabezpieczenie instalacji PHP
- Zarządzanie wieloma wersjami PHP na jednym serwerze
Pamiętaj, że prawidłowa konfiguracja PHP ma kluczowe znaczenie dla wydajności i bezpieczeństwa Twoich aplikacji webowych. Regularnie aktualizuj PHP do najnowszej wersji, aby korzystać z poprawek bezpieczeństwa i ulepszeń wydajności.
🚀 Potrzebujesz niezawodnego hostingu dla Twoich aplikacji PHP?
Sprawdź ofertę hostingu PHP w IQHost
Wybierz hosting zoptymalizowany pod PHP 8.3 i zapomnij o problemach z konfiguracją serwera!
Czy ten artykuł był pomocny?
Twoja strona WordPress działa wolno?
Sprawdź nasz hosting WordPress z ultraszybkimi dyskami NVMe i konfiguracją serwera zoptymalizowaną pod kątem wydajności. Doświadcz różnicy już dziś!
Sprawdź ofertę hostingu