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.

La scheda PHP per un sito in KPanel

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.

ImpostazionePredefinitoValori disponibiliControllo
memory_limit256M128M, 256M, 512M, 1024M, 2048MQuanta memoria una richiesta può utilizzare
max_execution_time3030, 60, 120, 300, 600Quanti secondi una richiesta può durare
upload_max_filesize64M16M, 32M, 64M, 128M, 256MIl file singolo più grande che può essere caricato
post_max_size65M17M, 33M, 65M, 129M, 257MLa sottomissione di moduli totale più grande
max_input_vars30001000, 3000, 5000, 10000Quanti campi una sottomissione può contenere

Quale di questi desideri:

  • I caricamenti hanno esito negativo oltre una certa dimensione: aumenta upload_max_filesize e post_max_size con 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_time e 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 -v per la versione e php -m per 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.

Guide correlate

Hai ancora bisogno di aiuto?

Scrivici a support@kapsulehost.com oppure apri una chat in KPanel.

Apri KPanel
Estensioni e impostazioni PHP