Prima di migrare questo sito alla nuova versione di Drupal (dall'attuale 5.9 alla 6.3), ho voluto fare un test in locale per evitare complicazioni durante il passaggio. Inoltre, visto che sono in possesso di un nuovo e fiammante MackBook, ho voluto provare il tutto su Mac OS X per vedere un po' come va.. ma mi sono scontrato da subito con alcune difficoltà che mi sembra siano abbastanza comuni a chi necessita di un installazione ad-hoc di PHP con i moduli più diffusi (fra cui GD), e di MySQL con annesso phpMyAdmin. Il tutto magari installato nella directory Sites dell'utente sfruttando il modulo userdir di Apache che su Leopard è attivato di default ma non funziona proprio come dovrebbe da subito...
Vediamo quindi quali sono i passi necessari per avere un sistema Mac OS X con PHP5, MySQL e phpMyAdmin.
Mac Os X arriva con una versione di Apache preinstallata ed integrata nel sistema, attivabile dalle preferenze di sistema (Sharing, Web Sharing). Una volta avviato il servizio, Apache di default serve le pagine presenti in /Library/WebServer/Documents/ sulla porta 80 a partire dalla root (raggiungibile quindi dall'indirizzo http://localhost/), inoltre serve anche le pagine personali dell'utente, presenti in /Users/username/Sites/ e raggiungibili dall'indirizzo http://localhost/~username/
Qualcuno noterà, però, che mentre alla web root si accede tranquillamente, le pagine personali non vengono visualizzate per una questione di permessi (se invece siete fortunati e funziona tutto, saltate questa parte). Le cause di questo problema possono essere molteplici, adesso vediamo passo passo cosa va controllato:
controllare che l'utente di apache sia www (o l'equivalente _www) nel file di configurazione httpd.config, cerca User e Group e impostarli entrambi a www.
controllare che in httpd.config venga caricato il modulo userdir, scommentando la riga
LoadModule userdir_module libexec/apache2/mod_userdir.soInclude /private/etc/apache2/extra/httpd-userdir.confUserDir Sites
Include /private/etc/apache2/users/*.conf controllare il contenuto di /etc/apache2/users/username.conf:
<Directory "/Users/username/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>Prestare attenzione sopratutto ad AllowOverride All (per far si che apache legga eventuali file .htaccess nella directory) ed Allow from all (per consentire l'accesso a tutti gli host)
chmod o+x / /Users /Users/username /Users/username/Sitesquesto è necessario per consentire ad Apache di listare il contenuto delle directory e sapere se ci sono file .htaccess
Riavviare Apache e testare puntando il browser su http://localhost/~username/
Posizione dei file di configurazione di Apache:/etc/apache2/httpd.config
/etc/apache2/users/username.config
eventuali .htaccess nelle directory servite da ApacheL'installazione di default di Apache su Leopard ha anche il modulo per PHP5 (disattivato) che però non contiene diverse librerie utili come le famose GD per la gestione delle immagini. Per aggiungere moduli si deve ricorrere alla compilazione dei sorgenti.
Per fortuna esiste un'altra soluzione, e cioè quella di utilizzare una versione già compilata di PHP5 per Leopard, raggiungibile dalla sezione download di php.net, che ci redireziona ad un server esterno (http://www.entropy.ch/software/macosx/php/). Da lì è possibile scaricare un comodo installer per PHP5 che si integra con il server Apache di sistema. Purtroppo però non sempre l'installazione va a buon fine (il pacchetto è per Mac OS X 10.4, ma con qualche ritocco funziona perfettamente anche su Leopard)
Come prima cosa scarichiamo il pacchetto (php5.2.4 per Apache 2) e scompattiamo da riga di comando (sul sito sconsigliano di utilizzare Stuffit!) l'archivio tar.gz:
tar -xvzf ./entropy-php-5.2.4-1-apache2.tar.gz#LoadModule php5_module libexec/apache2/libphp5.sosia commentata (per non creare conflitti con la versione php5 di sistema).
Creare il seguente link simbolico a cui l'installazione farà riferimentosudo ln -s /etc/apache2 /etc/httpde rimuovi eventuali file e directory di entropy da /Library/Receipts (nel caso di tentate installazioni precedenti). Ora possiamo fare doppioclick sul .dmg di entropy ed avviare l'installazione che dovrebbe andare a buon fine.
Riavviare Apache e testare, se ci sono problemi effettuare ancora queste operazioni:
sudo cp /usr/sbin/httpd /usr/sbin/httpd-fat
sudo lipo /usr/sbin/httpd -thin i386 -output /usr/sbin/httpdsudo ln -s /usr/local/php5 /usr/local/apache2
sudo ln -s /usr/lib/libexpat.dylib /usr/local/apache2/lib/libexpat.0.dylib/usr/local/php5//usr/local/php5/lib/php.iniProcediamo ora con l'installazione di MySQL scaricando l'installer per il nostro sistema dalla sezione download del sito di mysql.com
Installare il pacchetto di MySQL, e tralasciamo il pacchetto di avvio automatico e del pannello di preferenze (a qualcuno funziona, ad altri no). L'installer ha posizionato i file del DBMS in
/usr/local/mysqlsudo /usr/local/mysql/bin/mysqld_safe
sudo /usr/local/mysql/bin/mysqladmin shutdownScaricare i file dal sito di phpMyAdmin, e scompattare il tutto in una delle directory servite da Apache, ad esempio in /Users/username/Sites/phpMyAdmin. Ora dobbiamo creare un file di configurazione per consentire la connessione con MySQL. Inziamo creando una directory config nella cartella di phpMyAdmin, e diamo i permessi in scrittura chmod o+w.
Puntare il browser allo script per la creazione di un file di configurazione:es. http://locahost/~jack/phpmyadmin/scripts/setup.phpServer hostname: localhost
Connection type: socket
Authentication type: config
User for config auth: root
Password for config auth: lasciare vuotoPremere su Add, ed infine su Save (in basso, sotto “configuration”). Ora dovremmo avere un file nella cartella config, che va copiato nella directory superiore (nella directory base di phpMyAdmin).
Se da problemi, è possibile che non trovi il socket a cui connettersi al DBMS, in questo caso dobbiamo verificare il percorso: avviate mysql, e poi avviate la console di mysql:
sudo /usr/local/mysql/bin/mysqlquindi dare il comando status e controllare il valore di UNIX socket, copiatelo e incollatelo nel parametro Server socket quando create il file di configurazione di phpMyAdmin.
Ora potete puntare il browser alla directory di phpMyAdmin e cominciare a smanettare.
Nota: se dovete ripristinare un database a partire ad esempio da un dump (un file .sql), fate attenzione che esso non superi i 2 MB, altrimenti è necessario modificare il parametro upload_max_filesize presente nel file php.ini di php5 (/usr/local/php5/lib/php.ini)
| Attachment | Size |
|---|---|
| Php e mysql on Leopard.pdf | 127.02 KB |
Comments
Best reviews
Great Blog!
Discussione su Lithium
L'articolo è stato pubblicato anche su Lithium e la relativa discussione è raggiungibile da questo link:
https://forum.lithium.it/forum/viewtopic.php?f=26&t=14795&p=179251
Post new comment