← Back to list

Guida completa a MAMP su macOS 15: Installazione e configurazioni avanzate

Guida alla configurazione di MAMP su macOS 15: crea un web server locale con PHP, MySQL e strumenti avanzati.

Daniele D'Andreti · 2025-06-29 13:55 · 0 claps · 12.3 min read
#mamp #php #mysql #web-development #macos-15
Open on Medium ↗
Wiki topics: 🌐 · Web Development

Guida completa a MAMP su macOS 15 Sequoia: Installazione e configurazioni avanzate

Photo by Daniele D'Andreti on Unsplash

Photo by Daniele D'Andreti on Unsplash

Introduzione a MAMP su macOS 15

MAMP (Macintosh, Apache, MySQL, PHP) è una suite software gratuita che ti consente di creare un ambiente di sviluppo web completo e funzionante in pochi minuti sul tuo Mac. In questa guida, vedremo come installare e configurare MAMP su macOS 15 Sequoia, esplorando anche le funzionalità avanzate per ottimizzare il tuo flusso di lavoro.

Installazione di MAMP

Per scaricare MAMP, visita il **sito ufficiale. Durante l’installazione standard, MAMP imposta la cartella htdocs contenuta in /Applications/MAMP/ come “Document Root” (la cartella principale per i tuoi siti web) e utilizza localhost come indirizzo web, associandolo a porte non standard: la porta 8888 per il server web Apache e la porta 8889** per il server database MySQL. Queste porte sono scelte per evitare conflitti con eventuali versioni di Apache o MySQL già presenti o utilizzate dal sistema operativo.

Installazione di MAMP

Installazione di MAMP

Per un’esperienza più simile a un ambiente di produzione, puoi configurare MAMP per utilizzare le porte standard: porta 80 per Apache e porta 3306 per MySQL. In questo modo, il tuo indirizzo di sviluppo diventerà semplicemente http://localhost/ (o http://127.0.0.1/) invece di http://localhost:8888/.

Nota: Utilizzando le porte standard (inferiori a 1024), macOS richiederà la tua password di amministratore ogni volta che avvii i server MAMP, poiché queste porte sono considerate riservate.

Avvio e Verifica di MAMP

Per avviare MAMP, fai semplicemente doppio clic sull’icona dell’applicazione MAMP nella cartella Applicazioni.

Avvio di MAMP

Avvio di MAMP

Si aprirà la finestra principale di MAMP, da cui potrai:

  • Avviare e arrestare i server Apache e MySQL.
  • Accedere alle Preferenze.
  • Aprire la pagina “WebStart”.

Preferenze di MAMP

Preferenze di MAMP

Cliccando sul pulsante “WebStart”, si apre una pagina nel tuo browser predefinito per accedere a informazioni utili e link rapidi, incluso l’accesso a phpMyAdmin o Adminer (strumenti web per gestire i database MySQL) tramite la sezione “Tools”.

Pagina “WebStart” di MAMP

Pagina “WebStart” di MAMP

Se non hai modificato le impostazioni predefinite (quindi usando le porte 8888/8889), puoi testare rapidamente l’installazione:

  1. Crea un nuovo file chiamato test.php all’interno della cartella Document Root di MAMP (/Applications/MAMP/htdocs).
  2. Incolla il seguente codice nel file test.php:
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Test</title>
</head>

<body>
  <hr>
  <?php echo date('F, Y') ?>
  <hr>

  <?php echo "PHP ver.: " . phpversion(); ?>
  <hr>
  <?php
  // versione di MySQL in uso
  $ver_mysql = mysqli_connect("localhost", "root", "root")
    or die("Failed to connect: " . mysqli_connect_error());

  echo "MySQL ver.: " . mysqli_get_server_info($ver_mysql);

  mysqli_close($ver_mysql);
  ?>
 <hr>
</body>

</html>

Salvalo nella cartella htdocs e accedi al file tramite il browser all’indirizzo http://localhost:8888/test.php.

