PHP e MySQL su Mac OS X 10.2.6 in pochi minuti

(versione 3.0)

Prima di iniziare sono doverosi i ringraziamenti per tutti coloro che hanno usato la rete per condividere le proprie conoscenze; e in particolar modo vorrei ringraziare:

Originariamente questa guida serviva per avere un "server in locale" dove con GoLive costruire le mie pagine in PHP e MySQL senza essere connesso al server permanentemente.

All’inizio usavo i pacchetti di Marc Liange e spesso, come capita parlando con amici-colleghi, spiegavo come avevo fatto per installare il tutto. Con il tempo mi sono accorto che non sempre era alla portata di tutti: troppe modifiche attraverso il terminale e spesso qualcosa non andava per il verso giusto, per cui, tra le mie conoscenze e le ricerche fatte in rete, ho trovato qualcosa che potesse essere comprensibile e utilizzabile da chiunque.

Le finalità della guida sono: avere un serie di istruzioni non complesse per attivare il PHP e MySQL sul proprio Mac; poter imparare i linguaggi di programmazione; presentare ad un cliente un sito dinamico senza metterlo su un server e senza bisogno di una connessione ad Internet.

Ho ricreato la stessa situazione che avevo sul mio server e su una macchina che mi è stata messa a disposizione da Ideama. Non è necessario avere l’ultimissima versione di Apache, PHP o MySQL se non rispecchia la situazione sul server!

L’unica differenza, nel momento in cui sto finendo di scrivere queste note, che la versione di PHP sui server Ideama è passata da 4.1.2 a 4.2.2 particolare irrilevante ai fini dello studio o delle prove che si possono fare in "locale".

Per fare le modifiche necessarie sono necessari la calma, l’attenzione, la lettura di questa guida, BBedit lite e meno di trenta minuti di tempo

Le prime cose, le dovete cercare dentro di voi, mentre BBedit Lite 6.2.1 lo potete trovare a questo link:

ftp://ftp.barebones.com/pub/freeware/

Buon Lavoro!

Capitolo 1 – Attivare il PHP e modifiche su httpd.conf

Le prime modifiche che si devono fare sono sul file httpd.conf.

Per modificare il file httpd.conf, è necessario entrare nel sistema come utente root, oppure è possibile modificare il file httpd.conf senza entrare come utente root, usando BBedit versione shareware oppure con TextWrangler, anch’esso shareware e di Barebones.
Da Bbedit lite per Mac Os X, dal menu FILE -> Open Hidden...

dalla finestra di dialogo scegli da show: All Available

da From: Home

per poi risalire (spostando la scrollbar orizzontale) sino al disco che contiene il Mac Os X, selezione del disco, e a lato, compariranno una serie di cartelle nascoste (normalmente non visibile con Os X) scorrere fina ad etc (cartella con un simbolo di alias) scegliere la cartella httpd, selezionare httpd.conf, clic su Open…

Nota 1: nella cartella httpd sono contenuti i file httpd.conf originale e modificato; potrebbe essere utile confrontarli prima di fare le modifiche.

abilita il PHP alla linea 239

Nota 2: per attivare in numero di righe in Bbedit Menù BBedit Lite -> Preferences -> Status Bar ed attivi "Show Line Numbers" se preferisci, li puoi attivare tutti.

da:

#LoadModule php4_module        libexec/httpd/libphp4.so

Trasformare la riga in:

LoadModule php4_module       libexec/httpd/libphp4.so

Levando il "cancelletto" davanti alla riga, hai attivato il modulo php, cioè l’hai "de-commentata"

Vai alla riga 282 e da:

#AddModule mod_php4.c

"de-commenta" la riga in:

AddModule mod_php4.c

Nota 3: per mia comodità ho deciso di usare la cartella "Sites" (/Users/nome_user/Sites) come Document Root al posto della cartella Documents (/Library/WebServer/Documents) se non vuoi avere la Document Root nella cartella Sites non fare questa modifica.

Vai alla riga 363 e da:

DocumentRoot "/Library/WebServer/Documents"

Commenta la riga:

#DocumentRoot "/Library/WebServer/Documents"

e scrivi sotto:

DocumentRoot "/Users/nome_user/Sites"

Nota 4: nome_user è il nome dell’utente di Os X… per sapere il nome esatto apri la cartella "Users" e vedi quale nome ha l’icona con l’immagine di una casa. Nella macchina che sto usando corrisponde a gio.

Vai al blocco compreso dalla riga 380 a 400 (cerca la riga <Directory"/Library/WebServer/Documents">) da:

<Directory "/Library/WebServer/Documents">

commenta la riga:

# <Directory "/Library/WebServer/Documents">

e scrivi sotto:

<Directory "/Users/nome_user/Sites">

Vai al blocco compreso dalla riga 440 a 460 (cerca la riga DirectoryIndex index.html) da:

<IfModule mod_dir.c>
  DirectoryIndex index.html
</IfModule>

Trasformare la riga in:

<IfModule mod_dir.c>
    DirectoryIndex index.html index.php index.php3 index.htm index.phtml
</IfModule>

Vai al blocco compreso dalla riga 850 a 860 (cerca la riga AddType application/x-tar .tgz ), da:

AddType application/x-tar .tgz
AddType image/x-icon .ico

Trasforma aggiungendo le righe:

AddType application/x-httpd-php .php .php3 .phtml
AddType application /x-httpd-php-source .phps AddType application/x-tar .tgz
AddType image/x-icon .ico

Nota 5: A questo punto puoi salvare le modifiche e fare il logout da "root" e rientrare come amministratore e fare le prove per verificare il funzionamento del server Apache e dell’attivazione del PHP.

Se hai impostato la DocumentRoot nella cartella "Sites" metti il file test.php nella cartella Sites e crea una cartella di nome scarto o altro nome di fantasia, dove metterai index.html e la cartella images, oppure puoi semplicemente cancellarli.

Se la DocumentRoot è quella di defaut "/Library/WebServer/Documents" crea una cartella all’interno di "Documents" dai come nome "proveweb" (metti dentro test.php) o altro nome di fantasia e ricordati che il percorso da digitare nel browser sarà:

http://127.0.0.1/proveweb/test.php

Con la configurazione di default, puoi usare anche la cartella "Sites" ma il percorso da digitare nel browser è http://1127.0.0.1/~nomeutente/ Trovo il tutto un po’ scomodo, per questo ho deciso di usare direttamente "Sites" come DoumentRoot

fai partire il server facendo doppio click su start_apache_dan (si tratta di uno script shell)

immetti la tua password quando ti viene richiesto, terminato lo script shell, fai partire il browser e digita http://127.0.0.1/test.php come risultato avrai questo:

Capitolo 2 – Attivare il virtualhost in Os X  - Altre modifiche su httpd.conf

