// 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.
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.gdoimagick— elaborazione delle immagini.curl,openssl,zip,intl— richieste HTTP, crittografia, archivi, localizzazione.
Elenca ciò che è effettivamente caricato sul server con:
php -m
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
| Criterio | Cosa chiedere |
|---|---|
| Isolamento | Shared (semplice) o VPS (controllo)? |
| Versione PHP | Supportata, attuale, cambiabile? |
| Estensioni | Quelle che servono alla mia app sono disponibili? |
| Web server | Apache (.htaccess) o Nginx? |
| Prestazioni | OPcache è 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.