Risoluzione problemi
Estensioni e impostazioni PHP
Which PHP versions and extensions KapsuleHost web hosting provides, which settings you can change yourself, and why a change can take up to five minutes to appear.
Quali versioni e estensioni PHP offre KapsuleHost, quali impostazioni è possibile modificare autonomamente e perché una modifica può richiedere fino a cinque minuti per apparire.
Tutto ciò che riguarda PHP per un sito si trova in un unico posto: Siti web, fai clic sul sito, Avanzate, quindi PHP. Quella pagina contiene il selettore della versione, le impostazioni che è possibile modificare, uno strumento di esecuzione di Composer e il registro degli errori PHP.

Scelta di una versione PHP
Sono selezionabili quattro versioni: 8.4, 8.3, 8.2 e 8.1. I nuovi siti usano per impostazione predefinita la versione 8.3.
Scegli la versione più recente effettivamente supportata dal tuo software. PHP più recente è notevolmente più veloce ed è supportato con correzioni di sicurezza per più tempo. Il motivo per cui non saltare direttamente alla versione più recente è la compatibilità: un vecchio plugin o codice personalizzato scritto anni fa può non funzionare su una versione su cui non è mai stato testato.
Per modificarla, seleziona la versione e fai clic su Applica versione. La modifica ha effetto immediato, senza necessità di riavvio da parte tua e senza tempi di inattività.
Modifica la versione PHP prima in staging, sfoglia il sito e solo allora modificala in produzione. Se devi farlo in tempo reale, fallo quando puoi controllare, e sappi che tornare indietro è un clic. Vedi Ambienti di staging.
Se una modifica della versione interrompe il sito, torna alla versione precedente e leggi il registro. L'errore indicherà il file che non ha potuto essere eseguito. Vedi Modifica della versione PHP e Registri degli errori.
Impostazioni che è possibile modificare
La pagina PHP espone cinque impostazioni come menu a discesa. Queste sono le impostazioni che effettivamente causano problemi nella pratica, motivo per cui sono quelle presentate.
| Impostazione | Predefinito | Valori disponibili | Controllo |
|---|---|---|---|
memory_limit | 256M | 128M, 256M, 512M, 1024M, 2048M | Quanta memoria una richiesta può utilizzare |
max_execution_time | 30 | 30, 60, 120, 300, 600 | Quanti secondi una richiesta può durare |
upload_max_filesize | 64M | 16M, 32M, 64M, 128M, 256M | Il file singolo più grande che può essere caricato |
post_max_size | 65M | 17M, 33M, 65M, 129M, 257M | La sottomissione di moduli totale più grande |
max_input_vars | 3000 | 1000, 3000, 5000, 10000 | Quanti campi una sottomissione può contenere |
Quale di questi desideri:
- I caricamenti hanno esito negativo oltre una certa dimensione: aumenta
upload_max_filesizeepost_max_sizecon esso. - Un modulo grande o un generatore di pagine perde campi al salvataggio: aumenta
max_input_vars. Questo è invisibile e frustrante, perché nulla genera errori. I campi aggiuntivi vengono silenziosamente scartati. - Una pagina si interrompe a metà con nessun errore: aumenta
memory_limit. Vedi Limite di memoria di WordPress. - Un'importazione o esportazione lunga si interrompe: aumenta
max_execution_timee considera invece di eseguire il processo dalla riga di comando. Vedi WP-CLI.
post_max_size deve essere maggiore di upload_max_filesize, perché il caricamento viaggia all'interno del post. Se scegli una combinazione in cui non è così, la piattaforma corregge post_max_size per te. Ecco perché potresti vedere un valore che non hai scelto.
Perché una modifica richiede fino a cinque minuti
Questa è la confusione più comune su questa pagina, quindi vale la pena essere precisi.
Le tue impostazioni vengono scritte in un file .user.ini nella radice del documento del tuo sito. PHP legge quel file e poi lo memorizza nella cache per 300 secondi, che corrispondono a cinque minuti. Fino alla scadenza della cache, PHP continua a utilizzare i valori precedenti.
Quindi dopo aver salvato una modifica:
- La pagina continuerà a segnalare il limite precedente per un massimo di cinque minuti.
phpinfo()continuerà a segnalare il limite precedente per un massimo di cinque minuti.- Un aggiornamento forzato non aiuta. Nemmeno svuotare la cache del browser.
- Non è necessario riavviare nulla e non puoi. Aspetta semplicemente.
Se è trascorso più di cinque minuti e il valore non è cambiato, allora c'è qualcosa di veramente sbagliato e vale la pena aprire un ticket.
Modifica diretta di .user.ini
Puoi modificare .user.ini direttamente tramite SFTP o SSH se preferisci, o se hai bisogno di una direttiva che il pannello non espone. Si trova nella radice del documento del tuo sito. Vedi Accesso SFTP.
Il formato è una direttiva per riga:
memory_limit = 512M
max_execution_time = 120
Due limiti importanti su cosa .user.ini può fare:
Funziona solo per le direttive che PHP consente di impostare per directory o per utente. Tutte e cinque quelle sopra si qualificano. Le direttive che possono essere impostate solo a livello di sistema, come disable_functions o il caricamento di un'estensione con extension=, vengono ignorate in un file .user.ini. Non genereranno errori, semplicemente non faranno nulla, ed è per questo che le persone trascorrono un pomeriggio su di esse.
Il pannello legge solo le 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 dopo.
L'hosting web Kapsule 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 fanno assolutamente nulla qui. Utilizza .user.ini o 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
Caching: 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 di versione importante da conoscere: l'estensione imap è presente sulla versione 8.3 e precedenti ma non sulla 8.4, perché è stata rimossa da PHP stesso in quella versione. Se hai un'applicazione che ne ha ancora bisogno, rimani su 8.3 o sposta quell'applicazione a una moderna libreria di posta.
Non installati: driver PostgreSQL, MongoDB, Xdebug, mcrypt e caricatori di codice commerciali come ionCube e SourceGuardian.
Non puoi abilitare o disabilitare le estensioni autonomamente dal pannello. Se la tua applicazione ha bisogno di qualcosa che non è nell'elenco, apri un ticket e descrivi cosa stai eseguendo. Se può essere aggiunto dipende dall'estensione. Vedi Apertura di un ticket di supporto.
Controllo di ciò che è effettivamente caricato
Piuttosto che indovinare:
- Su WordPress: Strumenti, quindi Integrità del sito, quindi Info, quindi Server. Elenca la versione PHP e i limiti rilevanti.
- Tramite SSH:
php -vper la versione ephp -mper le estensioni caricate. Vedi Aggiunta di chiavi SSH.
Non lasciare un file phpinfo() nella radice web. Pubblica i tuoi percorsi, le tue estensioni e la tua configurazione a chiunque li trovi, e gli scanner automatizzati cercano esattamente quel nome di file. Se ne crei uno per verificare qualcosa, eliminalo immediatamente dopo.