file di test in PHP

file di test in PHP

Se vedi la pagina con le informazioni sulla versione PHP e di MySQL, MAMP è installato correttamente!

Nota: Se hai bisogno di funzionalità avanzate fin da subito come gestione di più host virtuali, versioni multiple di PHP facilmente selezionabili, certificati SSL locali, integrazione DynDNS, server email, ecc. e vuoi evitare configurazioni manuali, potresti considerare **MAMP PRO**. È una soluzione a pagamento (circa 89 euro) che offre un ambiente di sviluppo più completo e pronto all’uso.

Dettagli nella tabella comparativa: https://www.mamp.info/en/comparison-matrix/

Configurazione Personalizzata

Una volta installato MAMP, puoi personalizzare alcune impostazioni per ottimizzare l’ambiente di sviluppo. Ad esempio, puoi usare la cartella Sites del tuo utente invece di htdocs come Document Root per i tuoi progetti.

Poiché macOS (a partire dalla versione 10.8 Mountain Lion) non crea più automaticamente questa cartella Sites, dovrai crearla manualmente. Ecco come fare:

  1. Apri il Finder.
  2. Vai alla tua cartella Home (Utente).
  3. Crea una nuova cartella chiamata Sites.

Cartella Sites

Cartella Sites

Per rendere l’accesso ai tuoi progetti ancora più rapido, puoi trascinare la cartella Sites sul Dock per creare un alias.

Alias nel Dock

Alias nel Dock

Preferenze di MAMP

Cliccando sul pulsante “Preferences” nella finestra principale di MAMP, puoi personalizzare diverse impostazioni.

Finestra principale di MAMP

Finestra principale di MAMP

General

  • Start servers / Stop servers: Decidi se MAMP deve avviare automaticamente i server all’apertura dell’app e fermarli alla chiusura.
  • Check for updates: Attiva/disattiva la verifica automatica di nuove versioni di MAMP.
  • Open WebStart page: Scegli se aprire automaticamente la pagina WebStart all’avvio dei server.
  • PHP-Cache: Seleziona il sistema di caching per PHP (es. OPcache).
  • My favorite link: Imposta un URL personalizzato per il pulsante WebStart.

Tab General

Tab General

Ports

  • Mantenere le porte predefinite di MAMP (8888 per Apache e 8889 per MySQL).
  • Impostare le porte web standard (80 per Apache e 3306 per MySQL) cliccando sul pulsante “Set Web & MySQL ports to 80 & 3306”.
  • Impostare porte personalizzate, assicurandoti che non siano già in uso.

Nota: Ricorda che questo richiederà la password di amministrazione all’avvio.

Tab Ports

Tab Ports

Server

  • Web Server: Qui puoi scegliere quale server web utilizzare.
  • MySQL Server Version: MAMP include più versioni di MySQL. Qui puoi selezionare quale versione del server database utilizzare (es. MySQL 5.7.x o 8.0.x).
  • Document Root: Come accennato in precedenza, qui puoi cliccare su “Choose…” per selezionare la cartella principale che conterrà i tuoi siti web (ad esempio, la cartella Sites nella tua home directory invece della predefinita htdocs).

Nota MySQL Server Version: Prima di cambiare versione con database esistenti, esegui sempre un backup completo, poiché potrebbero esserci problemi di compatibilità che impediscono ai vecchi database di funzionare con la nuova versione.

Sites come Document Root

Sites come Document Root

phpMyAdmin

MAMP include phpMyAdmin, una popolare applicazione web che ti fornisce un’interfaccia grafica per creare, visualizzare, modificare ed eliminare i tuoi database MySQL, tabelle e dati, senza dover usare comandi da terminale. Puoi accedervi all’indirizzo **http://localhost/phpMyAdmin5/ o [http://127.0.0.1/phpMyAdmin5/](http://127.0.0.1/phpMyAdmin5/)**

I parametri di accesso sono:
Host = localhost
User = root
Password = root

