Home > php > Passare da php 5.3 a php 5.4 e viceversa facilmente con brew

Passare da php 5.3 a php 5.4 e viceversa facilmente con brew

Per qualcuno questo articolo potrebbe sembrare un pochino acerbo. Che bisogno c’è di passare ora al php54? “C’è tempo…” potrebbe rispondere qualcuno. Ma prima o poi quel momento (come ogni volta) arriva prima del previsto e ci piacerebbe tanto passare alla versione successiva del linguaggio, perché quella sua caratteristica proprio ci sarebbe comoda, ma chissa cosa potrebbe succedere passando alla versione nuova. Meglio non rischiare, qualcuno dice tipicamente, rimaniamo dove siamo.
Ora, questo è lo scenario che abitualmente ci circonda, non ditemi che non vi è capitato di vedere php4 ancora su qualche applicativo un po’ datato.

L’alternativa è che se fosse “molto facile” cambiare la versione del PHP sulla propria macchina di sviluppo, allora far girare di tanto in tanto i test dell’applicativo anche su questa istanza non sarebbe così complicato, nulla di impegnativo, ma almeno si potrebbe sapere fin dall’inizio in caso di incompatibilità, di cosa si tratta e scegliere come comportarsi.

Bhe questo modo “molto facile” esiste. Io l’ho trovato sul Mac attraverso un comando di brew. Sicuramente questo comportamento esisterà anche su Linux.

Comunque tornando a noi. E necessario aver installato php53 e php54, come si farebbe con i normali pacchetti (ormai uso brew praticamente per tutto) :

brew install php53

poi

brew install php54

Ed è a questo punto che scatta la magia. Utilizzando il comando switch, brew è in grado di scambiare la versione del pacchetto scelto. È quindi sufficiente eseguire:

brew switch php53 5.3.15

per passare alla versione 5.3.x. Se controlliamo infatti il puntamento degli eseguibili, questo è quello che scopriamo:

/usr/local/bin/pear -> ../Cellar/php53/5.3.15/bin/pear
/usr/local/bin/peardev -> ../Cellar/php53/5.3.15/bin/peardev
/usr/local/bin/pecl -> ../Cellar/php53/5.3.15/bin/pecl
/usr/local/bin/phar -> ../Cellar/php53/5.3.15/bin/phar
/usr/local/bin/phar.phar -> ../Cellar/php53/5.3.15/bin/phar.phar
/usr/local/bin/php -> ../Cellar/php53/5.3.15/bin/php
/usr/local/bin/php-config -> ../Cellar/php53/5.3.15/bin/php-config
/usr/local/bin/phpize -> ../Cellar/php53/5.3.15/bin/phpize

A questo punto se volessimo passare alla 5.4 sarebbe sufficiente eseguire:

brew switch php54 5.4.5

Il risultato sarebbe il seguente:

/usr/local/bin/pear -> ../Cellar/php54/5.4.5/bin/pear
/usr/local/bin/peardev -> ../Cellar/php54/5.4.5/bin/peardev
/usr/local/bin/pecl -> ../Cellar/php54/5.4.5/bin/pecl
/usr/local/bin/phar -> ../Cellar/php54/5.4.5/bin/phar
/usr/local/bin/phar.phar -> ../Cellar/php54/5.4.5/bin/phar.phar
/usr/local/bin/php -> ../Cellar/php54/5.4.5/bin/php
/usr/local/bin/php-cgi -> ../Cellar/php54/5.4.5/bin/php-cgi
/usr/local/bin/php-config -> ../Cellar/php54/5.4.5/bin/php-config
/usr/local/bin/phpize -> ../Cellar/php54/5.4.5/bin/phpize

Praticamente brew utilizza dei link simbolici per mantenere tutto completamente trasparente. Ovviamente questo comando può essere eseguito per qualsiasi programma. A me per esempio è stato molto utile nel caso di Node.

ps: purtroppo il loadModule di apache non si aggiorna da solo, ma è l’unica pecca. Bisognerà switchare a mano tra queste due linee nel file httpd.conf

LoadModule php5_module /usr/local/Cellar/php53/5.3.15/libexec/apache2/libphp5.so
#LoadModule php5_module /usr/local/Cellar/php54/5.4.5/libexec/apache2/libphp5.so

About these ads
Categorie: php Tag:, , , , ,
  1. 20 agosto 2012 alle 15:01 | #1

    Io sono assolutamente favorevole al passaggio a PHP 5.4
    Solo due considerazioni:
    - Propel 2 è stato posticipato apposta per una completa riscrittura, sarà compatibile *solo* con 5.4 e successivi
    - la prossima versione di Ubuntu, in uscita a ottobre, avrà 5.4 come versione predefinita
    Io quindi passerò a 5.4 tra poco più di un mesetto ;-)

  2. 23 agosto 2012 alle 08:27 | #2

    Avoja, se non lavoriamo noi su 5.4 chi ci lavora? :-)
    Tra l’altro con php-fpm e fastcgi puoi far convivere tranquillamente le versioni
    per esempio:
    http://serverfault.com/questions/369301/2-php-versions-on-same-server

  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 831 follower

%d blogger cliccano Mi Piace per questo: