2008-03-08

Attivare PHP su Leopard

Aggiornamento aprile 2009------------------------
Se siete interessati ad utilizzare PHP, Apache e MySQL, vi potrebbe interessare un tutorial gratuito scaricabile da questo sito; viene descritta più diffusamente tutta la procedura di attivazione di Apache e PHP, l'installazione di MySQL e la descrizione di alcune interfacce per il database, che ne facilitano l'uso. E poi è gratis!
-------------------------
Ormai tutti gli utenti Apple che si cimentano con la programmazione web sanno che sotto al cofano di OS X possono trovare già pronto Apache, il famoso web server. Sanno anche che il PHP è disponibile, attivabile dietro qualche smanettamento sui file di configurazione di Apache. Fino alla versione X.4 (Tiger) si trovano in rete molti tutorial su cosa fare, ma con X.5 (Leopard) qualcosa è cambiato, soprattutto se vogliamo utilizzare PHP con MySQL. Qualche sito c'è, ma trovarlo non è proprio semplice e poi occorre mettere assieme un po' di pezzi da siti diversi. Provo quindi a fare un riassunto di come attivare Apache, PHP e MySQL, sperando di essere utile a qualcuno!

Apache: su Leopard arriva installata la versione 2. Come con Tiger, l'attivazione è semplicissima: Preferenze di Sistema -> Condivisione e nella lista dei servizi, click su Condivisione Web. A fianco della lista sono riportati gli URL ai quali occorre puntare il browser per accedere da un altro computer ai siti su questo Mac. Se usiamo Apache per sviluppo web, i corrispondenti URL sono disponibili anche come localhost: anzi, per prova, apriamo Safari e digitiamo

http://localhost/

e ci compare la pagina di benvenuto di Apache, mentre digitando

http://localhost/~nomeUtente

vedremo la pagina di inizio di quell'utente. Con Apache siamo a posto: le impostazioni di default andranno bene per la maggior parte degli usi, per cui non dobbiamo fare altro. Il percorso dove andare a costruire il sito del computer (quello raggiungibile con il primo URL) è:

/Library/WebServer/Documents/

mentre il sito di un utente è posizionato nella cartella Siti (quasi ovvio, vero?):

/Users/nomeUtente/Sites/

Per spegnere Apache, torniamo nelle Preferenze di Sistema e togliamo il check a Condivisione Web. È possibile farlo anche via terminale, ma facciamo le cose semplici, finché possiamo!