oppure dalla pagina WebStart (sezione Tools).

phpMyAdmin via WebStart

phpMyAdmin via WebStart

Direttamente tramite l’URL corretto, che dipende dalle porte configurate:

  • Se usi le porte di DEFAULT di MAMP (Apache su porta 8888):

http://localhost:8888/phpMyAdmin/

oppure http://127.0.0.1:8888/phpMyAdmin/

  • Se usi le porte STANDARD (Apache su porta 80):

http://localhost/phpMyAdmin/

oppure http://127.0.0.1/phpMyAdmin/

phpMyAdmin via URL

phpMyAdmin via URL

Nota: A seconda della specifica versione di MAMP che hai installato, il percorso finale potrebbe essere leggermente diverso, ad esempio /phpMyAdmin5/ invece di /phpMyAdmin/.

Adminer

Versioni recenti di MAMP possono includere versioni diverse di MySQL (es. 5.7 e 8.0). Se decidi di usare MySQL 8 o versioni successive ti consiglio di utilizzare Adminer incluso in MAMP, raggiungibile dalla pagina WebStart > Tools > Adminer oppure attraverso la url come per phpMyAdmin.

Nota: per sapere di più sul progetto consulta il sito ufficiale di Adminer.

Trasferire Database da un’Installazione Precedente

Se stai migrando da una vecchia installazione di MAMP, puoi facilmente trasferire i tuoi database. Fino a qualche anno fa copiavo il contenuto della cartella db/mysqlXX (es. db/mysql57) dalla vecchia installazione alla nuova. Questo metodo è rischioso, specialmente per database che usano il motore InnoDB (default da molti anni), perché potrebbe non copiare correttamente i tablespace condivisi o i file di log, portando a corruzione dei dati. Funziona meglio con database molto semplici o che usano motori datati come MyISAM.

Metodo Raccomandato (Sicuro): Esportazione/Importazione SQL

Esporta i Database dalla Vecchia Installazione: Usa uno strumento come phpMyAdmin o Adminer (dalla vecchia installazione) o il comando mysqldump da Terminale per esportare ogni database in un file .sql.

Nota: Fai sempre un backup completo prima di qualsiasi operazione di migrazione o modifica importante dei database! Problemi di compatibilità possono sorgere tra versioni molto diverse di MySQL.

Versione di PHP e Modifiche Avanzate

La versione gratuita di MAMP permette solitamente di scegliere tra due versioni di PHP direttamente dall’interfaccia (es. 8.4.1 e 8.3.14). Se hai bisogno di usare una versione diversa inclusa in MAMP ma non selezionabile dall’interfaccia, puoi usare questo “trucco”:

  1. Accedi alla cartella /MAMP/bin/php/

  2. Trova le versioni di PHP desiderate e crea un archivio ZIP per le altre.

Nota: in caso di necessità, potrai ripristinare facilmente altre versioni di PHP. Se preferisci, puoi anche eliminare quelle non necessarie.

In questo modo, si può utilizzare PHP 8.2 o PHP 7.4 e passare facilmente tra le due versioni tramite il menu a tendina delle preferenze.

Modifiche per la Visualizzazione degli Errori PHP

Durante lo sviluppo, è fondamentale vedere chiaramente i messaggi di errore PHP per poter correggere il codice. Assicurati che le seguenti direttive siano configurate correttamente nel file php.ini della versione PHP che stai utilizzando (es. /MAMP/bin/php/php7.4.33/conf/php.ini):

[...]
error_reporting = E_ALL

[...]
display_errors = On

Queste impostazioni ti aiuteranno a diagnosticare eventuali problemi nel codice durante lo sviluppo.

Normalmente in MAMP si cambia solo la direttiva display_errors da Off a On sulle versioni minori di PHP 8.1

display_errors da Off a On

display_errors da Off a On

