Tutte le sezioni del manuale

DocumentazioneVersioni PHP

Versioni PHP

Sullo stesso server possono convivere più versioni di PHP, dalla 7.4 alla 8.5: ogni sito usa la sua. La pagina Versioni PHP è riservata agli amministratori.

Cosa mostra la pagina

Per ogni versione vedi se è installata, se è quella predefinita per i nuovi siti, quanti siti la usano e se è offerta per i nuovi siti. La versione inclusa in Ubuntu è indicata con Ubuntu; le altre arrivano dall'archivio ondrej/php, aggiunto automaticamente alla prima installazione. Su AlmaLinux e Rocky Linux tutte le versioni arrivano dal repository Remi, preparato dall'installazione. Su Ubuntu 26.04 l'archivio ondrej/php non ha ancora i pacchetti: per ora si installa solo PHP 8.5, quella inclusa nel sistema, e le altre versioni compaiono come non disponibili.

Installare una versione

Premi Installa e conferma. L'installazione avviene in sottofondo (qualche minuto) e puoi seguirne l'avanzamento nella pagina. Vengono installati PHP-FPM, la riga di comando e le estensioni più usate: mysql, curl, gd, mbstring, xml, zip, intl, bcmath, opcache (più redis e imagick quando disponibili). Il pannello applica le proprie impostazioni di base (memoria, dimensione dei file caricati, opcache) e avvia il servizio.

Le altre azioni

  • Imposta come predefinita: la versione usata per i nuovi siti.
  • Per i nuovi siti: se la togli, la versione non si può più scegliere per altri siti; quelli che già la usano continuano a funzionare.
  • Rimuovi: disinstalla la versione. È possibile solo se nessun sito la usa e se non è la predefinita: passa prima i siti a un'altra versione.

Versione di un sito e pacchetti

Nella pagina di ogni sito, Versione PHP propone le versioni installate e offerte per i nuovi siti, limitate a quelle consentite dal pacchetto dell'account (Pacchetti): nel pacchetto puoi selezionarne alcune; nessuna selezionata vuol dire tutte.

Impostazioni PHP del sito

Nella pagina di ogni sito, Impostazioni PHP permette di cambiare per quel sito memoria (memory_limit, fino a 1024 MB), dimensione dei file caricati (upload_max_filesize, il limite dei moduli si adegua), tempo massimo (max_execution_time), campi dei moduli (max_input_vars) e la visualizzazione degli errori (display_errors). Lascia vuoto un campo per usare il valore predefinito. Il pannello verifica la configurazione e, se qualcosa va storto, rimette quella precedente. Vedi anche Siti web.

Altre direttive PHP (dalla 0.72.0), nello stesso riquadro, aggiunge le direttive di una lista sicura, ognuna controllata dal pannello: fuso orario (date.timezone), error_reporting, short_open_tag, allow_url_fopen, caricamenti (file_uploads, max_file_uploads, max_input_time), sessioni (session.gc_maxlifetime, session.cookie_secure, session.cookie_samesite…), output_buffering, zlib.output_compression, pcre.* e OPcache. Le direttive che riguardano la sicurezza del server (per esempio open_basedir e disable_functions) non si possono cambiare.

Processi PHP

I processi PHP di un sito (pm.max_children) sono le richieste PHP che il sito serve nello stesso momento: le altre aspettano il loro turno. Il valore predefinito è 5 per sito.

  • Per tutto il server: in Versioni PHP, riquadro Processi PHP per sito, l'amministratore sceglie il valore dei siti che non ne hanno uno proprio (da 1 a 200). Il pannello riscrive subito i pool dei siti. Lascia vuoto per tornare al valore del file di configurazione (sites.php_max_children in /etc/panel/agent.yaml).
  • Per un sito: in Impostazioni PHP del sito, il campo Processi PHP vince sul valore del server. Lo impostano l'amministratore e il rivenditore, entro il limite del pacchetto dell'account e della quota del rivenditore (Pacchetti); l'account lo vede ma non lo cambia. Lascia vuoto per usare il valore del server.

Nello stesso riquadro del sito si sceglie anche la modalità dei processi:

  • ondemand (predefinita): i processi partono quando arrivano richieste e si chiudono dopo 10 secondi senza; un sito senza visite non occupa memoria;
  • dynamic: alcuni processi restano sempre pronti. Processi all'avvio, riserva minima e riserva massima (pm.start_servers, pm.min_spare_servers, pm.max_spare_servers) devono stare entro i processi PHP; lasciati vuoti, il pannello li calcola;
  • static: tutti i processi restano sempre accesi.

Richieste per processo (pm.max_requests, predefinito 500) è il numero di richieste dopo cui un processo viene rinnovato. Il pannello suggerisce un numero di processi in base alla RAM del server (circa un quarto della memoria per un sito al massimo del suo lavoro, 64 MB a processo).

Quando nel registro di PHP-FPM compare «server reached pm.max_children», cioè il sito ha usato tutti i suoi processi e le richieste in più hanno aspettato, le Impostazioni PHP del sito mostrano un avviso con quante volte è successo negli ultimi 7 giorni e un pulsante per aumentare i processi. L'elenco dei siti in questa situazione è anche in Versioni PHP.

Dalla 0.88.0, al primo avvio dopo l'aggiornamento il pannello legge i pool dei siti: modalità, processi, riserva e richieste per processo cambiati a mano nel file del pool diventano le impostazioni del sito, così non si perdono quando il pool viene riscritto.

Entrambi i valori stanno nel pannello, non nei file dei pool: gli aggiornamenti di KoaPanel e la riscrittura dei pool li mantengono. Una modifica fatta a mano nel file del pool, invece, si perde. Ogni processo in più può usare altra memoria (vedi sotto): alza il valore solo se il server ne ha.

Estensioni PHP

Per ogni versione installata, Estensioni elenca le estensioni che il pannello sa gestire (per esempio soap, imap, ldap, gmp, apcu, memcached, pgsql, xdebug) con il loro stato: installale o toglile una per una, per tutti i siti che usano quella versione. Quelle di base (mysqli, curl, gd, mbstring, xml, zip, intl, opcache) servono a quasi tutti i siti e non si possono togliere; su AlmaLinux e Rocky non si toglie nemmeno un'estensione che sta in un pacchetto insieme ad altre.

Quanta memoria usa il PHP

Misurato sul server di prova (Ubuntu 24.04, PHP 8.3, WordPress 7), a settembre 2026:

  • Senza il modulo Isolamento e limiti c'è un solo processo principale di PHP-FPM per ogni versione di PHP (circa 15–19 MB in tutto, condivisi da tutti i siti) e ogni sito ha il suo gruppo di processi in modalità ondemand: un processo parte solo quando arriva una richiesta e si chiude dopo 10 secondi senza richieste. Un sito che nessuno sta visitando non occupa memoria di PHP. Mentre lavora, un processo di WordPress occupa circa 22–27 MB (PSS; 50–60 MB contando anche le parti condivise), uno per ogni richiesta contemporanea, fino ai processi PHP del sito (5 se non li cambi).
  • Per confronto, con la modalità dynamic (quella predefinita di Ubuntu) ogni sito tiene sempre da 1 a 3 processi pronti (2 all'avvio): dopo le prime visite sono circa 25–80 MB per sito di WordPress anche quando nessuno lo visita, cioè 0,7–2,4 GB per 30 siti. Per questo il pannello usa ondemand.
  • Con il modulo Isolamento e limiti ogni account ha il suo processo principale di PHP-FPM, che occupa circa 10 MB anche a riposo (misurati: 10,2 MB per account, 1,5 GB con 159 account). Per esempio 30 account su un VPS da 2 GB sono circa 300 MB, più i processi dei siti mentre lavorano. Con PHP su richiesta (Isolamento e limiti) il PHP di un account si ferma dopo 15 minuti senza visite (valore modificabile) e a riposo non occupa memoria.