Cum să schimbați versiunea PHP pe mediul dvs. de găzduire (Ghid complet)
Gestionarea versiunii PHP este una dintre cele mai critice sarcini administrative pentru orice proprietar sau dezvoltator de site web. Indiferent dacă faci upgrade pentru a profita de cele mai recente îmbunătățiri de performanță, downgrade pentru compatibilitatea aplicațiilor legacy sau patch-uri de vulnerabilități de securitate, știind exact cum să comuti versiunile PHP în diferite medii de hosting este o abilitate esențială. Acest ghid cuprinzător te ghidează prin fiecare metodă disponibilă — de la interfața grafică a cPanel la instrumentele din linia de comandă pe VPS Hosting și servere dedicate.
Cuprins
- De ce contează gestionarea versiunii PHP
- Înțelegerea versiunilor PHP și compatibilității
- Metoda 1: Schimbarea versiunii PHP prin cPanel (MultiPHP Manager)
- Metoda 2: Schimbarea versiunii PHP prin .htaccess (Apache)
- Metoda 3: Schimbarea versiunii PHP prin linia de comandă (VPS/Servere dedicate)
- Metoda 4: Schimbarea versiunii PHP prin php.ini
- Cum să verifici versiunea PHP activă
- Erori comune după comutarea versiunilor PHP
- Cele mai bune practici pentru gestionarea versiunii PHP
- Concluzie
1. De ce contează gestionarea versiunii PHP {#why-it-matters}
PHP alimentează peste 77% din toate site-urile web cu un limbaj de programare server-side cunoscut, inclusiv platforme majore precum WordPress, Joomla, Drupal și Magento. Fiecare versiune majoră PHP introduce schimbări semnificative:
- Câștiguri de performanță: PHP 8.x este dramatic mai rapid decât PHP 5.x sau 7.x, datorită compilatorului JIT (Just-In-Time).
- Patch-uri de securitate: Versiunile mai vechi de PHP ajung în cele din urmă la End of Life (EOL) și nu mai primesc actualizări de securitate, lăsând site-ul tău expus.
- Compatibilitate aplicației: Unele plugin-uri mai vechi, teme sau aplicații personalizate au fost scrise pentru versiuni specifice de PHP și pot se rupe pe versiuni mai noi.
- Conformitate hosting: Mulți furnizori de hosting impun cerințe minime de versiune PHP pentru a menține standardele de securitate ale serverului.
Negestiunea proactivă a versiunii PHP poate duce la funcționalitate întreruptă, breșe de securitate sau chiar downtime complet al site-ului. Înțelegerea modului de control al acestei setări — indiferent de tipul tău de hosting — este non-negociabilă pentru orice administrator web serios.
2. Înțelegerea versiunilor PHP și compatibilității {#understanding-versions}
Înainte de a face orice schimbări, este important să înțelegi ciclul de viață al versiunilor PHP și cum sunt structurate versiunile.
Numerotarea versiunilor PHP
PHP urmează o schemă de versioning MAJOR.MINOR.PATCH:
| Componentă | Exemplu | Semnificație |
|---|---|---|
| Major | 8 | Schimbări arhitecturale semnificative, posibile schimbări care rupe compatibilitatea |
| Minor | 8.2 | Noi funcții, îmbunătățiri compatibile cu versiunile anterioare |
| Patch | 8.2.10 | Doar corecturi de erori și patch-uri de securitate |
Ciclul de viață al suportului PHP
Fiecare versiune minoră de PHP primește:
- Suport activ pentru aproximativ 2 ani (corecturi de erori + patch-uri de securitate)
- Suport doar pentru securitate pentru încă 1 an
- End of Life (EOL) după care nu se mai lansează patch-uri
Versiuni PHP suportate în prezent (din 2024–2025)
| Versiunea PHP | Status | Note |
|---|---|---|
| PHP 8.3 | Suport activ | Cea mai recentă versiune stabilă |
| PHP 8.2 | Suport activ | Recomandat pentru majoritatea aplicațiilor |
| PHP 8.1 | Doar securitate | Încă utilizat pe scară largă |
| PHP 8.0 | EOL | Evită — fără patch-uri de securitate |
| PHP 7.4 | EOL | Suport legacy doar |
| PHP 7.3 și mai jos | EOL | Puternic descurajat |
> Regula de bază: Rulează întotdeauna cea mai înaltă versiune de PHP pe care aplicația ta o suportă oficial. Dacă CMS-ul sau framework-ul tău suportă PHP 8.2, nu există niciun motiv să rulezi PHP 7.4.
3. Metoda 1: Schimbarea versiunii PHP prin cPanel (MultiPHP Manager) {#cpanel-method}
cPanel este cel mai utilizat panou de control de hosting și oferă două instrumente încorporate pentru gestionarea versiunilor PHP: MultiPHP Manager (la nivel de server sau per domeniu) și MultiPHP INI Editor (pentru ajustarea fină a setărilor PHP). Dacă folosești un VPS cu cPanel, ambele instrumente sunt disponibile pentru tine.
Pasul 1: Conectează-te la cPanel
- Deschide browserul și navighează la URL-ul tău de conectare cPanel:
https://yourdomain.com:2083 (sigur, recomandat)
https://yourdomain.com/cpanelhttps://your-server-ip:2083- Introdu numele de utilizator cPanel și parola.
- Fă clic pe Log In.
Pasul 2: Deschide MultiPHP Manager
- În panoul de control cPanel, derulează la secțiunea Software.
- Fă clic pe MultiPHP Manager.
> Alternativă: Unele configurații cPanel etichetează aceasta ca Select PHP Version, PHP Config, sau PHP Selector (acesta din urmă este comun pe hosting-ul bazat pe CloudLinux). Interfața poate diferi ușor, dar procesul este același.
Pasul 3: Selectează domeniul și versiunea PHP
În interfața MultiPHP Manager:
- Vei vedea o listă cu toate domeniile și subdomeniile găzduite pe contul tău.
- Bifează caseta de selectare lângă domeniul pe care dorești să-l modifici.
- Din lista derulantă PHP Version din partea de sus a paginii, selectează versiunea PHP dorită (de ex.,
PHP 8.2). - Fă clic pe Apply.
> Important: Dacă ești pe un cont de hosting partajat, versiunile PHP disponibile sunt determinate de furnizorul tău de hosting. Dacă ai nevoie de o versiune care nu este listată, contactează echipa de suport a gazdei tale sau ia în considerare upgrade-ul la un plan VPS Hosting unde ai control complet asupra versiunilor PHP instalate.
Pasul 4: (Opțional) Personalizează setările PHP prin MultiPHP INI Editor
După comutarea versiunilor, poate fi necesar să ajustezi valorile configurației PHP:
- Revino la secțiunea Software din cPanel.
- Fă clic pe MultiPHP INI Editor.
- Selectează domeniul din lista derulantă.
- Modifică valori cum ar fi:
memory_limit (de ex., 256M)
upload_max_filesize (de ex., 64M)
max_execution_time (de ex., 300)
post_max_size (de ex., 64M)
Fă clic pe Apply pentru a salva modificările.
Pasul 5: Verifică schimbarea
Creează un fișier de test pentru a confirma versiunea PHP activă (vezi Secțiunea 7 pentru instrucțiuni complete).
4. Metoda 2: Schimbarea versiunii PHP prin .htaccess (Apache) {#htaccess-method}
Dacă mediul tău de hosting rulează Apache dar nu oferă un selector grafic PHP, poți controla versiunea PHP direct prin fișierul tău .htaccess. Această metodă este deosebit de utilă pe planurile Shared Web Hosting unde accesul la nivel de server este restricționat.
Cum funcționează
Apache folosește handler-e pentru a determina cum sunt procesate fișierele .php. Prin specificarea unui handler personalizat în .htaccess, indici Apache-ului să folosească o versiune specifică de PHP pentru site-ul tău.
Pasul 1: Accesează fișierul .htaccess
Poți edita .htaccess prin:
cPanel File Manager: Navighează la public_html, găsește .htaccess, fă clic dreapta și selectează Edit.
Client FTP/SFTP: Conectează-te la serverul tău și navighează la rădăcina web (de obicei public_html sau www).
Linia de comandă SSH: nano /home/username/public_html/.htaccess> Notă: .htaccess este un fișier ascuns. În clientul FTP, activează „Show Hidden Files”. În File Manager cPanel, bifează „Show Hidden Files (dotfiles)” în setările din dreapta sus.
Pasul 2: Adaugă directiva handler PHP
Adaugă una dintre următoarele linii la fișierul tău .htaccess, în funcție de convenția de denumire a handler-ului PHP al serverului tău:
Pentru PHP 8.2:
AddHandler application/x-httpd-php82 .phpPentru PHP 8.1:
AddHandler application/x-httpd-php81 .phpPentru PHP 7.4 (legacy):
AddHandler application/x-httpd-php74 .phpSintaxă alternativă (utilizată pe unele gazde):
# Using suPHP or FastCGI
Action php-cgi /cgi-bin/php82
AddHandler php-cgi .php> Important: Numele exact al handler-ului (x-httpd-php82, x-httpd-php81, etc.) depinde de modul în care furnizorul tău de hosting a configurat PHP pe serverele sale. Dacă cele de mai sus nu funcționează, verifică documentația gazdei tale sau contactează suportul pentru numele handler-elor corecte.
Pasul 3: Salvează și testează
Salvează fișierul .htaccess și testează site-ul. Dacă vezi o 500 Internal Server Error, numele handler-ului este probabil incorect — elimină linia și încearcă o sintaxă alternativă.
5. Metoda 3: Schimbarea versiunii PHP prin linia de comandă (VPS/Servere dedicate) {#cli-method}
Dacă gestionezi propriile Servere dedicate sau un VPS cu acces root, ai control complet asupra instalării și comutării versiunilor PHP. Aceasta este cea mai puternică și flexibilă metodă.
Cerințe preliminare
- Acces root sau sudo la serverul tău
- Client SSH (Terminal pe macOS/Linux, PuTTY sau Windows Terminal pe Windows)
- Familiaritate de bază cu operațiile din linia de comandă Linux
Ubuntu / Debian — Folosind update-alternatives
Sistemele bazate pe Ubuntu și Debian folosesc sistemul update-alternatives pentru a gestiona mai multe versiuni de PHP simultan.
#### Pasul 1: Adaugă depozitul PHP Ondřej Surý
Acest PPA oferă mai multe versiuni de PHP pentru Ubuntu/Debian:
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update#### Pasul 2: Instalează versiunea PHP dorită
# 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#### Pasul 3: Comută versiunea PHP implicită (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 phpSelectorul interactiv va afișa ceva de genul:
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:Introdu numărul corespunzător versiunii dorite și apasă Enter.
#### Pasul 4: Comută versiunea PHP pentru 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#### Pasul 5: Comută versiunea PHP pentru Nginx (PHP-FPM)
Pentru Nginx, PHP este gestionat prin PHP-FPM. Actualizează blocul tău de server Nginx pentru a indica socketul FPM corect:
# 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;
}Apoi repornește atât PHP-FPM cât și Nginx:
sudo systemctl restart php8.2-fpm
sudo systemctl restart nginxCentOS / RHEL / AlmaLinux / Rocky Linux — Folosind depozitul SCL sau Remi
#### Opțiunea A: Folosind 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> Notă: Modificările SCL sunt specifice sesiunii. Pentru a le face permanente pentru un utilizator, adaugă source /opt/rh/rh-php74/enable la ~/.bashrc.
#### Opțiunea B: Folosind depozitul 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 --versionComutarea PHP pentru site-uri individuale (versiune PHP per site)
Pe serverele care găzduiesc mai multe site-uri web, ai adesea nevoie de versiuni diferite de PHP per site. Abordarea cea mai curată este să rulezi mai multe pool-uri 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-fpmApoi configurează fiecare gazdă virtuală Nginx pentru a folosi un socket FPM diferit:
# 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: Schimbarea versiunii PHP prin php.ini {#phpini-method}
În unele medii de hosting, în special cele care folosesc handler-e PHP CGI sau FastCGI, poți influența comportamentul PHP — și uneori chiar versiunea — printr-un fișier php.ini personalizat plasat în directorul rădăcină al site-ului tău.
Crearea unui php.ini personalizat
- Creează un fișier numit
php.iniîn directorul rădăcină al site-ului tău (public_html). - Adaugă directivele tale de configurare:
; 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"> Notă: Această metodă controlează setările PHP, nu neapărat versiunea PHP în sine. Selectarea versiunii prin php.ini este posibilă doar pe configurații de hosting specifice. Pentru control complet al versiunilor, folosește metodele cPanel, .htaccess sau linia de comandă descrise mai sus.
7. Cum să verifici versiunea PHP activă {#verify}
După orice schimbări, verifică întotdeauna că versiunea corectă de PHP este activă. Există mai multe moduri de a face acest lucru:
Metoda A: Creează o pagină de test phpinfo()
- Creează un fișier nou numit
phpinfo.phpîn directorul rădăcină web (public_html). - Adaugă următorul conținut:
<?php
phpinfo();
?>- Navighează la
https://yourdomain.com/phpinfo.phpîn browserul tău. - Pagina va afișa informații cuprinzătoare despre configurația PHP. Versiunea PHP este afișată în partea de sus.
> Avertisment de securitate: Șterge acest fișier imediat după testare. Ieșirea phpinfo() dezvăluie detalii sensibile de configurare a serverului care ar putea ajuta atacatorii.
Metoda B: Verifică prin linia de comandă (SSH)
php --version
# or
php -vIeșire așteptată:
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 TechnologiesMetoda C: Verifică prin script PHP simplu
Pentru o verificare mai puțin detaliată, folosește acest script minimal în loc de phpinfo() complet:
<?php
echo 'PHP Version: ' . PHP_VERSION;
echo '<br>PHP Major Version: ' . PHP_MAJOR_VERSION;
echo '<br>PHP Minor Version: ' . PHP_MINOR_VERSION;
?>Metoda D: Verifică prin admin WordPress (pentru site-uri WordPress)
În panoul de control WordPress:
- Mergi la Tools → Site Health.
- Fă clic pe fila Info.
- Extinde secțiunea Server.
- Caută PHP version.
8. Erori comune după comutarea versiunilor PHP {#common-errors}
Comutarea versiunilor PHP poate uneori cauza probleme. Iată cele mai frecvente probleme și cum să le rezolvi:
Eroare 1: White Screen of Death (WSOD) sau pagină goală
Cauză: Un plugin, temă sau cod personalizat folosește sintaxă sau funcții care sunt incompatibile cu noua versiune de PHP.
Soluție:
- Activează modul de debug WordPress adăugând la
wp-config.php:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);- Verifică
/wp-content/debug.logpentru mesaje de eroare specifice. - Dezactivează toate plugin-urile și comută la o temă implicită pentru a izola problema.
Eroare 2: 500 Internal Server Error
Cauză: Adesea cauzată de un handler PHP incorect în .htaccess, sau o extensie PHP care nu este instalată pentru noua versiune.
Soluție:
- Elimină sau corectează directiva
AddHandlerîn.htaccess. - Verifică jurnalul de erori al serverului:
tail -f /var/log/apache2/error.logsautail -f /var/log/nginx/error.log. - Asigură-te că extensiile PHP necesare sunt instalate pentru noua versiune.
Eroare 3: „Call to undefined function” sau „Class not found”
Cauză: O extensie PHP necesară aplicației tale (de ex., php-gd, php-mbstring, php-xml) nu este instalată pentru noua versiune de PHP.
Soluție:
# 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 nginxEroare 4: Avertismente despre funcții depreciate
Cauză: Codul tău folosește funcții care au fost depreciate în versiunile mai vechi de PHP și eliminate în versiuni mai noi (de ex., funcții mysql_* eliminate în PHP 7.0).
Soluție:
- Actualizează codul sau plugin-urile pentru a folosi echivalente moderne (de ex.,
mysqli_*sau PDO). - Dacă schimbările de cod imediate nu sunt posibile, ia în considerare rămânerea pe o versiune compatibilă de PHP temporar în timp ce planifici upgrade-ul.
Eroare 5: Versiunea PHP nu se schimbă în ciuda urmării pașilor
Cauză: Pot fi în vigoare mai multe configurații PHP (de ex., CLI vs. server web), sau cache-ul servește răspunsuri vechi.
Soluție:
- Șterge cache-ul browserului și orice cache-uri la nivel de server (OPcache, Redis, Varnish).
- Repornește serverul web:
sudo systemctl restart apache2sausudo systemctl restart nginx. - Confirmă că editezi fișierul
.htaccesscorect sau fișierul de configurare pentru domeniul corect.
9. Cele mai bune practici pentru gestionarea versiunii PHP {#best-practices}
Urmează aceste linii directoare pentru a menține un mediu PHP sănătos, sigur și performant:
1. Testează întotdeauna într-un mediu de staging mai întâi
Nu comuta niciodată versiunile PHP direct pe un site de producție live. Configurează un mediu de staging — fie un subdomeniu, fie un server separat — și testează aplicația ta temeinic înainte de a aplica modificări producției.
2. Ține PHP actualizat
Abonează-te la anunțurile oficiale de securitate ale PHP și planifică upgrade-urile înainte ca versiunea ta actuală să ajungă la End of Life. Rularea versiunilor PHP EOL este una dintre cele mai frecvente cauze ale compromisurilor site-urilor web.
3. Auditează plugin-urile și dependențele înainte de upgrade
Înainte de a face upgrade la PHP, verifică compatibilitatea:
- Toate plugin-urile și temele CMS instalate
- Dependențele Composer (
composer.json) - Codul aplicației personalizate
Folosește instrumente cum ar fi PHPCompatibility (un set de reguli PHP_CodeSniffer) pentru a scana codul tău pentru probleme de compatibilitate.
4. Ține extensiile PHP în sincronizare
Când comuti versiunile de PHP, reinstalează întotdeauna toate extensiile necesare pentru noua versiune. O extensie lipsă este
