Ho tre versioni installate di php sul mio Mac. Quando controllo usando phpinfo () tramite un browser web, quello che viene invocato è la versione 5.3.15. Vorrei passare all'istanza installata che è la versione 5.4 per il modulo apache (non necessaria per la CLI).
Il motivo per cui vorrei farlo è che ho usato MacPorts per installare php_geoip, ma è per la versione 5.4.
Sfondo
Quando utilizzo "quale" vedo quanto segue:
$ which -a php
/opt/local/bin/php
/usr/bin/php
$ which -a php54
/opt/local/bin/php54
Quindi controllando la versione di ognuno di questi si ottiene quanto segue:
$ /opt/local/bin/php --version
PHP 5.3.19 (cli) (built: Dec 15 2012 01:08:10)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans
$ /usr/bin/php --version
PHP Warning: PHP Startup: geoip: Unable to initialize module
Module compiled with module API=20100525
PHP compiled with module API=20090626
These options need to match
in Unknown on line 0
PHP 5.3.15 with Suhosin-Patch (cli) (built: Aug 24 2012 17:45:44)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with Xdebug v2.2.0-komodo, Copyright (c) 2002-2012, by Derick Rethans
$ /opt/local/bin/php54 --version
PHP 5.4.10 (cli) (built: Dec 20 2012 19:30:08)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
Si noti che i controlli della versione CLI vengono utilizzati solo per determinare la versione di ciascuna istanza. In realtà è la versione corretta del modulo apache libphp5.so che alla fine avrò bisogno di lavorare.
Come puoi vedere da quanto sopra, c'è un messaggio di errore dall'istanza 5.3.15 che credo provenga dai miei sforzi per provare a caricare geoip.so, come segue:
; 2013-01-10 enable geoip
extension="/opt/local/lib/php54/extensions/no-debug-non-zts-20100525/geoip.so"
In altre parole, ho usato MacPorts per installare php_geoip e, come parte di esso, ha installato la dipendenza di php54, perché la versione di geoip.so nella struttura dei porti di MacPorts necessita di php 5.4. Ho provato a far funzionare il php 5.3.15 per caricare geoip.so dall'istanza php 5.4, ma non funziona, come mostra il messaggio di errore.
Successivamente ho provato a passare l'istanza di php alla versione 5.4 cambiando l'istruzione LoadModule come mostrato qui:
# 2012-10-28: enable php
# LoadModule php5_module libexec/apache2/libphp5.so
# 2013-01-13: change to more recent version of installed php - does not work
LoadModule php5_module /opt/local/apache2/modules/libphp5.so
Tuttavia, questo impedisce al php di funzionare affatto.
Quindi per risolvere il mio problema, ho bisogno di ottenere una versione compatibile con php 5.3.15 di geoip.so, o far sì che il mio sistema usi l'istanza di php 5.4. Qualsiasi consiglio su entrambi questi approcci è apprezzato.