in Apple, Software

Installazione e configurazione di Apache, PHP e MySQL su Mac OS X

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:

nano load PHP Install and configure PHP, MySQL & Apache on OS X Lion 10.7 and 10.6

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:

MySQL install osx dmg Install and configure PHP, MySQL & Apache on OS X Lion 10.7 and 10.6

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.

MySQL system preference osx Install and configure PHP, MySQL & Apache on OS X Lion 10.7 and 10.6

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.

web sharing turned on Install and configure PHP, MySQL & Apache on OS X Lion 10.7 and 10.6

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:

PHP module configuration Install and configure PHP, MySQL & Apache on OS X Lion 10.7 and 10.6

Questo è quanto, buon lavoro!


PS = questo articolo traduce l’articolo omonimo di CoolestGuyPlanet.

  1. Ma perché farsi del male gratuito con MySQL? 😉

  2. Al comando sudo MySQL_secure_installation mi chiede la password e dopo averla inserita mi restituisce il seguente messaggio:
    Can’t find a ‘MySQL’client in PATH or ./bin

    • ciao, scusa se rispondo solo ora!
      hai provato a dare il seguente comando?

      sudo /usr/local/MySQL/bin/MySQL_secure_installation

      dove il percorso assoluto l’ho cercato con il comando which

I commenti sono chiusi.

Webmention

  • ancora su Apache, PHP e MySQL su OS X 10.7 Lion | kOoLiNuS ☞ il blog 11 Dicembre 2011

    […] passato su questo blog ho affrontato il problema di installare e configurare un ambiente AMP e PHPMyAdmin sulla pià recente release del nostro sistema operativo […]