15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
01.11.2024

Jak zmienić wersję PHP w swoim środowisku hostingowym (Kompletny przewodnik)

Zarządzanie wersją PHP jest jednym z najważniejszych zadań administracyjnych dla każdego właściciela witryny lub dewelopera. Niezależnie od tego, czy ulepszasz się, aby wykorzystać najnowsze ulepszenia wydajności, obniżasz wersję dla kompatybilności starszych aplikacji, czy też łatasz luki w zabezpieczeniach, wiedza na temat dokładnego przełączania wersji PHP w różnych środowiskach hostingowych jest umiejętnością niezbędną. Ten kompleksowy przewodnik przeprowadzi Cię przez każdą dostępną metodę — od graficznego interfejsu cPanel do narzędzi wiersza poleceń na hostingu VPS i serwerach dedykowanych.

Spis treści

  1. Dlaczego zarządzanie wersją PHP jest ważne
  2. Zrozumienie wersji PHP i kompatybilności
  3. Metoda 1: Zmiana wersji PHP za pośrednictwem cPanel (MultiPHP Manager)
  4. Metoda 2: Zmiana wersji PHP za pośrednictwem .htaccess (Apache)
  5. Metoda 3: Zmiana wersji PHP za pośrednictwem wiersza poleceń (VPS/Serwery dedykowane)
  6. Metoda 4: Zmiana wersji PHP za pośrednictwem php.ini
  7. Jak sprawdzić aktywną wersję PHP
  8. Typowe błędy po przełączeniu wersji PHP
  9. Najlepsze praktyki zarządzania wersją PHP
  10. Podsumowanie

