Vai al contenuto
Indice
Risoluzione problemi

Estensioni e impostazioni PHP

Traduzione automatica. L'originale in inglese è disponibile.

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.

La pagina PHP di un sito in KPanel, con il selettore della versione e le impostazioni modificabili

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.

ImpostazionePredefinitoValori disponibiliCosa controlla
memory_limit256M128M, 256M, 512M, 1024M, 2048MQuanta memoria può usare una richiesta
max_execution_time3030, 60, 120, 300, 600Per quanti secondi può essere eseguita una richiesta
upload_max_filesize64M16M, 32M, 64M, 128M, 256MIl file singolo più grande caricabile
post_max_size65M17M, 33M, 65M, 129M, 257ML'invio di modulo complessivo più grande
max_input_vars30001000, 3000, 5000, 10000Quanti campi può contenere un singolo invio

Quale scegliere:

  • Caricamenti che falliscono oltre una certa dimensione: aumenta upload_max_filesize, e post_max_size insieme 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 -v per la versione e php -m per 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.

Guide Correlate

Ti è stato utile?

È un'IA? Legga questa pagina in Markdown

Articoli correlati

Il Mio Sito Web Non Si Carica: Checklist DiagnosticaProcedete con i passaggi in ordine. Ogni passaggio identifica la causa oppure la esclude. La maggior parte dei problemi si risolve al passaggio 5.…Sito non raggiungibile: collegare ciò che vedi alla causaQuesto è l'albero diagnostico, comune a tutti i prodotti, per un sito che non si carica. KapsuleHost offre diversi prodotti, e il modo più rapido per trovare la…Utilizzo di Cloudflare o un altro proxy con KapsuleHostCome utilizzare un proxy Cloudflare o di terze parti con KapsuleHost Come mettere un proxy o CDN di terze parti davanti a un sito KapsuleHost, incluse le due…Lentezza del sito e limiti di risorseCosa limita davvero il tuo piano di hosting, cosa succede quando raggiungi ciascun limite e come capire se un sito lento ha un problema di risorse o di codice.…

Hai ancora bisogno di aiuto?

Chiedi a Kora, che conosce il tuo account, o contatta il nostro team.

ContattaciContatta il supporto