Come tutti i felici possessori di Mac sanno, il Php fornito con Leopard ha una serie di carenze che lo rendono a volte inutilizzabile per un uso un po’ più evoluto di quello base. In particolare a me serviva al volo, senza dover ricompilare tutto, l’attivazione dei moduli mcrypt e soap.
La soluzione si trova su Pagebakers:
Scaricare e scompattare la versione 5.2.6 (quella attualmente installata dal sistema) in una directory:
cd /tmp curl -O http://it.php.net/distributions/php-5.2.6.tar.bz2 tar xvjf php-5.2.6.tar.bz2
Spostarsi nella nuova cartella e dare i seguenti comandi:
cd php-5.2.6/ export LIBTOOLIZE=glibtoolize MACOSX_DEPLOYMENT_TARGET=10.5 cd ext/mcrypt # Successivamente fare lo stesso con soap phpize
Ora possiamo compilare l’estensione:
MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -g -Os -pipe" CXXFLAGS="-arch ppc -g -Os -pipe" LDFLAGS="-arch ppc -bind_at_load" ./configure make sudo make install
Questo nel caso come il mio in cui il Mac sia ancora un PowerPc. Nei parametri per il “configure” bisogna invece specificare -arch x86_64 nel caso di un Mac con processore Intel.
Ora l’estensione è compilata ed installata, bisogna attivarla a livello di configurazione del Php. Per fare questo bisogna modificare il php.ini, che si trova in /private/etc/php.ini
Impostare ‘extension_dir’ a ‘/usr/lib/php/extensions’ e abilitare l’estensione aggiungendo le linee ‘extension=soap.so’ e ‘extension=mcrypt.so’ (nel mio php.ini c’erano, commentate, le linee ‘extension=php_soap.dll’ e ‘extension=php_mcrypt.dll’).
Creiamo un link simbolico alle due estensioni:
sudo ln -s /usr/lib/php/extensions/no-debug-non-zts-20060613/soap.so /usr/lib/php/extensions/soap.so sudo ln -s /usr/lib/php/extensions/no-debug-non-zts-20060613/mcrypt.so /usr/lib/php/extensions/mcrypt.so
E finalmente è sufficiente riavviare Apache per rendere attive le modifiche:
sudo apachectl restart