PHP: con X.5.2 arriva installata la versione 5.2.4. Anche ora, evitiamo il terminale per non rischiare di fare danni e scarichiamo l'ottimo (e gratuito) TextWrangler, che permette di aprire e salvare anche quello che di solito non possiamo vedere nel nostro Mac. Andremo ora a modificare il file Apache HTTP Server Configuration, più volgarmente indicato come httpd.conf... Si trova in una cartella giustamente nascosta (sì, se non facciamo un minimo di attenzione possiamo combinare un bel pasticcio!), ma TextWrangler ci aiuta: lanciamolo e scegliamo il comando File - Open Hidden. Nel consueto dialogo di apertura file possiamo vedere e aprire tutti gli elementi invisibili! Resistiamo alla curiosità di aprire tutto (mi raccomando!) e puntiamo decisamente al seguente file, partendo dall'hard disk (non dalla Home dell'utente):

/etc/apache2/httpd.conf

Apriamolo, scegliamo il comando Search -> Find, nella casella di ricerca scriviamo php5 e click sul pulsante Find. TextWrangler ci mostra la prima riga trovata che contiene 'php5'; dovrebbe essere la seguente:

#LoadModule php5_module libexec/apache2/libphp5.so

Il segno '#' indica che la riga di configurazione non è attiva; allora noi lo togliamo! Cioé, andiamo col mouse a cliccare vicino al segno # e cancelliamolo! Rileggiamo con attenzione e verifichiamo di non aver toccato altro: la riga deve essere così:

LoadModule php5_module libexec/apache2/libphp5.so

In pratica diciamo ad Apache di caricare il modulo del PHP versione 5. Resistiamo alla tentazione di dare un'occhiata al resto del file e salviamo. Dato che siamo in una cartella protetta, ci viene chiesta la password di amministratore, che noi diligentemente forniamo. Apache legge questo file all'avvio, per cui dobbiamo fermare Apache e riavviarlo, come abbiamo imparato sopra, usando le Preferenze di Sistema... e PHP è attivo!

Bene! E... adesso? Andiamo a controllare che abbiamo fatto tutto giusto, cioé creiamo un file in php... e vediamo se funziona! Torniamo a TextWrangler, apriamo una finestra nuova e al suo interno scriviamo

<?php phpinfo(); ?>

e salviamo questo file con un nome a piacere, basta che abbia l'estensione php; io ho scelto provaInfo.php (fantasia, eh?). Non possiamo metterlo in un posto qualunque: deve essere dove Apache si aspetta di trovare file di un sito web, per esempio dentro /Users/nomeUtente/Sites, che poi altro non è che la cartella Siti nella Home del nostro utente (noi vediamo il nome in italiano, ma quello vero è Sites). Quando Apache troverà questo file, lo passerà al modulo PHP che saprà cosa farsene! Infatti, torniamo a Safari e puntiamolo all'indirizzo
http://localhost/~nomeUtente/provaInfo.php
se tutto è a posto, vedremo una miriade di informazioni sulla versione di PHP installata!
Per oggi abbiamo finito! La prossima puntata vedremo come installare MySQL, il più conosciuto database openSource e... ci dovremo dare da fare col Terminale. Per ora, divertiamoci a ripassare il PHP e a provarlo sul nostro Mac!

13 commenti:

Unknown ha detto...

Bello ... ma non funziona mi dice che non ho i permessi per vedere il mio sito:
You don't have permission to access /~mionome
Aiuto.. cosa sbaglio...

MassimoM ha detto...

Strano, quella cartella deve appartenere al tuo utente, visto che si trova nella tua Home. Domanda cretina: si hai messo davanti //localhost ?
Proverei anche a riparare i permessi, non si sa mai...
Sei loggato con quell'utente?
Ti funziona il link http://localhost ?
Ciao

MassimoM ha detto...

Un momento, un momento!
Mi è venuto in mente che potrebbe essere un problema di settaggi delle directory. Hai per caso provato l'indirizzo http://localhost/~mionome/ senza mettere il file provaInfo.php?
Sul mio PB funziona... Un modo c'è: nel file httpd.conf, alla riga contenente DirectoryIndex si può aggiungere, separato da un spazio, il nome di default del file da far partire in automatico quando si chiama una directory dal browser (p.es. index.php). Puoi provare e dovrebbe andare. Però resta il fatto che a me funziona anche senza questa aggiunta. Anzi: se cambio il nome del file da caricare in index1 mi fa vedere la directory, quindi i permessi ci sono!

Unknown ha detto...

Ciao Ragazzi anche a me non fa accedere... dice che non ho i permessi necessari
questo è il messaggio che mi da


You don't have permission to access /~mionome/ on this server.

Come mai???
Spero qualcuno mi possa aiutare visto che quella cartella è sul mio computer e mi sembraq strano che io non abbia i permessi per visualizzarla..
grazie mille
Ciao

Anonimo ha detto...

Complimenti per il Tutorial, mi hai risolto un grave problema!

Grazie di cuore!

TheFlea ha detto...

C'è poco da fare, in Mac OS X hanno messo tante di quelle cose che trovarle tutte è impossibile!
Grazie per avermene fatta scoprire una così utile, posso buttare XAMPP nel cestino :D

RaMino ha detto...

ottima guida :)

Ho un problema con questo comando


$f = fopen("dati.txt", "w")


Lo script dovrebbe creare un file 'dati.txt' nella stessa cartella dello script stesso ma ciò non avviene.
E' un problema di permessi? Come faccio a cambiarli?

grazie

Anonimo ha detto...

Se non riuscite ad accedere alla pagina utente (http://localhost/~mionome/) è perchè probabilmente avete fatto l'upgrade da tiger a leopard, per risolvere tale problema ho fatto un pò di ricerche tempo fa. Andando al sodo aprite il terminale e digitate

sudo cp /private/etc/httpd/users/* /private/etc/apache2/users/

fatto ciò riavviate il web server

ciao

MassimoM ha detto...

Ottimo Alberto, ecco perché a me non succedeva (prima di installare Leopard ne avevo approfittato per fare una memorabile pulizia dell'hard disk...).
Qualcosa sfugge anche ai programmatori di Apple...
Grazie!

Anonimo ha detto...

scusate anche io ho fatto quanto ho letto nella discussione ma ancora quando cerco di aprire via browser una pagina in php mi visualizza il codice sorgente della pagina....mi potete aiutare? grazie

MassimoM ha detto...

@Anonimo: quando si vede solo il sorgente, può essere che il php non è stato attivato; oppure che Apache non è attivo; o ancora che hai puntato il browser sul file, senza metterci http:// davanti e lui apre il file senza chiamare Apache.
Prova a verificare queste 3 cose, poi facci sapere.
Ciao!

Anonimo ha detto...

Ragazzi ma perchè a me direttamente non mi fa neanche aprire il file httpd.conf?? ho scaricato il software consigliato..ma non mi da la possibilità di aprirlo!!

Emilio ha detto...

Grazie per il tutorial, sono riuscito a farcela grazie a questa pagina, davvero ottima !