Vai al blocco compreso dalla riga 355 a 365 (cerca la riga #ServerName gump)

Nota 6: come "ServerName" ho scelto il nome di fantasia www.gomes.web ovviamente potete usare il nome (stringa) che preferite, a patto che corrisponda in NetInfo

Curiosità: ad ogni rilascio di Os X il ServerName cambia nome

Da:

#ServerName gump

trasforma in :

#ServerName gump
www.gomes.web

Salva il tutto, fai il logout da root e rientra come amministratore o utente abituale. Apri NetInfo Manager (contenuto in Applications -> Utilities) e inserisci la password per fare le modifiche in NetInfo (autentificazione)

Nota 7: per autenticarti in NetInfo menu Sicurezza -> Autentica…

Dopo l’autentificazione cerca la voce "machines" e di seguito "localhost"

seleziona "localhost" e duplica la voce, usa il pulsante "Duplica" conferma la modifica cliccando su "Duplica"

modifica il valore di "localhost copia" nella voce "name" e inserisci il nome di fantasia che hai scelto, (nell’esempio www.gomes.web viva la fantasia!) uguale a quello che hai indicato nell’httpd.conf.

Nota 8: per modificare il valore della voce "name" fare doppio click sul valore

è sufficiente spostarsi sulla voce localhost da localhost copia, NetInfo chiede di salvare le modiche, e di aggiornare la copia in uso.

Registra e conferma la "modifica"

Nota 9: e hai settato un proxy nel pannello di controllo network,  assicurati che non sia attivo per i domini locali.

Nella prossima pagina un esempio di come potrebbe essere "raggiunto il sito dopo aver fatto le modifiche spiegate e attivato il server con la coccinella!!!

Nota 10: per comodità, ho fatto un link alla cartella "Sites" sul dock in modo tale da poter "raggiungere" i siti o le cartelle sulle quali lavoro con una paio di click

Un sito in php nel mio Mac all’indirizzo http://www.gomes.web...

...Lo stesso sito raggiungibile all’indirizzo http://127.0.0.1

Capitolo 3 – Installazione di CompleteMySQL 3.23.54

Nota 11: il pacchetto CompleteMySQL-3.23.54a.dmg è possibile scaricarlo direttamente da http://www.glugitalia.org/glugdwl.htm grazie alla concessione di Aaron Faby, creatore dello stesso. Per chi desidera installare una versione superiore, può consultare il sito ufficiale di Aaron Faby: http://www.aaronfaby.com. Ricordatevi di fare una donazione all’autore se ritenete valido il pacchetto per il vostro uso.

Nota 12: all’interno del pacchetto ci sono le istruzioni per l’installazione, la guida di riferimento per MySQL, i driver per gestire/interfacciare MySQL in altro modo, e il pannello delle preferenze. In alcune occasioni, pur seguendo le istruzioni dettagliate contenute nel pacchetto MySQL non funzionava a dovere e dovevo intervenire tramite terminale. Credo di aver trovato il motivo: in quasi tutte le installazioni preferivo impostare l’uso del pannello delle preferenze di CompleteMySQL a tutti gli utenti. Per ovviare al problema ho fatto una serie di prove e sono arrivato alla conclusione che il pannello delle preferenze deve essere installato solo sull’utente principale, in caso di più utenti sulla stessa macchina, installare il pannello per ogni utente.

Scarica il pacchetto CompleteMySQL-3.23.54a.dmg, dalla scrivania, apri il "disco immagine" e fai doppio click su MySQL.pkg. L'installazione prosegue normalmente: richiesta di autorizzazione; lettura della licenza; disco sul quale si deve installare il pacchetto; ecc.. Dopo aver installato con successo il pacchetto si deve installare il pannello delle preferenze per inizializzare MySQL e renderlo attivo. Verifica se esiste una cartella di nome PreferencePanes in /Users/tuo_nome_utente/Library/

se la cartella non esiste (con molta probabilità) la devi creare.

Per cui, click destro del mouse, e dal menu a discesa "Nuova Cartella" oppure Shift+mela+n dalla tastiera, come nome PreferencePanes all’interno, metti MySQL.prefPane

Apri Preferenze di Sistema e verifica se appare la categoria Accessori e all’interno MySQL, siamo a buon punto, se non appare... bhé controlla meglio gli ultimi passaggi e nel caso ripeti la procedura.

click su MySQL, per entrare nel pannello di controllo di MySQL, click sul pulsante "initialize" per attivare MySQL

in poco tempo vedrai il messaggio che ti conferma l’avvenuta attivazione di MySQL

Nota 13: non impostare nessuna password di root per MySQL, in caso di problemi potresti non riuscure ad entrare nella configurazione di MySQL

MySQL attivato... MySQL funzionante!

Capitolo 4 installare phpMyAdmin

Nota 14: per scaricare l’ultima versione vai su http://www.phpmyadmin.net/

Mentre per le vecchie versioni http://sourceforge.net/project/showfiles.php?group_id=23067

PhpMyAdmin è una "utility" gratuita per amministrare i DataBase basati su MySQL, in piu’ di quaranta lingue; permette di creare modificare gestire e realizzare le query su una tabella... Ma di questo, ne parleremo in futuro, l’obbiettivo del momento è solo di impostare questa utility.

La versione di phpMyAdmin presa in esame è la 2.2.0 la stessa che è nel server dove sono amministrati i siti web che gestisco, anche se vecchia e con poche caratteristiche la trovo abbastanza semplice per capire come funziona questa utility.

Nota 15: una versione pronta all’uso è già presente nella cartella che accompagna questo tutorial, mentre la versione stabile disponibile è la 2.5.3, alla chiusura di questa nota.

Una volta scaricato il pacchetto dal sito, decomprimilo con Stuffit Expander da Os X, verrà creata una cartella denominata phpMyAdmin-X.X.X, (dove X.X.X. indica il numero diversione)  rinominatela in myadminXXX, all’interno della cartella cercate un file di nome config.inc.php

Vai al blocco compreso dalla riga 32 a 42 e cerca la riga $cfg['PmaAbsoluteUri'] = '';

da:

$cfg['PmaAbsoluteUri'] = '';

Trasformare la riga in:

$cfg['PmaAbsoluteUri'] = 'http://127.0.0.1/myadminXXX/';

cioè devi indicare il percorso esatto della cartella che contiene phpMyAdmin http://www.il_mio_sito_web/il_percorso_della_cartella_php_my_admin/

Salva e esci…

Nota 16: questo file, come tanti altri in ambiente Unix, necessitano dell'"accapo" in formato Unix e non mac. Controlla sempre il ritorno a capo dell’editor di testo che stai utilizzando per modificare il file. Se usi BBedit (come credo) non dovresti avere questo problema, in quando riconosce il tipo di "accapo" esitente, e lo mantiente, oppure se hai seguito il suggerimento nella nota 1a non avrai problemi. (siamo comunque in ambiente Unix con Mac Os X!)

Metti la cartella "myadminXXX" in "Sites" o dove hai deciso di avere la DocumentRoot e dal browser: http://127.0.0.1/myadminXXX/ scegli la lingua e inizia ad esplorare phpMyAdmin…

Nota 17: puoi tenere più versioni di phpmyadmin, personalmente ne ho quattro: la 2.2.0 per gestire i miei siti web, due vesioni "interemedie" di due strutture diverse che seguo assieme ad un amico e l’ultima "versione stabile" rilasciata, per vedere soprattutto quali innovazioni sono state introdotte. Per avere una guida di riferimento in phpMyAdmin puoi usare questo link: http://127.0.0.1/myadminXXX/documentation.html oppure la voce phpMyAdmin Documentation in home page

Nota 18: spesso importo i database esistenti di siti di progetti ideati da altri amici-collegi con questa sintassi:

[gomes:~] gomes% sudo /library/mysql/bin/mysql prova </Users/gomes/Desktop/tutorial.sql

sudo = per entrare come superutente

/usr/local/mysql/bin/mysql = il percorso dove si trova

prova = il nome del db che ho creato in phpmyadmin

< = simbolo che inserisce il file "tutorial.sql"  nel database prova

/Users/gomes/Desktop/tutorial.sql = percoso, e file ".sql" che dovevo inserire nel db

La parte di sintassi: /library/mysql/bin/mysql può variare a seconda della distribuzione installata di MySQL scelta.

Sezione Domande e Risposte:

Agosto 2003

D: Nel tuo tutorial, indichi delle righe dove si trovano dei parametri da attivare, ma non li ho trovati alle righe che hai detto, perché?

R: Non so, forse sono diversi i file httpd.conf che abbiamo modificato, oppure è sufficiente mettere degli "a capo" in più o levare delle righe che non corrisponde più la "numerazione" delle righe. Comunque, puoi usare il comando trova in BBedit

(Menu’ Search -> Find... oppure mela+f)

----------------------------------------------------------------------------------------

D: Come faccio a sapere qual’é il mio "nomeutente" da usare dopo l’indirizzo http://127.0.0.1 ? (http://127.0.0.1/~nomeutente/)

R: Il "nomeutente" corrisponde al nome breve che hai dato durante l’installazione di Os X, se non lo ricordi, puoi vederlo in

Preferenze di Sistema -> Account, fai click sul pulsante "Modifica, alla voce Nome breve trovi il tuo "nomeutente".

----------------------------------------------------------------------------------------

D: Come si fa il simbolo che procede il nome utente?

R: Il "simbolo" che procede in nome utente si chiama tilde! :^) Puoi ottenere la tilde con  a combinazione di tasti: ALT+N e di seguito BARRA SPAZIATRICE.

----------------------------------------------------------------------------------------

D: Uso la "coccinella" per far partire il server Apache, ma cliccando sopra, non si ferma il server, perché?

R: la "coccinella" è uno script shell che ho fatto per non ripetere il comando nel terminale, e  server solo per farlo partire, fare un secondo scrip shell per farmare il server era un po’ laborioso... Comunque, se vuoi fermare il server:

Preferenze di Sistema -> Condivisione alla voce "Condivisione Web", premi il pulsante Stop.

----------------------------------------------------------------------------------------

D: Potresti dirmi qualcosa di più su MySql, magari un tutorial?

R: Si, magari! :)))  No, non ho un tutorial per MySql, sto cercando di prendere possesso della materia.

----------------------------------------------------------------------------------------

D: In Explorer non mi funziona il server e il php, mentre in Netscape si, perchè? (faccio http://localhost/cartelladelsito)

R: Se fossi un mago lo saprei!!! :))) A parte gli scherzi, non so dirti il perchè Explorer non riconsca "localhost", sembrerebbe un bug o una limitazione voluta, sinceremente non mi sono mai preoccupato di questo. Vai sul sicuro, usa sempre http://127.0.0.1/

----------------------------------------------------------------------------------------

D: Come faccio a vedere i log del server?

R: Che cosa significa? :) Se vuoi sapere gli errori e gli accessi (non so a cosa ti possa servire se sei solo tu come utente ad usare Apache) io, faccio in questo modo: fai una copia di BBedit lite, (solo l'seguibile) la rinomini in BBedit la metti a livello di root, e poi tramite questi comandi da teminale, puoi vedere i file error_log e access_log

open -a bbedit /var/log/httpd/error_log
open -a bbedit /var/log/httpd/access_log

oppure, da terminale:

open -e textedit /var/log/httpd/error_log

oppure anche:

open /var/log/httpd/error_log

i file verranno aperti con l'editor di testi di dafault del sistema: TextEdit.

----------------------------------------------------------------------------------------

D: vorrei usare i CGI per fare delle prove, come si attivano i CGI?

R: nell’httpd.conf di Mac Os X 10.2.6  i moduli che gestiscono i cgi sono attivi di default, se per caso, non lo sono, o non ne sei sicuro, accertati che le righe:

LoadModule cgi_module libexec/httpd/mod_cgi.so e AddModule mod_cgi.c

Non siano precedute dal simbolo del cancelletto "#", pena: verranno ignorate, nella cartella CGI-Executables sono contenuti due file:

printenv e test-cgi, duplicali, e rinominali in printenv.cgi e test.cgi (non sarebbe necessario, ma lo preferisco). Da terminale, si deve dare "l'accesso" alla zona dove è contenuto il CGI, per cui procedi come da esempio:

cd /library/webserver/cgi-executables

sudo chmod 755 printenv.cgi

Adesso, prova a "chiamare" il file .cgi in questo modo:

http://127.0.0.1/cgi-bin/printenv.cgi

vedrai l'output che ti conferma il funzionamento dei cgi.

Ripeti l'operazione:

cd /library/webserver/cgi-executables

sudo chmod 755 test.cgi

http://127.0.0.1/cgi-bin/test.cgi

con queste impostazioni, i cgi funzioneranno solo se saranno messi nella cartella CGI-executables contenuta in WebServer (/Library/WebServer/CGI-Executables/)

NOTA: Sul numero 196 di Applicando, (Maggio 2002) c'è un esauriente articolo sull'argomento. :)

----------------------------------------------------------------------------------------

D: Dove hai preso le icone della coccinella e del grillo? :))) Sono davvero carine!!!

R: …Ehm, ed io che pensavo che la guida ti avrebbe entusiasmato… :))) Il set delle icone, si chiama xBugs e provengono da questo sito: http://www.pixeljerk.com/  purtroppo non è più attivo :,-(((