Hoy me ha dado por mira versiones nuevas de mi Webmail, y he visto que ha salido la 0.9.4 de RoundCube. Es un webmail que uso con frecuencia y ya he tenido que lidiar con varias de las actualizaciónes, puesto que hace unos cuantos años que uso este software.
Lo primero que me he dado cuenta, despues de hacer el "update" (yo partia de una 0.8.5), es que no salia NADA DE NADA, se queda en blanco, un blanco puro, como labado con "Neutrex", como de costumbre he mirado el log de roundcube y me indica que requiere la versión 5.3
[03-Oct-2013 13:20:17 +0200]: DB Error: MySQL driver requires PHP >= 5.3, current version is 5.2.6-1+lenny16 in /var/www/webmail/program/lib/
Roundcube/rcube_db_mysql.php on line 39 (GET /webmail/)
leo un poco por encima, la información de esta versión y no veo nada, continuo remirando, hasta la 0.9 donde indica que requiere PHP5.3. Yo uso Debian Lenny, y su paquete es PHP5.2.6
Me he quedado un poco "pof" y me he dicho, "seguro que se puede meter la 5.3 de PHP"
Me he puesto a buscar info, en la red, y rapidamente he dado con lo que buscaba, pongo el enlace para tener la fuente incluida en el "post"
Pasar de php5.2.6 a 5.3 para debian Lenny
Yo voy a hacer una "especie" de traducción "muy libre", porque me interesa solo la esencia.
En este "post" se reunen muchas cosas que voy a detallar porque me resultan muy interesantes.
Lo primero mi agradeciemiento a "nenadbulatovic" por poner justo lo que necesito, las cosas como son.
Y nos metemos en materia. La idea es descargar los paquetes necesarios, "construir" otro Seudopaquete, añadir a sources.list el "paht" donde esta el seudopaquete y el resto de paquetes, para que todo se instale en un "plis".
Justo esto es lo que me ha resultado muy interesante, el uso de dpkg (yo soy muy ignorante y no sabia hacer esto).
Empezamos con el ejemplo practico.
Creamos un directorio donde meteremos todos los paquetes a descargar.
Yo he replicado los pasos de "nenad" por si teniamos alguna connotación de permisos o propietarios a la hora de usar dpkg.
1º Creamos los directorios downloads/php5.3 en /root
mkdir /root/downloads/php5.3
2º Nos metemos dentro
cd /root/downloads/php5.3
3º Descargamos todos los paquetes que se requieren
wget -r -np -nH -nd -R index.html http://archives-php53.dotdeb.org/dists/lenny/php5/5.3.9/binary-i386/
wget -r -np -nH -nd -R index.html http://archives-php53.dotdeb.org/dists/lenny/php5-pecl/5.3.9/binary-i386/
4º Construimos el seudopaquete. Sabia que se podian hacer estas cosas, pero nunca he intentado o experimentado con ello, no parece muy complicado, supongo que se ha de tener en cuenta que añades todos los paquetes para que no de fallo de dependencias o "interdependencias".
dpkg-scanpackages . /dev/null | gzip -c9 > Packages.gz
5º Añadimos en el source.list el directorio donde se creo el Packages.gz
deb file:///root/downloads/php5.3 ./
6º Ya solo queda que con apt-get o aptitude actualizemos subamos de versión y finalmete instalemos los paquetes. Yo ejecuto apt-get, que es lo que dice este "hombre".
apt-get update
apt-get upgrade
apt-get dist-upgrade
7º En principio ya estaria todo, sin dejar de reiniciar apache.
/etc/init.d/apache2 restart
Bien en este punto ya tenemos PHP5.3 y lo podemos comprobar en la consola por medio de:
php -v
Tendria que salir algo asi al final del todo (yo tengo un monton de advertencias):
PHP 5.3.9-1~dotdeb.2 with Suhosin-Patch (cli) (built: Jan 13 2012 01:21:19)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with Suhosin v0.9.33, Copyright (c) 2007-2012, by SektionEins GmbH
Bueno en mi caso, todo ha ido de "cine" y tengo mi PHP5.3 listo, PEROOOOOO, intento ver Roundcube, la autenticación y me sale un error:
ERROR: Wrong 'suhosin.session.encrypt' option value and it wasn't possible to set it to required value (0). Check your PHP configuration (including php_admin_flag).
Una vez mas busco info en la red y doy con la solución.
Error suhosin.session.encrypt
La solución aplicada no me vale, porque indican que se tiene que descomentar y pasar a "off" en /etc/php5/apache2/conf.d/suhosin.ini la linea "
; Transparent Encryption Options ;suhosin.session.encrypt = on"
El problema es que yo en mi suhosin.ini no tengo nada de eso, con lo que no puedo descomentar, ni poner a off, pero me dije, pues pongo yo la linea, pero pasaba lo mismo, con lo que decidi "tocar" un poco la solución, dejando el fichero suhosin.ini como indico.
; configuration for php suhosin module
extension=suhosin.so
suhosin.executor.include.whitelist="phar"
suhosin.session.encrypt=off
Se tiene que reiniciar apache otra vez, pero esta vez funciono perfecto, ya tengo mi Roundcube 0.9.4 funcionando.
Si nos surgen problemas con PHP, eliminar PHP5.2.6 completamente y de este modo podemos darle solución
apt-get remove php5 libapache2-mod-php5 php5-gd php5-mysql
apt-get remove php5-curl php5-tidy php5-dev php-pear php5-cli
apt-get remove php5-common php5-suhosin
Comentar la entrada en /etc/apt/sources.list que hicimos al principio con una # dejandolo de este modo.
# deb file:///root/downloads/php5.3 ./
Iniciar el proceso de actualización, por si algo se quedo en el tintero.
apt-get update
apt-get upgrade
apt-get auto-remove
Y finalmente reinstalar al completo php5.2.6, paquete original de Debian Lenny
apt-get install php5 libapache2-mod-php5 php5-gd php5-mysql
apt-get install php5-curl php5-tidy php5-dev php-pear php5-cli
apt-get install php5-common php5-suhosin php5-cgi php5-imagick
Toca otra vez quitar el comentario del sources.list, para que quede:
deb file:///root/downloads/php5.3 ./
Y lanzamos otra vez apt-get y su bateria, para que todo quede atado y bien atado.
apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get auto-remove
Reiniciamos Apache una vez mas, y si nos da un error 500, es porque "aveces" el instalador sin saber muy bien como, se "salta" php5-cgi, con lo que estemos seguros haciendo:
apt-get install php5-cgi
Reiniciando apache una vez mas.
Si despues de todo esto, no es suficiente, y no puedes instalar PHP5.3 repasa los logs de apache de esta manera:
tail -F /var/log/apache2/error.log
Podras ver en tiempo real las lineas según se crean.
Fin.