Quali versioni e estensioni PHP offre il web hosting di KapsuleHost per WordPress, WooCommerce e siti PHP, quali impostazioni puoi modificare autonomamente e perché una modifica può richiedere fino a cinque minuti per diventare visibile.
I siti statici, Node.js e Python non eseguono PHP. Tutto ciò che riguarda PHP per un sito si trova in un unico posto: Siti web, clicca sul sito, Impostazioni, poi PHP. Quella pagina contiene il selettore della versione, le impostazioni che puoi modificare, un esecutore Composer e il log degli errori PHP.

Scegliere una Versione PHP
Sono selezionabili quattro versioni: 8.4, 8.3, 8.2 e 8.1. I nuovi siti usano di default la 8.3.
Scegli la versione più recente effettivamente supportata dal tuo software. Un PHP più recente è notevolmente più veloce e riceve correzioni di sicurezza più a lungo. Il motivo per cui non conviene passare subito alla versione più nuova è la compatibilità: un plugin datato o un pezzo di codice personalizzato scritto anni fa può smettere completamente di funzionare su una versione su cui non è mai stato testato.
Per cambiarla, seleziona la versione e clicca su Applica versione. La modifica ha effetto immediato, senza bisogno di riavvii da parte tua e senza alcun tempo di inattività.
Cambia la versione PHP prima nell'ambiente di staging, naviga nel sito per verificarne il funzionamento, e solo dopo applica la modifica in produzione. Se devi farlo direttamente in produzione, fallo in un momento in cui puoi monitorare il sito, sapendo che tornare indietro richiede un solo clic. Vedi Ambienti di Staging.
Se un cambio di versione manda in crash il sito, torna alla versione precedente e leggi il log. L'errore indicherà il nome del file che non è riuscito a essere eseguito. Vedi Cambiare Versione PHP e Log degli Errori.
Impostazioni Che Puoi Modificare
La pagina PHP espone cinque impostazioni tramite menu a tendina. Sono quelle che in pratica causano i problemi più comuni, motivo per cui sono messe in evidenza.
| Impostazione | Predefinito | Valori disponibili | Cosa controlla |
|---|---|---|---|
memory_limit | 256M | 128M, 256M, 512M, 1024M, 2048M | Quanta memoria può usare una richiesta |
max_execution_time | 30 | 30, 60, 120, 300, 600 | Per quanti secondi può essere eseguita una richiesta |
upload_max_filesize | 64M | 16M, 32M, 64M, 128M, 256M | Il file singolo più grande caricabile |
post_max_size | 65M | 17M, 33M, 65M, 129M, 257M | L'invio di modulo complessivo più grande |
max_input_vars | 3000 | 1000, 3000, 5000, 10000 | Quanti campi può contenere un singolo invio |
Quale scegliere:
- Caricamenti che falliscono oltre una certa dimensione: aumenta
upload_max_filesize, epost_max_sizeinsieme a esso. - Un modulo esteso o un page builder che perde campi al salvataggio: aumenta
max_input_vars. Questo problema è invisibile e frustrante, perché non appare alcun errore. I campi in eccesso vengono scartati silenziosamente. - Una pagina che si interrompe a metà senza alcun errore: aumenta
memory_limit. Vedi Limite di Memoria di WordPress. - Un'importazione o esportazione lunga che va in timeout: aumenta
max_execution_time, e valuta di eseguire l'operazione da riga di comando. Vedi WP-CLI.
post_max_size deve essere più grande di upload_max_filesize, perché il caricamento viaggia all'interno del post. Se scegli una combinazione in cui questo non avviene, la piattaforma corregge post_max_size aumentandolo automaticamente. Per questo motivo potresti vedere un valore che non hai scelto tu.
Perché Una Modifica Richiede Fino a Cinque Minuti
Questa è la fonte di confusione più comune su questa pagina, quindi vale la pena essere precisi.
Le tue impostazioni vengono scritte in un file .user.ini nella document root del tuo sito. PHP legge quel file e poi lo mette in cache per 300 secondi, ovvero cinque minuti. Fino alla scadenza di quella cache, PHP continua a usare i valori precedenti.
Quindi, dopo aver salvato una modifica:
- La pagina continuerà a mostrare il vecchio limite per un massimo di cinque minuti.
phpinfo()continuerà a mostrare il vecchio limite per un massimo di cinque minuti.- Un aggiornamento forzato della pagina non aiuta. Nemmeno la cancellazione della cache del browser.
- Non devi riavviare nulla, e non puoi farlo. Basta aspettare.
Se sono passati più di cinque minuti e il valore non è cambiato, allora c'è effettivamente un problema ed è il caso di aprire un ticket.
Modificare Manualmente .user.ini
Puoi modificare direttamente .user.ini via SFTP o SSH se preferisci, oppure se hai bisogno di una direttiva che il pannello non espone. Si trova nella document root del tuo sito. Vedi Accesso SFTP.
Il formato prevede una direttiva per riga:
memory_limit = 512M
max_execution_time = 120
Due limiti importanti su cosa può fare .user.ini:
Funziona solo per le direttive che PHP consente di impostare per directory o per utente. Le cinque indicate sopra rientrano tutte in questa categoria. Le direttive impostabili solo a livello di sistema, come disable_functions o il caricamento di un'estensione con extension=, vengono ignorate in un file .user.ini. Non generano errori, semplicemente non fanno nulla, ed è per questo che molti ci passano un intero pomeriggio.
Il pannello legge solo chiavi semplici. Le direttive contenenti un punto, come opcache.enable o date.timezone, vengono rispettate da PHP ma non appariranno nel modulo del pannello. Se ne imposti una manualmente e in seguito modifichi qualcosa tramite il pannello, controlla il file in seguito.
Il web hosting di KapsuleHost utilizza nginx, non Apache. I file .htaccess non vengono letti da nessuno. Le direttive PHP inserite in un file .htaccess, come php_value memory_limit, non hanno assolutamente alcun effetto qui. Usa invece .user.ini oppure il pannello. Vedi WordPress e .htaccess.
Quali Estensioni Sono Disponibili
La build standard è ampia e include tutto ciò che WordPress, WooCommerce e la maggior parte delle applicazioni PHP richiedono.
Database: mysqli, pdo_mysql, sqlite3, pdo_sqlite
Immagini: gd, imagick, exif
Cache: Zend OPcache, redis, memcached
Testo e locale: mbstring, iconv, intl, gettext, ctype
XML e dati: dom, simplexml, xml, xmlreader, xmlwriter, xsl, json
Rete: curl, soap, sockets, ftp, openssl
Matematica e crittografia: bcmath, sodium, hash, random
File e sistema: fileinfo, zip, zlib, phar, posix, pcntl, shmop, calendar, tokenizer
Una differenza tra versioni che vale la pena conoscere: l'estensione imap è presente sulla 8.3 e versioni precedenti ma non sulla 8.4, perché è stata rimossa da PHP stesso in quella release. Se hai un'applicazione che ne ha ancora bisogno, resta sulla 8.3 oppure sposta quell'applicazione su una libreria di posta moderna.
Non installati: driver PostgreSQL, MongoDB, Xdebug, mcrypt, e caricatori di codice commerciali come ionCube e SourceGuardian.
Non puoi abilitare o disabilitare estensioni autonomamente dal pannello. Se la tua applicazione richiede qualcosa che non è presente nell'elenco, apri un ticket e descrivi cosa stai eseguendo. La possibilità di aggiungerla dipende dall'estensione. Vedi Apertura di un Ticket di Supporto.
Verificare Cosa È Effettivamente Caricato
Invece di tirare a indovinare:
- Su WordPress: Strumenti, poi Salute del sito, poi Informazioni, poi Server. Elenca la versione PHP e i limiti pertinenti.
- Via SSH:
php -vper la versione ephp -mper le estensioni caricate. Vedi Aggiungere Chiavi SSH.
Non lasciare un file phpinfo() nella root web. Rende pubblici i tuoi percorsi, le tue estensioni e la tua configurazione a chiunque lo trovi, e gli scanner automatici cercano esattamente quel nome di file. Se ne crei uno per verificare qualcosa, eliminalo subito dopo.