Come modificare il file php.ini:

  1. Fai una copia di backup del file php.ini prima di modificarlo.
  2. Apri il file php.ini con un editor di testo.
  3. Cerca le direttive (error_reporting, display_errors).
  4. Modifica i loro valori come indicato sopra (es. cambia display_errors = Off in display_errors = On). Puoi anche commentare la riga originale con un punto e virgola (;) e aggiungere la nuova riga sotto.
  5. Salva il file e riavvia i server MAMP affinché le modifiche abbiano effetto.

Nota: Fare sempre un copia di riserva dei file che si andranno a modificare, in qualsiasi momento si può ripristinare lo stato iniziale.

Modifiche a httpd.conf

Per abilitare la visualizzazione dettagliata della home directory, modifica il file httpd.conf (situato in MAMP/conf/apache/httpd.conf) rimuovendo il simbolo # dalla riga che inizia con “Include […]”

# Fancy directory listings
Include /Applications/MAMP/conf/apache/extra/httpd-autoindex.conf

Per impostazione predefinita, se accedi a una cartella che non contiene un file indice (come index.php o index.html), Apache potrebbe mostrare un messaggio di accesso negato. Per vedere invece un elenco dei file e delle sottocartelle (utile in sviluppo), puoi abilitare il modulo autoindex:

  1. Apri il file di configurazione di Apache: /Applications/MAMP/conf/apache/httpd.conf.
  2. Fai una copia di backup del file.
  3. Cerca una riga simile a questa (potrebbe essere commentata con #):
# Fancy directory listings
#Include /Applications/MAMP/conf/apache/extra/httpd-autoindex.conf
  1. Rimuovi il simbolo # all’inizio della riga Include:
# Fancy directory listings
Include /Applications/MAMP/conf/apache/extra/httpd-autoindex.conf
  1. Salva il file httpd.conf e riavvia i server MAMP.

Questo ti permette di vedere una lista dettagliata delle directory anziché la visualizzazione predefinita.

Visualizzazione predefinita a sinistra, dettagliata a destra

Visualizzazione predefinita a sinistra, dettagliata a destra

Abilitare Xdebug

Xdebug è uno strumento essenziale per gli sviluppatori PHP. Sostituisce il metodo tradizionale di cercare errori (inserendo echo o var_dump nel codice) con un sistema organizzato che permette di esaminare il codice passo dopo passo. Ti permette di:

  • Visualizzare errori e avvisi in modo molto più dettagliato e leggibile.
  • Seguire l’esecuzione del tuo codice passo dopo passo direttamente dal tuo editor (come VS Code o PhpStorm).
  • Ispezionare il valore delle variabili in qualsiasi punto dell’esecuzione.
  • Analizzare le performance del codice (profiling).

Note: Per maggiori dettagli, puoi consultare la Documentazione Ufficiale di Xdebug. Se trovi Xdebug utile, considera di supportare il progetto.

Esempio senza Xdebug

Tutti gli esempi riportati sono stati creati utilizzando la versione di PHP 7.4.33. Le stesse modifiche sono applicabili anche alla versione 8.2.26 di PHP.

Esempio di visualizzazione degli errori senza Xdebug e con le direttive attive:

error_reporting = E_ALL
display_errors = On

Nel file test.php, tra il tag <hr> e </body> ho inserito due variabili a caso che generano errore:

<?php
  $variabile_vuota;
  echo $variabile_a_caso;
  echo $variabile_vuota;
?>

senza Xdebug attivo, un errore come l’uso di una variabile non definita genera un semplice “Notice” nel browser:

Senza XDebug attivo

Senza XDebug attivo

Con MAMP spento apri /Applications/MAMP/bin/php/php7.4.33/conf/php.ini (ricordati di fare un backup del file).

Trova La sezione [xdebug] di solito verso la fine di php.ini e e rimuovi il punto e virgola (;) all’inizio della riga ;zend_extension=”…” per attivare la direttiva.


[xdebug]
zend_extension="/Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so"
xdebug.mode=develop,coverage,debug,gcstats,profile,trace
xdebug.start_with_request=yes

Salva il file php.ini, avvia MAMP.

Ricarica la pagina test.php nel browser. L’errore ora sarà più chiaro e formattato grazie a Xdebug.

Con XDebug Attivo

Con XDebug Attivo

Breve spiegazione delle modalità possibili con XDebug:

| Modalità     | Scopo                                               |
|--------------|-----------------------------------------------------|
| `develop`    | Messaggi di errore più chiari e dettagliati         |
| `debug`      | Debug remoto con IDE (es. VSCode, PhpStorm)         |
| `coverage`   | Verifica della copertura dei test (code coverage)   |
| `gcstats`    | Statistiche sulla gestione della memoria (GC)       |
| `profile`    | Analisi delle performance (profilazione del codice) |
| `trace`      | Tracciamento completo delle funzioni eseguite       |

Configurazione avanzata di Xdebug

Ho aggiunto dei parametri alla sezione [xdebug]

Per abilitare Xdebug in MAMP con una configurazione avanzata segui questi passaggi.

Apri il file php.ini: /MAMP/bin/php/php7.4.33/conf/php.ini

Aggiorna le impostazioni di Xdebug: Sostituisci il contenuto della sezione [xdebug] con questa configurazione personalizzata.

Ho inserito dei brevi commenti per ogni parametro aggiunto alla configurazione personalizzata.

[xdebug]
zend_extension="/Applications/MAMP/bin/php/php7.4.33/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so" ; Carica l'estensione Xdebug per PHP 7.4.33

; Modalità di Xdebug
xdebug.mode=develop,debug,profile ; Abilita sviluppo avanzato, debugging interattivo e profilazione performance

; Debugging remoto
xdebug.start_with_request=yes  ; Avvia automaticamente il debugging su ogni richiesta HTTP
xdebug.client_host=127.0.0.1   ; Connette al debugger in esecuzione su localhost
xdebug.client_port=9003        ; Utilizza la porta standard di Xdebug 3 per la comunicazione

; Comportamento in caso di errori
xdebug.start_upon_error=yes    ; Attiva il debugger quando si verifica un errore PHP
xdebug.show_exception_trace=1  ; Visualizza lo stack trace completo per le eccezioni

; Ottimizzazioni
xdebug.max_nesting_level=256   ; Limita la profondità di chiamate annidate per prevenire overflow
xdebug.collect_params=2        ; Mostra solo valori semplici nelle tracce (no array/oggetti completi)
xdebug.show_local_vars=1       ; Visualizza variabili locali disponibili nei messaggi di errore

; Configurazione file link (VS Code)
xdebug.file_link_format="vscode://file/%f:%l"  ; Crea link cliccabili negli errori per aprire i file in VS Code

; Log
xdebug.log=/Applications/MAMP/logs/xdebug.log  ; Definisce il percorso del file di log per Xdebug
xdebug.log_level=3  ; Registra solo messaggi importanti (3=warning, 7=verbose per debug)

; Dump di variabili globali (minimizzato per ridurre il rumore)
xdebug.dump_globals=1  ; Abilita il dump delle variabili superglobali selezionate
xdebug.dump.SERVER=REMOTE_ADDR,REQUEST_METHOD,HTTP_USER_AGENT  ; Mostra solo le informazioni server essenziali
xdebug.dump.GET=  ; Disabilita il dump automatico dei parametri GET
xdebug.dump.POST=  ; Disabilita il dump automatico dei parametri POST

Salva e riavvia MAMP Ora Xdebug è attivo e pronto per il debugging!

A sinistra, uno dei miei vecchi progetti al quale ho scollegato il database, a destra, VS Code aperto alla riga nel file dove viene rilevato l’errore.

Rilevamento errore

Rilevamento errore

Nota: Strumenti come phpMyAdmin possono diventare lenti e/o generare errori, consiglio l’uso di Adminer per la gestione di MySQL oppure disattivare temporaneamente Xdebug se necessario.

Configurare VS Code per Xdebug

Clicca sull’icona “Extensions” nella barra laterale sinistra, si aprirà una casella di ricerca: digita PHP Debug e procedi con l’installazione dell’estensione.

VS Code + PHP Debug

VS Code + PHP Debug

Configurazione del file launch.json

Nell esempio, la cartella del progetto è star50 All’interno, cerca una cartella di nome .vscode, se non esiste crea la cartella da VS Code in questo modo: apri la cartella del tuo progetto, fai clic sull’iconcina della cartella, assegna il nome .vscode, salva.

All’interno della cartella .vscode crea un file di nome launch.json. Per semplicità puoi incollare il codice di seguito:

{
    "version": "0.2.0",
    "configurations": [

        {
            "name": "Listen for Xdebug PHP",
            "type": "php",
            "request": "launch",
            "port": 9003,

             "pathMappings": {
                "/Users/daniele/Sites/star50": "${workspaceFolder}", // percorso della cartella del progetto
            },

            "log": true
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 0,
            "runtimeArgs": [
                "-dxdebug.start_with_request=yes"
            ],
            "env": {
                "XDEBUG_MODE": "debug,develop, profile",
                "XDEBUG_CONFIG": "client_port=${port}"
            }
        }
    ]
}

Importante: ricordati di inserire il corretto “pathMapping” per utilizzare la cartella Sites o htdocs di MAMP e sostituire “star50” con il nome della cartella del tuo progetto.

pathMapping per Sites:

"pathMappings": {
    "/Users/tuonome/Sites/nome-progetto": "${workspaceFolder}"
},

pathMapping per htdocs:

"pathMappings": {
     "/Applications/MAMP/htdocs/none-progetto": "${workspaceFolder}"
},

Come utilizzare Xdebug con VS Code

Avviare il Debug:

  1. Avvia MAMP e assicurati che Xdebug sia attivo (come configurato in precedenza)
  2. Apri il tuo progetto in VS Code
  3. Imposta i breakpoint: Clicca sul margine sinistro del codice (accanto ai numeri di riga) per aggiungere punti di interruzione (pallini rossi)
  4. Avvia il debugger:
  • Vai alla sezione “Run and Debug” (icona play con il bug nella barra laterale)
  • Seleziona “Listen for Xdebug” dal menu a tendina
  • Clicca sul pulsante play

Debuger attivo

Debuger attivo

Nota: Ricorda sempre di disattivare Xdebug negli ambienti di produzione, poiché può influire significativamente sulle prestazioni del sito web.

Considerazioni finali

Questa guida nasce dalla mia esperienza diretta nell’insegnamento e dalle domande più frequenti dei miei studenti. MAMP può sembrare complesso all’inizio, ma con queste configurazioni otterrai un ambiente di sviluppo professionale e flessibile.

Se hai trovato utile questo articolo, condividilo e lascia un Clap!

Hai problemi ad avviare Apache o MySQL in MAMP?

Se MAMP non si avvia correttamente o uno dei servizi rimane bloccato, il problema potrebbe essere causato da file PID rimasti attivi dopo una chiusura anomala. In questa guida spiego come individuare e risolvere il problema in pochi minuti.

**MAMP non si avvia su macOS? Come risolvere il problema dei file PID bloccati**


메타데이터
post_id
d2a0f29608f3
slug
guida-completa-a-mamp-su-macos-15-installazione-e-configurazioni-avanzate-d2a0f29608f3
url
https://medium.com/@daniele.dandreti/guida-completa-a-mamp-su-macos-15-installazione-e-configurazioni-avanzate-d2a0f29608f3
canonical_url
https://medium.com/@daniele.dandreti/guida-completa-a-mamp-su-macos-15-installazione-e-configurazioni-avanzate-d2a0f29608f3
author_url
https://medium.com/@daniele.dandreti
status
ok
fetched_at
2026-06-27 07:40:21