sábado, 9 de agosto de 2008

Actualizando nuestro PHP en FreeBSD

Bien, esto básicamente es para los que necesitan actualizar la versión de PHP en FreeBSD, y tienen algunos problemas.

Como sabrán, en FreeBSD tenemos 2 ports importante en relación a PHP, uno es PHP propiamente dicho, y el otro es PHP-EXTENSIONS.

Primero, obviamente, tenemos que actualizar el árbol de ports así tenemos lo mas fresquito.


cvsup -g -L 2 /usr/share/examples/cvsup/ports-supfile

Recordemos que podemos editar el archivo ports-supfile y decirle puntualmente que parte del árbol queremos actualizar, aunque como PHP-EXTENSION usan muchas cosas, yo dejaría todo, menos el tema de X y games.

Bueno, una vez que tenemos el árbol actualizado, simplemente vamos primero a /usr/ports/lang/php5 y ahí le damos make clean && make && make deinstall && make install

Y con eso ya deberíamos haber reemplazado el php viejo por el nuevo.

Ahora viene la parte más “dolorosa” quizás, que es destripar un poco las extensiones. Yo muchas veces no tuve dramas, pero en algunas oportunidades si, por lo que voy a explicar un procedimiento que nunca me ha fallado.

Primero, nos vamos a la libs de PHP y rompemos todos, es decir, las eliminamos.

cd /usr/local/lib/php/

rm *.so

Una vez que las hayamos eliminado así a lo cabeza, vamos al port de las extensiones e iniciamos la instalación.

Antes que nada, hacemos un backup del archivo /usr/local/etc/php/extensions.ini y dejamos el archivo vacío por dentro, de esta forma evitaremos que cuando instalemos nuevamente las extensiones, se agreguen líneas duplicadas al archivo, lo cual nos traerá dolores de cabeza.

Ahora si, manos a la obra:

cd /usr/ports/lang/php5-extensions

make clean && make && make deinstall && make install

Ok, ahora vamos a pasar por un proceso un poco violento, ya que muchas de las extensiones de PHP usan programas externos, y esos programas ya estaban instalado, por lo que cada 2 x 3 nos va a putear el instalador por que no puede instalar algo que ya esta instalado, así que solo basta con ir al port en cuestión que nos putea, darle un lindo make deinstall, volver al cd /usr/ports/lang/php5-extensions y dale make install nuevamente y todo seguirá como si nada.

Este problema surge de haber actualizado el árbol de ports, ya que cuando recompila las extensiones, baja las dependencias nuevas de la misma, y al querer instalarla se topa con que esta la versión anterior.

Ok, una vez hecho esto, ya estamos con el PHP actualizado y las extensiones tambien.

Un consejo, actualicen primero el mysql-server , mysql-client y mysql-script (este ultimo depende si lo necesitan o no), ya que puede llegar a haber problemas al instalas las libs de PHP-EXTENSION que tengan relación con mysql si este es una versión vieja.

Saludos.

No hay comentarios: