</> HTML5Advent
ENFRESDEITPT

// hosting · Web Platform Advent #15

Hosting PHP spiegato: shared vs VPS, versioni e prestazioni

Cosa cercare in un hosting PHP — shared vs VPS, versioni ed estensioni di PHP, deployment, .htaccess e prestazioni con OPcache — senza il rumore del marketing.

Codice sorgente PHP su uno schermo scuro, con istruzioni version_compare e require_once

PHP alimenta ancora una grande fetta del web, e ospitarlo è terreno battuto — il che è esattamente il motivo per cui le offerte sembrano tutte uguali e le vere differenze si nascondono nei dettagli. Questa guida copre i criteri che contano davvero: il compromesso shared vs VPS, versioni ed estensioni di PHP, come fai il deploy, cosa controlla .htaccess e le manopole delle prestazioni che vale la pena conoscere.

Shared hosting vs VPS

La prima decisione è quanto è isolato il tuo ambiente.

  • Shared hosting — il tuo sito risiede insieme a molti altri su una macchina, gestita al posto tuo (PHP, web server, spesso un pannello di controllo). Il più economico e semplice; cedi il controllo sulla versione di PHP, sulle estensioni e sulla configurazione del server, e condividi le risorse con i vicini.
  • VPS — una fetta dedicata di un server con accesso root. Scegli la versione di PHP, installi qualsiasi estensione, ottimizzi il web server e non sei influenzato dagli altri inquilini — ma sei responsabile di aggiornamenti e sicurezza.

Per un piccolo sito o un CMS standard, lo shared hosting di solito basta. Punta a un VPS quando hai bisogno di una build PHP specifica, estensioni personalizzate, prestazioni più prevedibili o pieno controllo sullo stack.

Le versioni di PHP contano

La versione di PHP non è un dettaglio — le release più recenti sono sensibilmente più veloci e, cosa cruciale, ricevono ancora correzioni di sicurezza. Eseguire una versione a fine vita significa niente più patch. Verifica sempre quali versioni offre un host e se puoi cambiarla facilmente. Puoi leggere la versione in esecuzione dal codice o dalla CLI:

<?php
echo phpversion();        // e.g. "8.3.x"
// or a full report:
phpinfo();
php -v

Un buon host ti permette di selezionare la versione di PHP per sito (spesso nel pannello di controllo) e mantiene disponibile una gamma di versioni supportate, così puoi aggiornare secondo i tuoi tempi.

Estensioni: controlla prima di impegnarti

La funzionalità di PHP è suddivisa tra estensioni, e la tua app probabilmente dipende da diverse — un driver di database, la gestione delle immagini e così via. Quelle comuni da verificare che un host fornisca:

  • pdo_mysql / mysqli — connettività MySQL/MariaDB.
  • mbstring — gestione di stringhe multibyte, richiesta da molti framework.
  • gd o imagick — elaborazione delle immagini.
  • curl, openssl, zip, intl — richieste HTTP, crittografia, archivi, localizzazione.

Elenca ciò che è effettivamente caricato sul server con:

php -m
Mani che digitano su un laptop che mostra codice sorgente PHP in un editor di codice
Controllare presto la tua versione di PHP e le estensioni caricate ti risparmia di fare il deploy su un server su cui la tua applicazione non può effettivamente girare.

Deployment e .htaccess

Sullo shared hosting in genere fai il deploy caricando file (SFTP) o facendo il pull da Git nella web root; alcuni host aggiungono uno step di deploy dal pannello. Su Apache, il file .htaccess nella tua web root configura il comportamento per-directory senza toccare la configurazione principale del server — utile per URL puliti, redirect e header di caching. Un pattern comune instrada tutte le richieste a un front controller:

# .htaccess — route everything to index.php (front controller)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

Nota che .htaccess è una funzionalità di Apache. Su Nginx le regole equivalenti risiedono nella configurazione del server, che sullo shared hosting potresti non controllare — un altro motivo per sapere quale web server esegue il tuo host.

Prestazioni: OPcache

Il singolo maggior guadagno di prestazioni in PHP è OPcache, che mette in cache il bytecode compilato così che PHP non debba ri-analizzare e ri-compilare i tuoi script a ogni richiesta. La maggior parte degli host moderni lo abilita di default; vale la pena confermarlo. Impostazioni tipiche in php.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=1

In produzione puoi impostare opcache.validate_timestamps=0 così che PHP non controlli mai i file per modifiche, poi svuotare la cache al deploy — spremendo un po' più di velocità al costo di dover azzerare esplicitamente la cache.

Checklist rapida

CriterioCosa chiedere
IsolamentoShared (semplice) o VPS (controllo)?
Versione PHPSupportata, attuale, cambiabile?
EstensioniQuelle che servono alla mia app sono disponibili?
Web serverApache (.htaccess) o Nginx?
PrestazioniOPcache è abilitato?

L'hosting PHP è maturo, quindi non scervellarti sui nomi dei brand — abbina l'host ai requisiti reali della tua app: la versione di PHP giusta, le estensioni da cui dipendi, un web server che capisci e OPcache attivo. Azzecca questi e il resto è perlopiù questione di preferenze.