Soporte Unicode en CentOS 5.2 con PHP y PCRE
No hace mucho me encontré con un problema en un servidor nuevo de la empresa (un CentOS con Plesk), tras instalar el framework Kohana y probar el test de compatibilidad que trae este framework me avisaba de que podría no funcionar bien ya que no tenía en mi servidor soporte unicode en el PCRE, para probar si nuestro PCRE tiene soporte unicode tan sólo tenemos que poner via linea de comandos:
$ pcretest -C PCRE version 6.6 06-Feb-2006 Compiled with UTF-8 support No Unicode properties support Newline character is LF Internal link size = 2 POSIX malloc threshold = 10 Default match limit = 10000000 Default recursion depth limit = 10000000 Match recursion uses stack
Si a ti también te aparece “No Unicode properties support” al ejecutar pcre sigue leyendo
sino te recomiendo que visites mi web de música electrónica xD
Solucionar el problema
Antes de nada comentarte que no debes usar el usuario “root” para esto, por lo que deberíamos usar un usuario normal.
Bueno una vez estamos conectados con un usuario “normal” debemos crear los siguientes directorios en la carpeta por defecto de tu usuario ej. /home/miusuario …
$ mkdir -p ~/src/rpm
$ cd ~/src/rpm
$ mkdir BUILD RPMS SOURCES SPECS SRPMS
$ mkdir RPMS/i[3456]86 RPMS/noarch RPMS/athlon
Una vez hecho esto creamos el archivo ~/.rpmmacros y escribimos lo siguiente:
# Path to top of build area
%_topdir /home/miusuario/src/rpm
A continuación nos descargamos este archivo(Recuerda que yo estoy actualizando CentOS 5.2 con PCRE 6.6) en la carpeta de nuestro usuario y ponemos:
$ rpm -ivh pcre-6.6-2.el5_1.7.src.rpm
Esto pondrá los archivos necesarios en las carpetas creadas anteriormente para poder recompilar de nuevo PCRE con soporte Unicode.
Ahora abrimos con nano (o vi eso a gusto de cada uno) el archivo
~/src/rpm/SPECS/pcre.spec
Buscamos …
%configure –enable-utf8
Una vez encontrada le añadimos lo siguiente y guardamos el archivo
%configure –enable-utf8 –enable-unicode-properties
Bueno ya tenemos todo listo para recompilar PCRE con soporte Unicode ahora tan sólo tenemos que ejecutar lo siguiente
$ rpmbuild -ba ~/src/rpm/SPECS/pcre.spec
Esto nos mostrará algo parecido a esto:
Escrito: /home/miusuario/src/rpm/SRPMS/pcre-6.6-2.7.src.rpm
Escrito: /home/miusuario/src/rpm/RPMS/i386/pcre-6.6-2.7.i386.rpm
Escrito: /home/miusuario/src/rpm/RPMS/i386/pcre-devel-6.6-2.7.i386.rpm
Escrito: /home/miusuario/src/rpm/RPMS/i386/pcre-debuginfo-6.6-2.7.i386.rpm
Ahora sí debemos cambiar a root para poder instalar el nuevo rpm:
$ rpm -Uvh /home/miusuario/src/rpm/RPMS/i386/pcre-6.6-2.7.i386.rpm
Reiniciamos apache
listo! problema resuelto
Para este pequeño tutorial me he basado en los manuales Unicode Support on CentOS 5.2 with PHP and PCRE y How to patch and rebuild an RPM package
Muchas gracias, exactamente estaba pasando por eso mismo con kohana y diste con la solución.
Gracias.
me alegra que te halla ayudado