1. Dlaczego zarządzanie wersją PHP jest ważne {#why-it-matters}

PHP obsługuje ponad 77% wszystkich witryn ze znanym językiem po stronie serwera, w tym główne platformy takie jak WordPress, Joomla, Drupal i Magento. Każde główne wydanie PHP wprowadza znaczące zmiany:

  • Wzrost wydajności: PHP 8.x jest dramatycznie szybsze niż PHP 5.x lub 7.x, dzięki kompilatorowi JIT (Just-In-Time).
  • Łatki bezpieczeństwa: Starsze wersje PHP ostatecznie osiągają koniec życia (EOL) i nie otrzymują już aktualizacji bezpieczeństwa, narażając Twoją witrynę na zagrożenia.
  • Kompatybilność aplikacji: Niektóre starsze wtyczki, motywy lub niestandardowe aplikacje zostały napisane dla określonych wersji PHP i mogą się zepsuć w nowszych wydaniach.
  • Zgodność hostingu: Wielu dostawców hostingu wymusza minimalne wymagania dotyczące wersji PHP, aby utrzymać standardy bezpieczeństwa serwera.

Brak proaktywnego zarządzania wersją PHP może spowodować uszkodzoną funkcjonalność, naruszenia bezpieczeństwa lub całkowitą niedostępność witryny. Zrozumienie, jak kontrolować to ustawienie — niezależnie od typu hostingu — jest niezbędne dla każdego poważnego administratora sieci.

2. Zrozumienie wersji PHP i kompatybilności {#understanding-versions}

Przed wprowadzeniem jakichkolwiek zmian ważne jest zrozumienie cyklu życia wydania PHP i sposobu strukturyzacji wersji.

Numeracja wersji PHP

PHP podąża za schematem wersjonowania MAJOR.MINOR.PATCH:

KomponentPrzykładZnaczenie
Major8Znaczące zmiany architektoniczne, możliwe zmiany przełomowe
Minor8.2Nowe funkcje, ulepszenia wstecz kompatybilne
Patch8.2.10Tylko poprawki błędów i łatki bezpieczeństwa

Cykl życia wsparcia PHP

Każda drobna wersja PHP otrzymuje:

  • Aktywne wsparcie przez około 2 lata (poprawki błędów + łatki bezpieczeństwa)
  • Wsparcie tylko bezpieczeństwa przez dodatkowy 1 rok
  • Koniec życia (EOL) po którym nie są wydawane żadne łatki

Aktualnie obsługiwane wersje PHP (od 2024–2025)

Wersja PHPStatusUwagi
PHP 8.3Aktywne wsparcieNajnowsze stabilne wydanie
PHP 8.2Aktywne wsparcieRekomendowane dla większości aplikacji
PHP 8.1Tylko bezpieczeństwoNadal szeroko stosowany
PHP 8.0EOLUnikaj — brak łatek bezpieczeństwa
PHP 7.4EOLTylko wsparcie starsze
PHP 7.3 i poniżejEOLZdecydowanie odradzane

> Zasada praktyczna: Zawsze uruchamiaj najwyższą wersję PHP, którą oficjalnie obsługuje Twoja aplikacja. Jeśli Twój CMS lub framework obsługuje PHP 8.2, nie ma powodu do uruchamiania PHP 7.4.

3. Metoda 1: Zmiana wersji PHP za pośrednictwem cPanel (MultiPHP Manager) {#cpanel-method}

cPanel jest najszerzej używanym panelem kontroli hostingu i zapewnia dwa wbudowane narzędzia do zarządzania wersją PHP: MultiPHP Manager (na poziomie serwera lub dla domeny) i MultiPHP INI Editor (do dostrajania ustawień PHP). Jeśli używasz VPS z cPanel, oba narzędzia są dostępne.

Krok 1: Zaloguj się do cPanel

  1. Otwórz przeglądarkę i przejdź do adresu URL logowania cPanel:
    https://yourdomain.com:2083 (bezpieczny, rekomendowany)
    https://yourdomain.com/cpanel
  • Lub bezpośredni IP: https://your-server-ip:2083
    1. Wpisz swoją nazwę użytkownika cPanel i hasło.
    2. Kliknij Zaloguj się.

    Krok 2: Otwórz MultiPHP Manager

    1. Na pulpicie nawigacyjnym cPanel przewiń do sekcji Oprogramowanie.
    2. Kliknij na MultiPHP Manager.

    > Alternatywa: Niektóre konfiguracje cPanel oznaczają to jako Wybierz wersję PHP, Konfiguracja PHP lub Selektor PHP (ten ostatni jest powszechny w hostingu współdzielonym opartym na CloudLinux). Interfejs może się nieznacznie różnić, ale proces jest taki sam.

    Krok 3: Wybierz domenę i wersję PHP

    W interfejsie MultiPHP Manager:

    1. Zobaczysz listę wszystkich domen i poddomen hostowanych na Twoim koncie.
    2. Zaznacz pole wyboru obok domeny, którą chcesz zmodyfikować.
    3. Z listy rozwijanej Wersja PHP u góry strony wybierz żądaną wersję PHP (np. PHP 8.2).
    4. Kliknij Zastosuj.

    > Ważne: Jeśli masz konto hostingu współdzielonego, dostępne wersje PHP są określane przez dostawcę hostingu. Jeśli potrzebujesz wersji, która nie jest wymieniona, skontaktuj się z zespołem wsparcia hosta lub rozważ uaktualnienie do planu hostingu VPS, gdzie masz pełną kontrolę nad zainstalowanymi wersjami PHP.

    Krok 4: (Opcjonalnie) Dostosuj ustawienia PHP za pośrednictwem MultiPHP INI Editor

    Po przełączeniu wersji może być konieczne dostosowanie wartości konfiguracji PHP:

    1. Wróć do sekcji Oprogramowanie w cPanel.
    2. Kliknij MultiPHP INI Editor.
    3. Wybierz domenę z listy rozwijanej.
    4. Zmodyfikuj wartości takie jak:
      memory_limit (np. 256M)
      upload_max_filesize (np. 64M)
      max_execution_time (np. 300)
      post_max_size (np. 64M)
      
      
      Kliknij Zastosuj, aby zapisać zmiany.
      
      Krok 5: Sprawdź zmianę
      Utwórz plik testowy, aby potwierdzić aktywną wersję PHP (pełne instrukcje znajdują się w sekcji 7).
      4. Metoda 2: Zmiana wersji PHP za pośrednictwem .htaccess (Apache) {#htaccess-method}
      Jeśli Twoje środowisko hostingowe uruchamia Apache, ale nie zapewnia graficznego selektora PHP, możesz kontrolować wersję PHP bezpośrednio za pośrednictwem pliku .htaccess. Ta metoda jest szczególnie przydatna na planach hostingu współdzielonego, gdzie dostęp na poziomie serwera jest ograniczony.
      Jak to działa
      Apache używa handlerów do określenia sposobu przetwarzania plików .php. Określając niestandardowy handler w .htaccess, instruujesz Apache, aby używał określonej wersji PHP dla Twojej witryny.
      Krok 1: Uzyskaj dostęp do pliku .htaccess
      Możesz edytować .htaccess za pośrednictwem:
      
      Menedżer plików cPanel: Przejdź do public_html, znajdź .htaccess, kliknij prawym przyciskiem myszy i wybierz Edytuj.
      Klient FTP/SFTP: Połącz się z serwerem i przejdź do katalogu głównego witryny (zwykle public_html lub www).
      Wiersz poleceń SSH: nano /home/username/public_html/.htaccess

      > Uwaga: .htaccess to plik ukryty. W kliencie FTP włącz „Pokaż pliki ukryte”. W Menedżerze plików cPanel zaznacz „Pokaż pliki ukryte (dotfiles)” w ustawieniach w prawym górnym rogu.

      Krok 2: Dodaj dyrektywę handlera PHP

      Dodaj jedną z poniższych linii do pliku .htaccess, w zależności od konwencji nazewnictwa handlera PHP na serwerze:

      Dla PHP 8.2:

      AddHandler application/x-httpd-php82 .php

      Dla PHP 8.1:

      AddHandler application/x-httpd-php81 .php

      Dla PHP 7.4 (starsze):

      AddHandler application/x-httpd-php74 .php

      Alternatywna składnia (używana na niektórych hostach):

      # Using suPHP or FastCGI
      Action php-cgi /cgi-bin/php82
      AddHandler php-cgi .php

      > Ważne: Dokładna nazwa handlera (x-httpd-php82, x-httpd-php81 itd.) zależy od sposobu, w jaki dostawca hostingu skonfigurował PHP na swoich serwerach. Jeśli powyższe nie działa, sprawdź dokumentację hosta lub skontaktuj się z pomocą techniczną, aby uzyskać prawidłowe nazwy handlerów.

      Krok 3: Zapisz i przetestuj

      Zapisz plik .htaccess i przetestuj witrynę. Jeśli zobaczysz błąd 500 wewnętrznego serwera, nazwa handlera jest prawdopodobnie niepoprawna — usuń linię i spróbuj alternatywnej składni.

      5. Metoda 3: Zmiana wersji PHP za pośrednictwem wiersza poleceń (VPS/Serwery dedykowane) {#cli-method}

      Jeśli zarządzasz własnymi serwerami dedykowanymi lub VPS z dostępem root, masz pełną kontrolę nad instalacją PHP i przełączaniem wersji. To jest najmocniejsza i najbardziej elastyczna metoda.

      Wymagania wstępne

      • Dostęp root lub sudo do serwera
      • Klient SSH (Terminal na macOS/Linux, PuTTY lub Windows Terminal na Windows)
      • Podstawowa znajomość operacji wiersza poleceń Linux

      Ubuntu / Debian — Korzystanie z update-alternatives

      Systemy oparte na Ubuntu i Debian używają systemu update-alternatives do zarządzania wieloma wersjami PHP jednocześnie.

      #### Krok 1: Dodaj repozytorium PHP Ondřeja Surého

      Ten PPA zapewnia wiele wersji PHP dla Ubuntu/Debian:

      sudo apt update
      sudo apt install -y software-properties-common
      sudo add-apt-repository ppa:ondrej/php
      sudo apt update

      #### Krok 2: Zainstaluj żądaną wersję PHP

      # Install PHP 8.2 and common extensions
      sudo apt install -y php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-curl 
          php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-bcmath
      
      # Install PHP 8.1 if needed
      sudo apt install -y php8.1 php8.1-cli php8.1-fpm php8.1-mysql

      #### Krok 3: Przełącz domyślną wersję PHP (CLI)

      # View all registered PHP alternatives
      sudo update-alternatives --list php
      
      # Switch to PHP 8.2
      sudo update-alternatives --set php /usr/bin/php8.2
      
      # Or use the interactive selector
      sudo update-alternatives --config php

      Interaktywny selektor wyświetli coś w rodzaju:

      There are 3 choices for the alternative php (providing /usr/bin/php).
      
        Selection    Path             Priority   Status
      ------------------------------------------------------------
      * 0            /usr/bin/php8.2   82        auto mode
        1            /usr/bin/php7.4   74        manual mode
        2            /usr/bin/php8.1   81        manual mode
        3            /usr/bin/php8.2   82        manual mode
      
      Press <enter> to keep the current choice[*], or type selection number:

      Wpisz numer odpowiadający żądanej wersji i naciśnij Enter.

      #### Krok 4: Przełącz wersję PHP dla Apache (mod_php)

      # Disable current PHP module (e.g., PHP 8.1)
      sudo a2dismod php8.1
      
      # Enable new PHP module (e.g., PHP 8.2)
      sudo a2enmod php8.2
      
      # Restart Apache
      sudo systemctl restart apache2

      #### Krok 5: Przełącz wersję PHP dla Nginx (PHP-FPM)

      W przypadku Nginx PHP jest obsługiwany za pośrednictwem PHP-FPM. Zaktualizuj blok serwera Nginx, aby wskazywał na prawidłowe gniazdo FPM:

      # In your Nginx server block configuration
      location ~ .php$ {
          fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
          fastcgi_index index.php;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      }

      Następnie uruchom ponownie zarówno PHP-FPM, jak i Nginx:

      sudo systemctl restart php8.2-fpm
      sudo systemctl restart nginx

      CentOS / RHEL / AlmaLinux / Rocky Linux — Korzystanie z repozytorium SCL lub Remi

      #### Opcja A: Korzystanie z Software Collections (SCL) — CentOS 7

      # Install the SCL repository
      sudo yum install -y centos-release-scl
      
      # Install PHP 7.4 via SCL
      sudo yum install -y rh-php74 rh-php74-php-fpm rh-php74-php-mysqlnd
      
      # Enable PHP 7.4 for the current session
      sudo scl enable rh-php74 bash
      
      # Verify
      php --version

      > Uwaga: Zmiany SCL są specyficzne dla sesji. Aby uczynić je trwałymi dla użytkownika, dodaj source /opt/rh/rh-php74/enable do ~/.bashrc.

      #### Opcja B: Korzystanie z repozytorium Remi — CentOS 7/8, AlmaLinux, Rocky Linux

      # Install EPEL and Remi repositories
      sudo dnf install -y epel-release
      sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm  # For RHEL 8/AlmaLinux 8
      
      # List available PHP streams
      sudo dnf module list php
      
      # Reset current PHP module
      sudo dnf module reset php
      
      # Enable PHP 8.2 stream
      sudo dnf module enable php:remi-8.2
      
      # Install PHP 8.2
      sudo dnf install -y php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-zip
      
      # Verify
      php --version

      Przełączanie PHP dla poszczególnych witryn (wersja PHP dla każdej witryny)

      Na serwerach obsługujących wiele witryn internetowych często potrzebujesz różnych wersji PHP dla każdej witryny. Najczystszym podejściem jest uruchamianie wielu pul PHP-FPM:

      # Start PHP-FPM for multiple versions
      sudo systemctl start php7.4-fpm
      sudo systemctl start php8.1-fpm
      sudo systemctl start php8.2-fpm

      Następnie skonfiguruj każdy wirtualny host Nginx, aby używał innego gniazda FPM:

      # Site A — PHP 8.2
      server {
          server_name site-a.com;
          root /var/www/site-a;
          location ~ .php$ {
              fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
          }
      }
      
      # Site B — PHP 7.4 (legacy application)
      server {
          server_name site-b.com;
          root /var/www/site-b;
          location ~ .php$ {
              fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
          }
      }

      6. Metoda 4: Zmiana wersji PHP za pośrednictwem php.ini {#phpini-method}

      W niektórych środowiskach hostingowych, szczególnie tych używających handlerów PHP CGI lub FastCGI, możesz wpłynąć na zachowanie PHP — a czasami nawet na wersję — za pośrednictwem niestandardowego pliku php.ini umieszczonego w katalogu głównym witryny.

      Tworzenie niestandardowego php.ini

      1. Utwórz plik o nazwie php.ini w katalogu głównym witryny (public_html).
      2. Dodaj dyrektywy konfiguracji:
      ; Custom PHP configuration
      memory_limit = 256M
      upload_max_filesize = 64M
      post_max_size = 64M
      max_execution_time = 300
      max_input_vars = 3000
      date.timezone = "UTC"

      > Uwaga: Ta metoda kontroluje ustawienia PHP, niekoniecznie wersję PHP. Wybór wersji za pośrednictwem php.ini jest możliwy tylko w określonych konfiguracjach hostingu. Aby uzyskać pełną kontrolę wersji, użyj metod cPanel, .htaccess lub wiersza poleceń opisanych powyżej.

      7. Jak sprawdzić aktywną wersję PHP {#verify}

      Po wprowadzeniu jakichkolwiek zmian zawsze sprawdź, czy prawidłowa wersja PHP jest aktywna. Istnieje kilka sposobów, aby to zrobić:

      Metoda A: Utwórz stronę testową phpinfo()

      1. Utwórz nowy plik o nazwie phpinfo.php w katalogu głównym witryny (public_html).
      2. Dodaj następującą zawartość:
      <?php
      phpinfo();
      ?>
      1. Przejdź do https://yourdomain.com/phpinfo.php w przeglądarce.
      2. Strona wyświetli kompleksowe informacje o konfiguracji PHP. Wersja PHP jest wyświetlana na samej górze.

      > Ostrzeżenie bezpieczeństwa: Usuń ten plik natychmiast po testowaniu. Dane wyjściowe phpinfo() ujawniają wrażliwe szczegóły konfiguracji serwera, które mogą pomóc atakującym.

      Metoda B: Sprawdź za pośrednictwem wiersza poleceń (SSH)

      php --version
      # or
      php -v

      Oczekiwane dane wyjściowe:

      PHP 8.2.10 (cli) (built: Sep  5 2023 08:12:49) (NTS)
      Copyright (c) The PHP Group
      Zend Engine v4.2.10, Copyright (c) Zend Technologies
          with Zend OPcache v8.2.10, Copyright (c), by Zend Technologies

      Metoda C: Sprawdź za pośrednictwem prostego skryptu PHP

      Aby uzyskać mniej szczegółową kontrolę, użyj tego minimalnego skryptu zamiast pełnego phpinfo():

      <?php
      echo 'PHP Version: ' . PHP_VERSION;
      echo '<br>PHP Major Version: ' . PHP_MAJOR_VERSION;
      echo '<br>PHP Minor Version: ' . PHP_MINOR_VERSION;
      ?>

      Metoda D: Sprawdź za pośrednictwem panelu administracyjnego WordPress (dla witryn WordPress)

      Na pulpicie nawigacyjnym WordPress:

      1. Przejdź do Narzędzia → Kondycja witryny.
      2. Kliknij kartę Informacje.
      3. Rozwiń sekcję Serwer.
      4. Poszukaj wersji PHP.

      8. Typowe błędy po przełączeniu wersji PHP {#common-errors}

      Przełączenie wersji PHP może czasami powodować problemy. Oto najczęstsze problemy i sposoby ich rozwiązania:

      Błąd 1: Biały ekran śmierci (WSOD) lub pusta strona

      Przyczyna: Wtyczka, motyw lub niestandardowy kod używa składni lub funkcji, które są niezgodne z nową wersją PHP.

      Rozwiązanie:

      • Włącz tryb debugowania WordPress, dodając do wp-config.php:
        define('WP_DEBUG', true);
        define('WP_DEBUG_LOG', true);
        define('WP_DEBUG_DISPLAY', false);
      • Sprawdź /wp-content/debug.log w poszukiwaniu konkretnych komunikatów o błędach.
      • Dezaktywuj wszystkie wtyczki i przełącz się na motyw domyślny, aby wyizolować problem.

      Błąd 2: Błąd 500 wewnętrznego serwera

      Przyczyna: Często spowodowany nieprawidłowym handlerem PHP w .htaccess lub rozszerzeniem PHP, które nie jest zainstalowane dla nowej wersji.

      Rozwiązanie:

      • Usuń lub popraw dyrektywę AddHandler w .htaccess.
      • Sprawdź dziennik błędów serwera: tail -f /var/log/apache2/error.log lub tail -f /var/log/nginx/error.log.
      • Upewnij się, że wymagane rozszerzenia PHP są zainstalowane dla nowej wersji.

      Błąd 3: „Wywołanie niezdefiniowanej funkcji” lub „Klasa nie znaleziona”

      Przyczyna: Rozszerzenie PHP wymagane przez aplikację (np. php-gd, php-mbstring, php-xml) nie jest zainstalowane dla nowej wersji PHP.

      Rozwiązanie:

      # Ubuntu/Debian — install missing extensions for PHP 8.2
      sudo apt install php8.2-gd php8.2-mbstring php8.2-xml php8.2-curl php8.2-zip
      
      # Restart web server
      sudo systemctl restart apache2  # or nginx

      Błąd 4: Ostrzeżenia dotyczące przestarzałych funkcji

      Przyczyna: Twój kod używa funkcji, które zostały wycofane w starszych wersjach PHP i usunięte w nowszych (np. funkcje mysql_* usunięte w PHP 7.0).

      Rozwiązanie:

      • Zaktualizuj kod lub wtyczki, aby używać nowoczesnych odpowiedników (np. mysqli_* lub PDO).
      • Jeśli natychmiastowe zmiany kodu nie są możliwe, rozważ pozostanie na kompatybilnej wersji PHP na chwilę, podczas gdy planujesz uaktualnienie.
      15%

      Zaoszczędź 15% na wszystkich usługach hostingowych

      Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

      Użyj kodu:

      Skills
      Rozpocznij