Qualche tempo fa scrissi un articolo su come installare i diversi componenti AMP su Windows XP. Dopo l’acquisto del MacBook mi ero ripromesso di fare la stessa cosa non sul nuovo sistema, non appena avessi trovato il tempo di fare l’upgrade a Leopard. Bene, vediamo ora come installare e configurare:
- Apache.
- PHP.
- MySQL.
- PHPMyAdmin.
Premetto che Leopard è già dotato di Apache 2.2 e del PHP. Ma per esigenze personali ho compilato il PHP dai sorgenti distribuiti da PHP.net. E questo mi ha costretto anche a compilare Apache, in quanto quello compreso in Leopard è a 64bit mentre la libphp5.so compilata dai sorgenti è a 32bit ed impedisce al web server persino di avviarsi.
Fasi Preliminari
E’ necessario installare i tool di sviluppo che trovate direttamente nel DVD di installazione di Leopard. Inseritelo nel lettore del vostro Mac, aspettate che parta lo splashscreen.
Cliccate su Optional Install per installare i tool XCode mediante il pacchetto XcodeTools.mpkg.
In questo modo saremo in grado di compilare tutti i sorgenti necessari senza particolari problemi. Avremo installato, fra l’altro, il compilatore gcc che ci servirà sia per Apache che per PHP.
Apache
Niente di più semplice. Leopard è già pronto con Apache 2.2. Dovete solo attivare la condivisione web nelle preferenze di sistema.
Fatto questo accedete via browser a http://localhost (o http://127.0.0.1). Vi si aprirà la pagina di conferma di installazione del webserver. Ma a noi non piace la DocumentRoot configurata di default, ed allora come prima cosa la cambieremo π
Apriamo una finestra del terminale ed accediamo alla directory di Apache:
cd /etc/apache2
Il file di configurazione del webserver è il solito httpd.conf. Apriamolo con vim ed apportiamo le seguenti modifiche.
sudo vim httpd.conf
password:
Notato niente di strano? Ebbene si. Anche su Leopard è stato implementato il comando sudo per aprire ed accedere a file di sistema con tutti i privilegi.
Cerchiamo la riga:
DocumentRoot "/Library/WebServer/Documents"
E modifichiamola in:
DocumentRoot "/Users/VOSTROUTENTE/Sites"
E successivamente cerchiamo la riga:
<Directory "/Library/WebServer/Documents">
E modifichiamola in:
<Directory "/Users/VOSTROUTENTE/Sites">
Per VOSTROUTETE si intende il nome della directory che indentifica la root di sistema del vostro account. Nel mio caso è "davide". Ed inserendo la URI in questo modo la webroot sarà fisicamente nella directory "Siti" del vostro account. State attenti che nel finder il nome della directory che vedete è proprio "Siti", ma è solo un alias dovuto alla lingua italiana. Il nome di sistema dela directory è "Sites" e questo va scritto in ogni file di sistema che in qualche modo interessa questa direttiva.
Per rendere effettive le modifiche riavviamo il webserver:
sudo apachectl graceful
Ma abbiamo detto che il server Apache compreso nella distribuzione Apple non è compatibile con il php compilato dai sorgenti. Quindi, a configrazione ultimata e testata, ricompiliamo il web server dai sorgenti scaricati direttamente da Apache.org. Se lo fate oggi scaricherete la versione 2.2.8. Scompattate l’archivio un po’ dove vi pare, entrate nella directory e digitate il solito trittico di comandi.
sudo apachectl stop
cd httpd-2.2.8
./configure –enable-layout=Darwin –enable-mods-shared=all
make
sudo make install
sudo apachectl start
Fatto questo non ci sarà bisogno di riconfigurare il webserver per modificare la DocumentRoot. Andrà bene e verrà usato il file di configurazione precedentemente editato in /etc/apache2.
MySQL Server
Scaricate il pacchetto binario direttamente da MySQL.org. Installate il pacchetto mysql-5.0.51a-osx10.5-x86.pkg. Potete anche evitare di installare MySQLStartupItem, dato che al momento con Leopard non funziona. Ed anche il pannello di controllo aggiuntivo non va. Ma per quest’ultimo è stata rilasciata una versione funzionante, scaricabile qui.
Purtroppo non c’è ancora modo di avviare automaticamente il server all’avvio del sistema. La preferenza spuntata non funziona. Ma quantomeno risulta agevole avviarlo manualmente.
Librerie aggiuntive: libpng e libjpeg (opzionale)
Se abbiamo intenzione di usare le funzionalità date alla libreria GD del php, abbiamo la necessità di installare le librerie libpng e libjpeg. E’ possibile farlo direttamente utilizzando un archivio binario scaricabile a questo indirizzo. Per semplicità utilizzate il combo installer che in un sol colpo le installa entrambe.
Installazione PHP
Bene, siamo arrivati al clou della nostra avventura. Scaricato il pacchetto con i sorgenti, scompattiamo l’archivio ed accediamo alla directory da terminale.
cd php-5.2.5
Importante è la stringa di configurazione. Un ./configure –help può togliervi molti dubbi. In ogni caso la mia stringa è la seguente. Dopo il ./configure, i soliti comandi per compilare ed installare il pacchetto.
./configure –prefix=/usr/local/php5 –enable-calendar –with-apxs2=/usr/sbin/apxs –enable-mbstring –with-mysqli=/usr/local/mysql/bin/mysql_config –with-mysql=/usr/local/mysql/ –with-gd –enable-soap –with-zlib –with-jpeg-dir=/usr/local/bin –with-png-dir=/usr/local/bin
make
sudo make install
sudo apachectl graceful
Il comando install si occuperà anche di editare il file di configurazione di Apache per permettere il running della libreria libphp5.so. L’ultimo comando serve a far riavviare il webserver in modo da fargli caricare tutte le librerie necessarie.
Non ri rimane che testare l’installazione! Accediamo alla DocumentRoot e creiamo uno nuovo file. Chiamiamolo info.php. Con un qualsiasi editor di testo, scriviamo:
<?php phpinfo(); ?>
Salviamo e chiudiamo il file ed accediamo via browser a http://localhost/info.php. Se vediamo qualcosa del genere, se cose sono andate bene π
phpMyAdmin
Anche qui è tutto molto semplice. Basta scaricare l’ultima release del web tool di amministrazione del server MySQL, scompattare l’archivio in /Users/VOSTROUTETE/Sites e magari rinominare la directory in phpmyadmin per maggior comodità.
Avendo avuto cura che il server MySQL sia avviato, accedete via browser a http://localhost/phpmyadmin/scripts/setup.php ed utilizzate l’interfaccia web per la configurazione.
Per un uso in locale, senza troppo star a pensare alla sicurezza di un pc che non sarà mai utilizzato come web server pubblico, basta selezionare:
- Server hostname: localhost;
- PHP extensions to use: mysql (o mysqli se intendete usare la libreria improve);
- Autentication type: config;
- User for config auth: root;
Tutto fatto! Anche se secondo me, resta tutto molto più facile su Linux, ma la smetto qui che poi mi dicono che istigo guerre religiose fra sistemi operativi π
Personalmente preferisco MAMP: tutto in una cartella, puoi brasare e azzerare tutto in un attimo, attivi i server in pochi secondi π
E io nemmeno lo conoscevo prima di questo commento π
In ogni caso dipende sempre dal cosa serve. Se interessano configurazioni particolari, soprattutto di PHP, è sempre meglio compilarselo dai sorgenti avendo a disposizione tutte le opzioni di configurazione.
Per installazioni a cui servono le principali caratteristiche, MAMP per Mac, come EasyPHP per Win sono ottima soluzioni.
Scusa, non riesco a capire cosa vuoi dire quando ti riferisci ai sorgenti scaricati da apache.org. Potresti darmi una delucidazione? E saresti cosi' gentile da elencarmi dettagliatamente le operazioni da fare per l'installazione del pacchetto suddetto? Grazie e scusa per il disturbo.
@ Stefano: http://httpd.apache.org/download.cgi
Scarica gli UNIX Sources. E' un archivio tar.gz. Scompattalo sul desktop (o dove preferisci).
Da terminale, entra nella directory che avrai scompattato (si chiamerà httpd-2.2.8) e lancia questi comandi:
./configure –enable-layout=Darwin –enable-mods-shared=all
make
sudo make install
Dopo di che riavvia il webserver. Puoi farlo anche da pannello di controllo, disattivando e riattivando la condivisione web, come mostrato in figura sopra.
perfetto!! ho fatto tutto quanto mi hai suggerito, funziona! Ora però ho un altro problema: l'installazione di mysql non va a buon fine. Mi spiego: ho installato da qualche tempo MAMP, sembra che le due applicazioni vadano in conflitto, non capisco il motivo. Il fatto è che comunque mi viene detto che l'installazione di mysql è stata effettuata. Potresti darmi delle indicazioni? Grazie in ogni caso.
Come scritto prima non conosco MAMP, ma sicuramente prima di installare il server MySQL dai binari ufficiali è buona norma stoppare MAMP e magari disinstallarlo cercando di eliminare anche qualsiasi file di configurazione esterno alla directory in application.
Installato anche il pannello di controllo alternativo linkato sopra?
Non ti parte MySQL? Che errore ti da il sistema?
configure: error: mysql configure failed. Questo mi viene in output all'avvio della procedura "./configure –prefix=/usr/local/php5 –with-apxs2=/usr/sbin/apxs –enable-mbstring –with-mysqli=/usr/local/mysql/bin/mysql_config –with-mysql=/usr/local/mysql/ –with-gd –enable-soap –with-zlib –with-jpeg-dir=/usr/local/bin –with-png-dir=/usr/local/bin
" per php 5.2.5. Non so proprio che fare. Anche perchè mi avevano parlato di questo conflitto e nn se ne dice molto bene. Sinceramente sto facendo diversi lavori utilizzando MAMP e non mi va di disinstallarlo completamente. Lo stop dei servizi l'ho eseguito ma penso che non basti per questo tipo di situazioni, occorre qualcos'altro.
MAMP installa anche MySQL vero? Dove lo installa? Se non ti serve la mysqli prova questo, modificando però le direttive del –with-mysql
./configure –prefix=/usr/local/php5
–with-apxs2=/usr/sbin/apxs –enable-mbstring
–with-mysql=/questo/lo/sai/tu/
–with-gd
–enable-soap –with-zlib
–with-jpeg-dir=/usr/local/bin
–with-png-dir=/usr/local/bin
Grazie per le info, provo nelle prossime ore. A presto e buon lavoro.
Ma se usaste ZendCore? E' FREE π
http://www.zend.com/it/products/core/downloads
ho installato mysql…non funzona, come lo tolgo? non riesco a trovare l'uninstall…
Ho creato un piccolo tool per avviare mysql su leopard. E' un binario, ma fornisco anche il sorgente.
Se non dovesse funzionare basta metterci mano, non è complicato.
Qui il link (per chi fosse interessato):
http://preiser.altervista.org/index.php?page=mac&crono=mac
PREMESSA è da poco e con tanto sacrificio che cerco di mettere mano al "php" per fare prove in locale del mio sito, tu sei stato molto esaustivo, e tutto funzionava bene. Poi in phpmyadmin involontariamente ho cancellato tutti gli accessi compresi i root e da quel momento mi da "errore 1045" e non riesco da terminale ad accedere alla mia password. Scusami… come posso disinstallare sto "mysqul di MERDA" dal mio Leopard…
Credimi sto impazzendo… grazie e per favore dammi una mano
Ciao,
stavo provando a cambiare il file httpd.conf ma non riesco a salvarlo, ho provato anche a cambiare i permessi con chmod ma non ci riesco, …come fare ?
Fabio
@ Sasha: reinstallato come se facessi un upgrade. Nel file readme contenuto nel binario, trovi le indicazioni delle location.
@ Fabio: devi essere il super utente per modificare quel file
cd /etc/apache2
sudo vim httpd.conf
Complimenti per il tutorial. Mi è servito per compilare php col supporto per gd2.
Sono venuto incontro al problema del pannello preferenze ufficiale di MySQL realizzando un'applicazione con interfaccia che dovrebbe risolvere i problemi di avvio noti.
E' completamente gratuita.
Per chi fosse interessato:
http://preiser.altervista.org/index.php?page=mac&crono=mac
io nel mio disco originale di xLeopard 10.5.2 non ho le Xcode tools ..come è possibile? ..dove recuperare questa cartella?
azz..ma io sono proprio sfigato!
aggiungerei per quelli come me che iniziano:
nel terminale: a per entrare in modalità insert
ESC per uscire della modalità insert
shift + 2 volte Z per salvare.
Ottima guida π
Ciao a tutti,
Il mio problema è con phpmyadmin, mi da questo errore:
Messaggio di MySQL: Documentazione
#2002 – Il server non risponde (o il socket del server locale MySQL non è correttamente configurato)
ovviamente mysql è attivo da preferenze di sistema
Qualche suggerimento?
Grazie in anticipo
Davide
Scusa l'ignoranza io ho mac os x 10.5.5. Apache è sicuramente installato in quanto se digito http://127.0.0.1 vedo la pagina iniziale ma non riesco a trovare il file httpd.conf per editarlo, cercandolo con il finder non lo ntrova in nessuna cartella. Non esiste nemmeno una cartella etc da nessuna parte, chiedo venia ma sono nuovo di Mac. Spero tu mi possa dare un aiuto. Grazie.
Ciao Giginiello,
Per trovare quei file devi andarci da terminale. Pechè finder fa navigare solo le directory del tuo utente, ma non ti da accesso al sistema.
Ciao anche io sono nuova di Mac volevo sapere
quando dici:
Per rendere effettive le modifiche riavviamo il webserver: sudo apachectl graceful
cosa significa ? dove devo scrivere questo comando ? devo aprire una nuova finstra del teminale? ho provato a scrivere il comando aprendo una nuova finestra e anche nella stessa finestra in fondo al file appena modificato ma quando lo riapro per controllare le modifiche non sono state salvte .. uffi aiuto non capisco ciao grazie simo
Ci sono riuscita adesso sto cercando i file MySql ma non trovo quello di cui parli ho rovato solo mysql-5.0.67-osx10.5-x86.dmg va bene lostesso?
non va non vedo la pag mi dice che non è possibile connettrsi al server uff ora non so proprio cosa fare aiutoo
retifico tutto , mi sa che funziona non so come ci sono riuscita considerando che ho preso in mano mac da circa un mese e mezzo comunque peare che funga grazie a tutti comunque ciao
@ simo: l'operazione che descrivo io è quella effettuata da terminale. Scrivi il comando
In una finestra del terminale ed il webserver si riavvia.
Se non vuoi fare via terminale, puoi tranquillamente aprire il pannello delle opzioni di Leopard, scheda condivisione e fai un disattiva / riattiva la condivisione web.
Ottieni lo stesso risultato. Spegni e riaccendi apache π
grazie molto gentile posso chiederti un'altra cosa non trovo il file setup.php dentroa a script dell'ultima versione di phpmyadmin ??? come mai ?
con sto fatto sono bloccata non c'è prorpio , la versione che ho scaricato io è phpMyAdmin-3.1.1-rc1-all-languages.zip ne ho scaricate anche altre ma non c'è sto file setup.php l'ho trovato dentro a versioni vecchie ma dicono di non essere compatibili con mysql 5 pi potresti dare il link e il nome del file esatti da scaricare per favore dopo di che sono apposto … credo grazie !!!!
non c`è questo famigerato file di cui parli :*)
http://localhost/phpmyadmin/scripts/setup.php
nell'ultima versione che ho scaricato …
phpMyAdmin-3.1.1-rc1-all-languages.zip
non c'è traccia uff …
Non capisco perchè hai dovuto modificare la document root. alle pagine nella tua cartella siti ci accedevi da
http://localhost/~tuoutente
così facendo imponi invece che tutti gli utenti del pc accedano alla tua cartella siti
Sul server del mio pc tengo solo i miei progetti. Non è pubblica.
Per me è più comodo fare in questo modo. Sono comunque scelte.
ciao grazie mille x questa guida che x me e' fondamentale..
Ho solo un errore dopo il ./configure del php circa mysql:
Configure:error: mysql configure falied. Please check configure.log for more information.
Ho aperto il log e verso la fine trovo:
ld: warning in /use/local/mysql/lib/libmysqlclient.dylib, file is not of required architecture
Undefined symbols:
"_mysql_error", referenced from:
Ecc ecc
Potresti aiutarmi x favore? Dopo un lungo pomeriggio devo ancora venirne a capo..grazie mille Alberto
Mi raccomando, tutto compilato in architettura a 64bit. Altrimenti ci son problemi
perfetto
ho un problema.. inserisco il comando "sudo … password:" e quando mi chiede la password non mi fa inserire nulla!
come fare?
grazie mille per il supporto
Ciao Marco,
E' normale che non la visualizzi, non fa vedere nemmeno gli asterischi il terminale. Ma in realtà la stai digitando.
ciao,
non riesco a capire una cosa. Tutto funziona perfettamente (apache, mysql, php, libpng e libjpeg, phpmyadmin) ma ogni volta che riavvio il mac devo avviare da terminale l'apache. Non dovrebbe partire automaticamente?
Grazie
Preferenze di sistema >> Internet e network >> Condivisione >> Condivisione web => Attivala, salva le preferenze ed esci.
Grazie ora funziona tutto correttamente.
Grazie ancora
Scusa approfitto ancora di te.
Volevo sapere se è normale che gli altri computer collegati in rete per accedere alla mia area siti digitino: nomeutente.local e non solo nomeutente?
Grazie
Sempre nelle preferenze di condivisione controlla il nome dato come host alla tua macchina. Nella schermata che ti dicevo il commento prima, è posto in alto.
Ciao Davidonzo,
ho un problemino che credo derivi dai permessi dell'utente www di apache.
Mi spiego meglio, sono su un mac osx leopard ed ho la necessità di creare una CGI che esegua un comando shell o meglio che esegua un vero e proprio script perl(classico "perl nomescript.pl").
Questo fantastico script Perl dopo aver eseguito le sue svariate operazione (come chiamate http e apertura file) deve salvare l'output su di un file in una determinata directory.
Ora mi trovo nella situazione in cui lo script gira, crea il file ma non ci scrive sopra.
Credo che il problema risieda nei permessi associati all'utente che esegue lo script, in tal caso l'utente www di apache, ho provato a modificare il file /etc/sudoers assegnandogli i permessi ma senza risultato.
Hai qualche idea?
scusa la confusione con cui ho scritto ma non era così semplice.
Un saluto.
Ciao Gias,
Ho avuto anch'io un problema simile una volta. Devo dire che c'ho ragionato poco all'epoca e risolsi modificando brutalmente l'utente di apache.
Ma per prima cosa controlla le seguenti:
– Il file in output viene creato nella directory? La directory è quindi server writeble?
– Il file creato resta vuoto? Che permessi e owner ha?
– Come lanci lo script? Lanciandolo da browser e facendolo eseguire da un file chiamato via get non dovresti avere problemi.
– provato ad eseguire lo script fuori dalla root di apache, con output all'interno di una tua directory personale?
Eccomi,
la soluzione dell'utente apache devo dire che mi sta sfiorando più volte.
Allora l'output viene creato su un file nella mia document root, che è server writeble o almeno credo (per comodità e test gli ho assegnato privilegi 777 ).
Si il file viene creato ma resta vuoto. Permessi solo lettura owner utente _www (credo che sia quello di apache).
Lo script viene lanciato da CGI tramite oggetto di sistema operativo, quindi si lanciandolo nel modo che mi descrivi mi rimane il problema(richiamo la cgi da browser e lo faccio partire).
in ultimo si ho provato ad eseguire lo script direttamente da shell fuori dalla root di apache dirottando invece l'output sulla mia documentroot e funziona correttamente.
Credo proprio che sarò costretto a impelagarmi nella gestione degli utenti di leopard.
fammi sapere se hai news.
Risolto, non era un problema di utenza ma una mia dimenticanza.
Sono davvero irritato per non essermene reso conto.
Comunque ti ringrazio molto per il tempo che mi hai dedicato.
Un Saluto.
Gias
Sono un neofita di Mac… quando finisco di editare il file httpd.conf non riesco a salvare la mia modifica… mi rimane un -INSERT- in basso.
un saluto e grazie (l'avevo colpevolmente dimenticato:-)
Ciao Sabia,
Non è questione di Mac, ma di VIM π
Dopo aver editato, premi ESC per tornare in modalità comandi, poi
Il primo salva il secondo chiude il file.
Ciau!
Ari-ciao :-),
ti disturbo nuovamente.
Ho seguito tutte le istruzioni e ho finito di installare php5.
quando lancio il comando di riavvio mi dice:
[warn] module php5_module is already loaded, skipping
Ho provato a lanciare phpinfo(); su un file php ma non funge (la documentRoot funge perchè un file html me lo mostra tranquillamente).
grazie,
saluti
Ciao con phpMyAdmin ho un problema di autenticazione… nn è che potresti aiutarmi.
L'errore è quello che trovi nell'immagine al seguente link http://www.friendsky.it/php.png.
Grazie
ciao,
vorrei sapere se con la nuova versione del SO (snow leopard) funziona tutto bene come la vecchia.
qualcuno ha provato a fare questa prova?
grazie
fede
Io ancora non ho aggiornato, prevedo di farlo settimana prossima.
compplimenti un ottimo forum
pratico e diretto alla risoluzione dei problemi…
io ne ho uno, magari per voi banale, che mi fa impazzire
non riesco a visualizzare la pagina del web server
digitando dal browser http://localhost esce la risposta di safari
"Safari non può aprire la pagina “http://localhost/” perché il server ha inaspettatamente interrotto la connessione, cosa che a volte avviene quando il server è occupato. Aspetta qualche minuto e riprova."
SO snow leopard
cari saluti a tutti
Caspita, per sbaglio ho sballato il file httpd.conf e ora non so come rimediare…
Dove posso scaricare quello originale? O come posso ripristinarlo???
Ho snow leopard..
Grazie a chiunque mi possa aiutare
ho fatto l'aggiornamento alla 5.5 ma non va, rimane sempre in stato di stopped… qualcuno sa darmi qualche spiegazione?
Salve a tutti. (ho snow leopard) Sono un totale inesperto in programmazione e ho da poco iniziato a studiare xhtml. Nel frattempo però sto cercando di capire a cosa servono A M P… ma non riesco a capire tutto… Servono per programmare siti dinamici (web 2.0) giusto? PHP utilizza codice che si può integrare in xhtml giusto? Mentre Apache e Mysql??
Se io voglio creare un sito dinamico con database sono costretto ad usare questi software no? Non penso che mi basti xhtml… Però non capisco…AMP praticamente trasforma il mio mac in un server?? Per vedere se il mio sito dinamico funziona devo "creare" un server sul mio mac attraverso AMP?? Qualcuno gentilmente mi può dare qualche link dove spiegano, a totali principianti, AMP?
Grazie a tutti quelli che mi aiuteranno.
Sono una neofita della configurazione e temo di aver fatto danni cercando di seguire il tuo tutorial: quando ho tentato di apportare le modifiche alle righe da te indicate non mi ha permesso di farlo. Al che, da bravo genio quale sono, senza farmi copie di backup delle configurazioni, ho smanettato fino a che (non spiego come, troppo lunga) temo di aver cancellato per sbaglio qualsiasi cosa. Ora, nel digitare cd/etc/apache2 non mi trova più nemmeno la sua esistenza. Che cosa posso fare? Come reinstallare tutto? Sto sperando nell'ultimo aggiornamento per Snow Leopard scaricato dal sito Apple, quando l'immagine disco deciderà di aprirsi come dovrebbe e non darmi errore anche lei. Scusandomi per il linguaggio poco tecnico e coprendomi il capo di cenere per il danno, puoi aiutarmi? Grazie mille, in caso.