come installare Apache + PHP + MySQL su OS X con Homebrew

Facendo felice il mio amico Signor D, e magari qualcun altro tra voi, ecco un veloce tutorial passo-passo per installare e configurare un ambiente di sviluppo web con Apache, PHP e MySQL (e phpMyAdmin) su OS X grazie all’aiuto di Homebrew.

Il tutto grazie ad un post di Diego Escalante, un hacker peruviano coinvolto nello sviluppo di Gnome (di cui giusto ieri è stata rilasciata la versione 3.12):

Setting up Apache + PHP + MySQL on OSX with Homebrew →

Buona lettura!

Creare un ecosistema sano. È possibile ?

Qualche tempo fa, durante una riunione dell’xpug romagnolo (che ora ha anche una pagina su G+), emerse il discorso sul rimanere a combattere piuttosto che emigrare. La serata, piuttosto che vergere sul classico auto compatimento è stata interessante ed ha portato a diversi punti chiave su cui lavorare. Il più importante è che se vogliamo lavorare bene dobbiamo migliorare l’ecosistema (informatico) all’interno del quale ci muoviamo.
via @Fullo ☞ Creare un ecosistema sano, è possibile.

Commenti e riflessioni facciamoli in calce al suo post!

ancora su Apache, PHP e MySQL su OS X 10.7 Lion

In 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 preferito.

più recentemente su una seconda macchina ho utilizzato un altro tutorial trovato online Setting up PHP & MySQL on OS X 10.7 Lion di Rob Allen.

Il tutorial è ben fatto ma, come constatavo pubblicamente l’altro ieri…

divertente vedere come i manuali di installazione riescano immancabilmente a saltare certi “ovvi” passaggi. Immancabilmente.

Ebbene, cosa manca al post di Rob???

    1. MySQL
      Va inserita la password dell’utente root ed eseguiti dei piccoli accorgimenti per mettere in sicurezza la nostra installazione. Questo è ottenibile lanciando il comando MySQL_secure_installation e seguendo l’iter proposto.
    2. Ensure that MySQL is running
      Questo è ottenibile ancora dalla linea di comando, che abbiamo appena usato per impartire il precedente comando con:
      MySQLadmin -u root status -p
      di verrà richiesta la password precedentemente impostata e avremo in risposta qualcosa come
      Uptime: 229 Threads: 1 Questions: 27 Slow queries: 0 Opens: 33 Flush tables: 1 Open tables: 26 Queries per second avg: 0.117
      se non ci sono stati problemi
    3. MySQL Networking
      Per default MySQL si mette in ascolto sulla porta 3306 di tutte le interfacce di rete del computer. Se vogliamo che la nostra installazione MySQL sia disponibile solo localmente vorremo probabilmente impedire connessioni esterne.
      Questo è ottenibile andando ad editare (o creare nel caso non fosse presente) il file /etc/my.cnf avente il seguente contenuto:
      [MySQLd]
      bind-address=127.0.0.1

      oppure
      skip-networking
      nel caso si volesse disabilitare del tutto la funzionalità  di rete e lavorare solo con le socket.
      A questo punto un veloce riavvio del demone MySQL con sudo /Library/StartupItems/MySQLCOM/MySQLCOM ed un rapido check con
      netstat -an | grep 3306
      ci confermerà l’avvenuto legame (bind) con l’interfaccia 127.0.0.1
      tcp4 0 0 127.0.0.1.3306 *.* LISTEN
    4. La root directory di Apache è /Library/WebServer/Documents;
    5. il demone Apache gira con utente e gruppo _www, se stai sviluppando con WordPress e vuoi utilizzare tutti i tool di installazione e configurazione automatica di temi e plugin cui è dotato il popolare CMS assicurati di impostare correttamente proprietario e gruppo della cartella del progetto 😉

Penso sia tutto!

installare PHPMyAdmin su Mac OS X

Per la ‘rassegna‘ segnatelo sul blog così sai sempre dove ritrovarlo oggi pubblico la traduzione di un articolo di Coolest Guy on the Planet sulla installazione di PHPMyAdmin, un tool che parecchi sviluppatori si trovano a dover installare / gestire / usare per interagire con il DBMS MySQL evitando di metter mano al terminale. La procedura descritta è stata testata con successo dia su Mac OS X 10.6 “Snow Leopard” che su 10.7 “Lion“.

Andiamo sul sito web del progetto e scarichiamo il file PHPMyAdmin-X.Y.K-english.tar.gz – sempre che non siano necessarie la localizzazione e le altre – quindi andiamolo a decomprimere nella cartella web del nostro utente “/Users/$username/Sites” (e per lo scopo di quest’articolo si farà così, altrimenti dovremo installarlo nella root directory del webserver Apache /usr/share/web). Dopo di che potremo creare un alias, o rinominare, la cartella “PHPMyAdmin-X.Y.K-english” semplicemente in “PHPmyadmin”.

A questo punto è bene ricordare che dovremo già avere installato sul nostro sistema MySQL e averne correttamente configurato almeno l’utente root con le sue credenziali di accesso al DBMS.

La pagina di autenticazione per il nostro PHPmyadmin sarà  quindi visibile all’indirizzo http://localhost/~username/PHPmyadmin. Ovviamente Perché tutto funzioni correttamente dovremo eseguire alcune piccole procedure di configurazione, ad esempio specificare il nome dell’host del nostro database e qual è il socket di connessione allo stesso.
Per prima cosa correggiamo l’errore 2002 di MySQL, impartendo nel Terminale i seguenti comandi:

sudo mkdir /var/MySQL
sudo ln -s /tmp/MySQL.sock /var/MySQL/MySQL.sock

Creiamo nella cartella d’installazione di PHPMyAdmin una nuova directory chiamandola “config“.

mkdir ~/Sites/PHPmyadmin/config

Diamo agli ‘altri’ i permessi di scrittura alla cartella appena creata, è indifferente farlo attraverso CMD+I sulla cartella nel Finder, oppure attraverso Terminale con il comando:

chmod o+w ~/Sites/PHPmyadmin/config

Siamo finalmente pronti ad avviare lo script di setup, puntando il nostro browser all’indirizzo http://localhost/~username/PHPmyadmin/setup/, che ci porterà a visualizzare la pagina seguente:

setup server PHPmyadmin Installing PHPMyAdmin on Mac OSX 10.7 Lion & 10.6

Il nuovo server da configurare è localhost, clicchiamo quindi sul bottone NEW SERVER quindi inseriamo le credenziali d’accesso dell’utente locale per MySQL.

set username password PHPmyadmin Installing PHPMyAdmin on Mac OSX 10.7 Lion & 10.6

save PHPmyadmin config server Installing PHPMyAdmin on Mac OSX 10.7 Lion & 10.6

Dopo esserci accertati di aver salvato la configurazione inserita premendo il tasto SAVE, verrà generato un file config.inc.PHP nella cartella config da noi creata. Dovremo spostarlo nella cartella superiore e rimuovere, quindi, la cartella config divenuta vuota.

Tornando all’indirizzo http://localhost/~username/PHPmyadmin ed inserendo le nostre credenziali di accesso potremo finalmente interagire in maniera comoda e grafica con il nostro database.

NOTA BENE

La procedura di upgrade di PHPMyAdmin non è particolarmente complicata. Ci basterà scaricare l’ultima release della pagina di download del progetto e scompattarla nella directory precedente indicata, sovrascrivendo tutti i file avendo cura di preservare il file config.inc.PHP.

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.

come aggiornare PHP e MySQL su CentOS usando il repository di Remi

Ci siam trovati in ufficio a dover aggiornare l’accoppiata PHP/MySQL per il deployment di un paio di applicazioni bio-informatiche in corso di sviluppo.

I nostri sistemi, per N ragioni, sono ancorate al mondo rpm; quindi Red Hat Enterprise Linux ed il suo clone “free (as in beer)CentOS e il loro lento ciclo di update hanno prodotto la situazione per cui o affrontavamo l’aggiornamento “a mano” di 10 nodi con ricompilazione dei sorgenti, oppure adottavamo la strategia dell’adozione di un repository esterno alla distribuzione.

Dopo un’indagine abbastanza veloce abbiamo deciso di affidarci al lavoro, pluriannuale e ben noto, di Remi Collet. Una veloce ripassata a yum e ai suoi plugin ed i pacchetti erano installati, con la piccola rogna di un problema con le dipendenze di PHP-MySQL (probabilmente dovuta all’aggiornamento in fasi distinte di PHP prima e MySQL poi).

Risolto quello son passato ad esaminare MySQL e i database da esso gestiti, incontrando il simpatico errore qui sotto riportato:

ERROR 1146 (42S02): Table ‘MySQL.servers' doesn't exist

when you do a simple FLUSH PRIVILEGES;

Son quindi corso ai ripari con una veloce ricerca su Google che mi ha convinto della necessità di applicare SEMPRE, indipendentemente dal metodo di aggiornamento utilizzato (tar.gz, deb o rpm), il comando MySQL_fix_previleges_tables assieme alle altre indicazioni che si trovano nella documentazione ufficiale PRIMA di fare altre operazioni sui database..

Nella fattispecie impartendo il comando:

/usr/bin/MySQL_fix_privilege_tables --password=$your-MySQL-root-password

ha risolto il mio problema.

Alternativamente una soluzione avrebbe potuto essere quella proposta in questo post, ma come ho detto non c’è stato bisogno di fare altre operazioni.