Web Server su OS X 10.14 con MAMP

Daniele D'Andreti
6 min readJan 19, 2019

--

MAMP (Macintosh Apache MySql Php) da qualche anno è disponibile anche per Windows, sempre in due versioni: gratuita e a pagamento, tra le due, in questo articolo verrà presa in esame la versione gratuita per MacOS.

Istallazione di MAMP
Il pacchetto si scarica da https://www.mamp.info/en/, si accetta la licenza, (dopo averla letta), la destinazione è nella cartella Applicazioni, se si sposta o si posiziona altrove MAMP non funziona.

  • Giunti alla voce “Tipo installazione” selezionare il pulsante “Ad hoc”
  • deselezionare MAMP PRO click su “Installa”
  • inserire username e password per consentire l’installazione

Per default, MAMP usa la cartella htdocs come “document root” e localhost al posto di 127.0.0.1; la porta 8888 per il web e 8889 per MySql: la scelta di usare valori così alti è per non interferire con eventuali installazioni di sistema di Apache e MySQL.

Doppio click su MAMP per avviare il server e altri servizi

Attraverso il pulsante Open WebStart page si giunge ad una pagina web dove è possibile accedere a PhpMyAdmin attraverso la voce TOOLS

Nota: Nella “home page” di MAMP, si possono recuperare parametri di connessione a MySQL e altre informazioni utili.

Personalmente preferisco avere le porte di default e vedere la url di sviluppo in questo modo:

http://127.0.0.1/ e non http://127.0.0.1:8888/ o http://localhost:8888/

[ There’s No Place Like 127.0.0.1 ] :-)

Impostando 80 per Apache e 3306 per MySQL, ogni volta che si fa partire MAMP si deve digitare la password di amministrazione per abilitare l’uso di queste due porte utilizzate dai processi di sistema.

Verifica
Per verificare che MAMP funzioni correttamente, creare un file di nome test.php con all’interno una funzione PHP per vedere il mese e l’anno attuali <?php echo date('F, Y') ?>

Adesso tutto è pronto per fare i primi esperimenti con PHP e MySQL.

Per chi non ha tempo di fare modifiche a MAMP consiglio MAMP PRO, per una spesa di circa 59 euro si possono avere più versioni di PHP, DNS dinamici, configurazione SMTP, SSL, una serie di servizi specifici per WordPress e tanto altro, operativi in 5 minuti con un ambiente di sviluppo perfetto.

Di seguito la tabella di comparazione: https://www.mamp.info/en/comparison-matrix/

Configurazione personalizzata

Sulla mia macchina di sviluppo non uso la cartella htdocs contenuta nella installazione standard di MAMP, preferisco usare la cartella Sites all’interno del mio utente con un alias sul dock assieme all’eseguibile di MAMP.

La cartella Sites deve essere creata, dalla versione 10.8 di MacOS non è più presente tra le cartelle standard di MacOS.

Le preferenze di MAMP
Menù MAMP > Preferences… si accede ad un pannello suddiviso in 5 tab:

Tab General, voci da abilitare:

  • Start Servers = Avvia il server Apache e MySQL all’avvio di MAMP
  • Stop Server = Spegne i server Apache e MySQL all’uscita di MAMP
  • Check for updates = facoltativo
  • Open WebStart page = facoltativo

Ports

Set MAMP ports to default = porta 8888 per Apache e 8889 per MySQL

Set Web & MySQL ports to 80 & 3306 = porta 80 per Apache e 3306 per MySQL

2 versioni di PHP:

  • 7.1.20
  • 7.2.8
  • In locale non uso mai la Cache, interferisce con i task runner

Nota: più avanti verrà illustrato il metodo per avere PHP 5.6.X e 7.1.X

Web Server

  • Possibilità di scelta tra Apache e Nginx
  • Scelta della Document Root

Nota: Attraverso il pulsante Select si può scegliere Sites come Document Root

Versione di MySQL

  • 5.7.23
  • Cloud = possibilità di salvare su Dropbox database e file a pagamento, inclusa su MAMP PRO

MAMP è fornito di phpMyAdmin per amministrare MySQL raggiungibile anche attraverso questa url: http://127.0.0.1/phpMyAdmin/ oppure http://localhost/phpMyAdmin

I parametri per accedere al server MySQL sono:
Host = localhost
User = root
Password = root

Trasferire i database da vecchia o altra installazione di MAMP

Questa operazione va fatta con MAMP spento.

Si possono trasferire i database dalla vecchia installazione di MAMP alla nuova, senza fare il dump dei dati per ogni database, usando un semplice Drag & Drop si selezionano tutte le cartelle contenute in mysql56 tranne i file contrassegnati dal tag verde e si rilasciano nella cartella mysql57.
Si consiglia di fare sempre una copia di backup, con alcuni database molto vecchi, ho avuto dei problemi di compatibilità, risolti con un paio di comandi “repair”.

Bene, adesso c’è l’operatività per chi è un nuovo utente e chi aveva una vecchia versione di MAMP.

Versione di PHP e modifiche avanzate

Questa operazione va fatta con MAMP spento.

Sul server di produzione ho PHP 5.6 e 7.1 mentre in MAMP 5.1 posso scegliere tra PHP 7.1.20 e 7.2.8.

Il trucco per forzare MAMP ad usare le versioni di PHP preferite è:

MAMP > bin > php, individuare le due versioni preferite

Nel mio caso sono 5.6.37 e 7.1.20

Invece di cancellare i file che non uso, preferisco fare uno zip di ogni cartella, elimino gli originali, e lascio solo le versioni interessate.
In caso di necessità, posso ripristinare versioni diverse di PHP.

Le immagine di seguito rendono più chiaro il passaggio. :-)

chiudere tutto, far partire MAMP e verificare che le due versioni scelte siano selezionabili attraverso il pannello MAMP > Preferences… > PHP

Visualizzare gli errori durante lo sviluppo
Buona norma durante lo sviluppo di siti o applicazioni web è verificare che le direttive per l’Error Handling siano attive in php.ini in questo modo verranno mostrati tutti messaggi di errore utili in fase di sviluppo e debug:

error_reporting = E_ALL
display_errors = On

Normalmente in MAMP si cambia solo la direttiva display_errors, la modifica viene effettuata per entrambe le versioni di PHP che si trovano in:

MAMP > bin > php > php5.6.37 > conf > php.ini

MAMP > bin > php > php7.1.20 > conf > php.ini

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

Ci sono due modi per fare la modifica:

  • mettere un commento (simbolo ; ) davanti alla riga e sotto scrivere la direttiva con il parametro desiderato
  • modificare direttamente la riga interessata

Per chi lo desidera, si può attivare il modulo xdebug sempre da php.ini (si trova alla fine del file).

Modifica httpd.conf
Mi piace avere la visualizzazione “dettagliata” della home directory, per abilitarla, si deve modificare il Il file httpd.conf che si trova in MAMP > conf > apache > httpd.conf
Per abilitare la “configurazione” personalizzata è sufficiente eliminare il simbolo del cancelletto (#) davanti alla stringa interessata:

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

Visualizzazione dei file e delle cartelle da “lista” a sinistra a “dettaglio” a destra.

Se ti è piaciuto l’articolo, condividilo e lascia un Clap :-)

Originally published at programming.energy on October 4, 2018.

--

--

Daniele D'Andreti

Esperto di qualcosa che non sa spiegare, (ex) docente dello stesso qualcosa, libero pensatore. …Ma libero da cosa?