Come (tutti) sanno due dei tre pilastri dello sviluppo web open-source sono già inclusi ‘di serie’ in Mac OS X. Parlo di *AMP, e cioè di Apache e di PHP (rispettivamente nelle release 2.2.19 e 5.3.6 in Lion). MySQL, invece, è un pacchetto che dovremo scaricare ed installare (e configurare) autonomamente.
Ci sono un (buon) numero di pacchetti preconfezionati per configurare e attivare questi software (MAMP, DAMP, XAMPP e BitNami … programmi che cercano di non “invadere” la base installata con/dal sistema operativo). In quest’annotazione, però, ci occuperemo proprio degli strumenti forniti con esso. Una piccola nota è doverosa farla per MySQL, precedentemente incluso nelle versioni Mac OS X Server sino alla 10.6 “Snow Leopard” ed ora abbandonato in favore di PostgreSQL (sia per ragioni tecniche che, temo, di licenza vista l’acquisizione del primo nel mondo Oracle); con questa procedura si ovvierà al cambiamento appena descritto.
Possiamo innanzitutto verificare quale versione di PHP è fornita con il sistema operativo, dovremo utilizzare il programma Terminal.app ed i comando bash:
username@[~]: PHP -v
PHP 5.3.6 with Suhosin-Patch (cli) (built: Jun 16 2011 22:26:57)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
Allo stesso modo per Apache:
username@[~]: httpd -v
Server version: Apache/2.2.19 (Unix)
Server built: Jun 16 2011 22:09:54
Appurata l’effettiva installazione di entrambi ora dovremo andare ad attivare il modulo necessario al webserver per la corretta gestione del linguaggio PHP. Questo avviene in maniera del tutto analoga al mondo *nix dove si va a modificare il file. Questo si trova all’interno della directory di sistema (e pertanto invisibile al Finder) /etc/Apache2/.
Da terminale, quindi, impartiremo i seguenti comandi:
username@[~] cd /etc/Apache2
username@[~] sudo nano /etc/httpd.conf
Con i precedenti comandi ci siamo spostati nella cartella contenente il file, quindi abbiamo invocato l’editor di testi nano con privilegi amministrativi, infatti il secondo comando provocherà la richiesta di immissione della password di un utente con tali privilegi. Una volta avviato nano con il comando “control+w” andiamo ad immettere nel campo di ricerca la parola “PHP” che provocherà il ritorno di questo risultato:
#LoadModule PHP5_module libexec/Apache2/libPHP5.so
A questa dovremo rimuovere il # ad inizio riga (de-commentare, come si dice più correttamente) in modo che la linea diventi:
LoadModule PHP5_module libexec/Apache2/libPHP5.so
Graficamente la situazione è quella nello screenshot sottostante:

Premiamo quindi i tasti “control + x” per uscire da nano e diamo conferma del salvataggio del file premendo “y“.
Andiamo ora ad installare il terzo pezzo del puzzle: MySQL. Lo possiamo scaricare dal sito Apple o direttamente dal sito del progetto MySQL, scegliendo la versione Community per Mac OS X nella versione x86 o 64bit a seconda dell’architettura del nostro sistema (Lion funziona a 64bit tutte le volte che può, quindi la scelta mi pare ovvia).
Quando il sito ci chiederà se vogliamo registrarci, scegliamo poco più in basso l’opzione “No thanks, just take me to the download!” in maniera da ottenere il nostro DMG che, estratto, si presenterà come segue:

A questo punto installeremo prima il package relativo a MySQL, successivamente MySQLStartupItem ed infine il MySQL.prefPane. Il primo è il DBMS vero e proprio, il secondo ed il terzo (quest’ultimo a funzionante a 32bit al momento) permettono di avviare correttamente al boot o al comando dell’utente il servizio. Possiamo notare che nel Pannello delle Preferenze è correttamente indicato lo stato del demone.

Possiamo verificare, come fatto precedentemente, l’effettiva installazione del nuovo pacchetto. Premurandoci di avviarlo come mostrato nello screenshot, aperto il terminale impartiamo il comando:
username@[~]: /usr/local/MySQL/bin/MySQL -v
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 118
Server version: 5.5.14 MySQL Community Server (GPL)
Reading history-file /Users/username/.MySQL_history
Type 'help;' or '\h' for help. Type '\c' to clear at the current input statement.
Questo comando, oltre a mostrarci la versione di MySQL in uso, ne attiva anche una sessione da cui usciamo con il comando “\q“.
Il passo successivo è quello di mettere in sicurezza la nostra installazione, questo avverrà tramite l’utilizzo del comodo script:
username@[~]: sudo MySQL_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we’ll need the current
password for the root user. If you’ve just installed MySQL, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
… alle cui domande dovremo rispondere a seconda della nostra configurazione. È buona norma avere una password dell’utente root di MySQL diversa da quella di un utente con privilegi amministrativi del sistema. In questo modo avremo decretato un accesso esclusivamente autorizzato al demone MySQL motivo per cui, per ogni ulteriore interazione con esso, dovremo esplicitare l’utente e la password del nostro utente:
username@[~]: MySQL -u root -p[password]
Facciamo attenzione al fatto che NON vi è spazio tra il parametro -p ed il campo [password] nel comando precedente.
Arrivati a questo punto non ci rimane che vedere come avviare/fermare il server web Apache. Questo viene ottenuto mediante l’attivazione (o meno) della funzionalità di Condivisione Web all’interno del pannello Condivisione in Preferenze di Sistema.

Alternativamente abbiamo sempre a disposizione il Terminale, e potremo impartire i comandi:
sudo Apachectl start
sudo Apachectl stop
(possiamo fare riferimento alla pagina di manuale di Apachectl – man Apachectl – per vedere quali sono le altre opzioni messeci a disposizione da questo comando oltre il semplice avvio/stop. A questo punto all’indirizzo web
http://localhost/~username/
possiamo visualizzare la pagina iniziale del nostro sito web. Questo è contenuto nella directory Siti che possiamo vedere nel Finder quando esploriamo la nostra home utente (via terminale corrisponde al percorso assoluto /Users/username/Sites/).
Chiudiamo questa lunga annotazione andando a visualizzare tutti i parametri di configurazione di PHP attraverso l’uso del file testuale PHPinfo.PHP (che possiamo creare con TextEdit nella sopra menzionata cartella) ed il cui contenuto è unicamente la seguente riga:
<?PHP PHPinfo(); ?>
Puntando il nostro browser web all’indirizzo:
http://localhost/~username/PHPinfo.PHP
potremo visualizzare la seguente schermata:

Questo è quanto, buon lavoro!
—
PS = questo articolo traduce l’articolo omonimo di CoolestGuyPlanet.