Guida alle tecnologie

Risolvere l'errore PHP "Out of memory" nell'admin panel

5 min read PHP Aggiornato 09 Oct 2025
PHP: Risolvere Out of memory
PHP: Risolvere Out of memory

Errore osservato

Ho trovato questo errore mentre moderavo dei commenti su TechPP e l’admin panel mostrava una pagina di errore invece della dashboard. L’errore era simile a questo:

PHP Fatal error: Out of memory (allocated 49545216) (tried to allocate 77824 bytes) in /home/xxxxx/public_html/xyz/admin.php(1758) on line 40

Questo indica che uno script PHP ha richiesto più memoria di quella consentita dalla configurazione corrente di PHP.

Soluzione veloce (riavvio)

Il primo rimedio rapido è riavviare il servizio HTTP del server. Esempi di comandi comuni:

# Debian/Ubuntu
sudo systemctl restart apache2

# CentOS/RHEL
sudo systemctl restart httpd

# Per PHP-FPM (se usi Nginx o FPM)
sudo systemctl restart php-fpm
# oppure specificare la versione, es. php7.4-fpm
sudo systemctl restart php7.4-fpm

Questo può risolvere immediatamente il problema, ma non è una soluzione definitiva: lo script che ha causato l’errore continuerà a richiedere troppa memoria finché non modifichi la configurazione.

4 modi per aumentare la memoria di PHP

  1. Individua e modifica php.ini

    • Crea un file nella root del sito, ad esempio check.php, con questo contenuto per individuare il php.ini caricato:
    • Apri la pagina nel browser, cerca “Loaded Configuration File” per sapere quale php.ini è usato.
    • Nel php.ini cerca la direttiva memory_limit (spesso impostata di default a 8M) e aumentala, ad esempio a 12M, 16M, 32M o oltre a seconda delle necessità:
    memory_limit = 32M
    • Salva il file e riavvia Apache/PHP-FPM.
  2. Impostazione runtime con ini_set

    Se non hai accesso al php.ini, puoi aumentare la memoria nel singolo script PHP (se il permesso lo consente) inserendo all’inizio del file:

    ini_set('memory_limit', '32M');

    Questo modifica il limite solo per quel processo PHP.

  3. Usare .htaccess (solo con mod_php/Apache)

    Se PHP è eseguito come modulo Apache (mod_php), puoi aggiungere nel .htaccess della root:

    php_value memory_limit 32M

    Nota: non funziona con PHP-FPM o CGI.

  4. Per WordPress: wp-config.php

    Nei siti WordPress puoi inserire nel wp-config.php:

    define('WP_MEMORY_LIMIT', '32M');

    Questo aumenta il limite per WordPress, ma può essere ignorato da restrizioni imposte dall’hosting.

Diagnosi e passaggi consigliati (mini-metodologia)

  1. Riproduci l’errore su ambiente di staging se possibile.
  2. Controlla phpinfo() per conoscere il memory_limit, il percorso del php.ini e il SAPI (mod_php, fpm, cgi).
  3. Verifica i log di Apache/Nginx e PHP (es. /var/log/apache2/error.log, /var/log/php7.4-fpm.log).
  4. Applica un aumento temporaneo della memoria (ini_set o wp-config) per confermare che l’errore è dovuto al limite.
  5. Individua il punto dello script che consuma più memoria (profiling, var_dump, strumenti Xdebug o log di memoria).
  6. Se il consumo è anomalo, correggi il codice (loop infiniti, caricamento di dataset interi in memoria, query non paginate).
  7. Se è legittimo che serva più memoria (plugin pesante, import di dati), aumenta il limite in php.ini o chiedi un piano hosting con risorse superiori.

Quando queste soluzioni falliscono

  • PHP è eseguito tramite PHP-FPM o CGI: modifiche in .htaccess non avranno effetto.
  • L’hosting impone limiti a livello di account (non modificabili dall’utente). In questo caso contatta il supporto.
  • Il sistema operativo esaurisce la memoria fisica e l’OS uccide il processo (OOM). Controlla i log di sistema (dmesg, /var/log/syslog).
  • Estensioni di sicurezza come Suhosin o impostazioni del provider bloccano le modifiche.

Controlli rapidi e checklist operativa

  • [ ] Aprire check.php e verificare Loaded Configuration File.
  • [ ] Controllare valore corrente di memory_limit in phpinfo.
  • [ ] Aumentare temporaneamente con ini_set e verificare se l’errore scompare.
  • Se sì, applicare la modifica in php.ini e riavviare i servizi.
  • Se no, raccogliere log e contattare hosting.

Casi di test / Criteri di accettazione

  • Il pannello di amministrazione si carica senza mostrare errori fatali.
  • phpinfo() mostra il memory_limit aggiornato (solo se modificato in php.ini o SAPI applicabile).
  • Nessun processo PHP finisce con exit per mancanza di memoria durante un test di carico simulato.

Checklist per ruoli

  • Sviluppatore:

    • Profilare lo script con Xdebug o strumenti simili.
    • Ridurre il consumo di memoria (caricare per chank, ottimizzare query).
  • Sysadmin:

    • Individuare php.ini corretto, modificare memory_limit e riavviare i servizi.
    • Controllare limiti a livello OS e configurazioni di PHP-FPM.
  • Supporto hosting:

    • Confermare limitazioni dell’account e proporre upgrade se necessario.
    • Fornire suggerimenti su configurazione PHP per l’ambiente gestito.

Note di sicurezza e buone pratiche

  • Non aumentare il limite di memoria come unica misura senza capire perché il consumo è elevato.
  • Evita di usare valori eccessivi che permettano comandi o script inefficienti a consumare risorse del server.
  • Esegui modifiche in staging prima di applicarle in produzione.

Esempi e controesempi

  • Esempio valido: un processo di importazione che lavora su grandi file CSV potrebbe richiedere un memory_limit più alto temporaneamente.
  • Controesempio: un loop infinito o un leak di memoria in un plugin non si risolve aumentando arbitrariamente il limite; va corretto il codice.

Riassunto

Aumentare memory_limit è la soluzione più comune per l’errore “Out of memory”, ma prima verifica quale php.ini viene caricato e se stai usando mod_php o PHP-FPM (quest’ultimo richiede modifiche diverse). Riavviare il server web risolve temporaneamente il problema ma non ne elimina la causa. Se non riesci a risolvere con i metodi descritti, contatta il supporto del tuo hosting.

Importante: se non sei sicuro, fai una copia dei file di configurazione prima di modificarli.

Immagine: Clarkandransom

Autore
Redazione

Materiali simili

Scaricare film e serie da Netflix: guida completa
Streaming Guide

Scaricare film e serie da Netflix: guida completa

Correggi Firefox: errore già in esecuzione
Risoluzione problemi

Correggi Firefox: errore già in esecuzione

Tim Cook: imparare a programmare oltre l'inglese
Tecnologia

Tim Cook: imparare a programmare oltre l'inglese

Velocizzare i download su Windows 10
Windows 10

Velocizzare i download su Windows 10

PHP: Risolvere Out of memory
PHP

PHP: Risolvere Out of memory

Come salvare uno smartphone Android bricked
Android

Come salvare uno smartphone Android bricked