
<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Màrius Duch &#187; Centos</title> <atom:link href="http://www.mariusduch.es/seccion/sistemas-operativos/centos/feed" rel="self" type="application/rss+xml" /><link>http://www.mariusduch.es</link> <description>Informática práctica para todos</description> <lastBuildDate>Wed, 19 Oct 2011 10:29:40 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.2.1</generator> <item><title>Error yum: rpmdb open failed</title><link>http://www.mariusduch.es/error-yum-rpmdb-open-failed</link> <comments>http://www.mariusduch.es/error-yum-rpmdb-open-failed#comments</comments> <pubDate>Tue, 17 May 2011 14:43:48 +0000</pubDate> <dc:creator>Màrius</dc:creator> <category><![CDATA[Centos]]></category> <category><![CDATA[centos]]></category> <category><![CDATA[rpm]]></category> <category><![CDATA[yum]]></category> <guid
isPermaLink="false">http://www.mariusduch.es/?p=1131</guid> <description><![CDATA[Yellow dog Updater Modified (yum) es un gestor de paquetes avanzado propio de las ditribuciones linux que usan paquetes RPM, como RedHat, Fedora o Centos. Este gestor es una herramienta para línea de comandos, con la que podemos descargar, instalar, desinstalar y actualizar cualquier paquetes que tengamos en nuestros repositiorios con gran facilidad. Eso si, [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignleft size-full wp-image-1142" title="error-yum-rpmdb-open-failed" src="http://www.mariusduch.es/wp-content/uploads/error-yum-rpmdb-open-failed.png" alt="" width="100" height="100" />Yellow dog Updater Modified (yum) es un gestor de paquetes avanzado propio de las ditribuciones linux que usan paquetes RPM, como RedHat, Fedora o Centos. Este gestor es una herramienta para línea de comandos, con la que podemos descargar, instalar, desinstalar y actualizar cualquier paquetes que tengamos en nuestros repositiorios con gran facilidad. Eso si, como cualquiera otra herramienta no es perfecta y algunas veces surgen errores como el siguiente, el cual voy a explicar como solucionar.</p><p><span
id="more-1131"></span></p><p><strong>1. El error se produce al ejecutar el comando de yum para actualizar:</strong></p><pre lang="bash" escaped="true">yum update</pre><p><strong>2. Entonces veremos por pantalla lo siguiente o algo parecido:</strong></p><pre lang="bash" escaped="true">Loaded plugins: fastestmirror, priorities
error: no dbpath has been set
error: cannot open Packages database in /%{_dbpath}
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in ?
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 309, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 157, in main
    base.getOptionsConfig(args)
  File "/usr/share/yum-cli/cli.py", line 187, in getOptionsConfig
    self.conf
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 664, in
    conf = property(fget=lambda self: self._getConfig(),
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 239, in _getConfig
    self._conf = config.readMainConfig(startupconf)
  File "/usr/lib/python2.4/site-packages/yum/config.py", line 804, in readMainConfig
    yumvars['releasever'] = _getsysver(startupconf.installroot, startupconf.distroverpkg)
  File "/usr/lib/python2.4/site-packages/yum/config.py", line 877, in _getsysver
    idx = ts.dbMatch('provides', distroverpkg)
TypeError: rpmdb open failed</pre><p><strong>3. Para solucionar el error solo hay que ejecutar la siguiente lista de comandos, uno a uno:</strong></p><pre lang="bash" escaped="true">rm /dev/urandom</pre><pre lang="bash" escaped="true">mknod -m 644 /dev/urandom c 1 9</pre><pre lang="bash" escaped="true">yum clean all</pre><pre lang="bash" escaped="true">rm -f /var/lib/rpm/__db*</pre><pre lang="bash" escaped="true">rpm --rebuilddb</pre><p><strong>4. Una vez realizado esto, si probamos de ejcutar el comando de actualización veremos como funciona de nuevo sin problemas.</strong></p> ]]></content:encoded> <wfw:commentRss>http://www.mariusduch.es/error-yum-rpmdb-open-failed/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Instalar y configurar memcached en CentOS 5</title><link>http://www.mariusduch.es/instalar-y-configurar-memcached-en-centos-5</link> <comments>http://www.mariusduch.es/instalar-y-configurar-memcached-en-centos-5#comments</comments> <pubDate>Mon, 21 Mar 2011 17:45:56 +0000</pubDate> <dc:creator>Màrius</dc:creator> <category><![CDATA[Centos]]></category> <category><![CDATA[apache]]></category> <category><![CDATA[cache]]></category> <category><![CDATA[memcache]]></category> <category><![CDATA[nginx]]></category> <category><![CDATA[PHP]]></category> <guid
isPermaLink="false">http://www.mariusduch.es/?p=1042</guid> <description><![CDATA[Si queremos que nuestro servidor web mejore notablemente su rendimiento, lo mas recomendable es que tengamos funcionando algún sistema de cache, para evitar las numerosas consultas que puede realizar nuestra web contra la base de datos. Si el que nos interesa es memcache solo tenemos que seguir los pasos que expongo a continuación: Instalar el [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignleft size-full wp-image-1045" title="instalar-y-configurar-memcached-en-centos-5" src="http://www.mariusduch.es/wp-content/uploads/instalar-y-configurar-memcached-en-centos-5.png" alt="" width="100" height="100" />Si queremos que nuestro servidor web mejore notablemente su rendimiento, lo mas recomendable es que tengamos funcionando algún sistema de cache, para evitar las numerosas consultas que puede realizar nuestra web contra la base de datos.</p><p>Si el que nos interesa es <strong>memcache</strong> solo tenemos que seguir los pasos que expongo a continuación:</p><p><span
id="more-1042"></span></p><p><strong>Instalar el servicio memcached</strong></p><p>1. Instalamos el siguiente paquete:</p><blockquote><p>yum install libevent-devel</p></blockquote><p>2. Accedemos al siguiente directorio:</p><blockquote><p>cd /usr/local/src</p></blockquote><p>3. Descargamos el fichero:</p><blockquote><p>wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz</p></blockquote><p>4. Descomprimimos el fichero:</p><blockquote><p>tar xzvf memcached-1.4.5.tar.gz</p></blockquote><p>5. Accedemos al directorio que se ha creado:</p><blockquote><p>cd memcached-1.4.5</p></blockquote><p>6. Configuramos el memcached:</p><blockquote><p>./configure &#8211;prefix=/usr/local/memcached &#8211;enable-64bit</p></blockquote><p><em>Importante: Solo usaremos el parametro &#8220;&#8211;enable-64bits&#8221; en el caso que la infraestructura de la maquina sea de 64bits</em></p><p>7. Lo compilamos e instalamos:</p><blockquote><p>make &amp;&amp; make install</p></blockquote><p>8. Añadimos el usuario <em>memcached</em> al sistema:</p><blockquote><p>adduser memcached</p></blockquote><p>9. Editamos el siguiente fichero, para añadir un comando que se ejecutará al inicial el sistema:</p><blockquote><p>vim /etc/rc.local</p></blockquote><p>10. Añadimos la siguiente linea al final del fichero:</p><blockquote><p>/usr/local/memcached/bin/memcached -u memcached -d -m 256 -l 127.0.0.1 -p 11211</p></blockquote><p>11. Ejecutamos lo siguiente:</p><blockquote><p>/usr/local/memcached/bin/memcached -u memcached -d -m 256 -l 127.0.0.1 -p 11211</p></blockquote><p><strong>Instalar el modulo de PHP</strong></p><p>1. Instalamos el siguiente paquete:</p><blockquote><p>yum install zlib-devel</p></blockquote><p>2. Accedemos a la siguiente direccion:</p><blockquote><p>cd /usr/local/src</p></blockquote><p>3. Descargamos el siguiente fichero:</p><blockquote><p>wget http://pecl.php.net/get/memcache-2.2.5.tgz</p></blockquote><p>4. Descomprimimos el fichero:</p><blockquote><p>tar -zxvf memcache-2.2.5.tgz</p></blockquote><p>5. Accedemos al directorio que se ha creado:</p><blockquote><p>cd memcache-2.2.5</p></blockquote><p>6. Ejecutamos lo siguiente para preparar el entorno de compilación:</p><blockquote><p>phpize</p></blockquote><p>7. Configuramos el soporte de memcache:</p><blockquote><p>./configure &#8211;enable-memcache</p></blockquote><p>8. Compilamos e instalamos:</p><blockquote><p>make &amp;&amp; make install</p></blockquote><p>9. Copiamos el modulo a la carpeta de modules de php:</p><blockquote><p>cp modules/memcache.so /usr/lib/php/modules/.</p></blockquote><p><em>Importante: La ruta puede cambiar según la infraestructura del sistema operativo o la versión de PHP</em><br
/> 10. Añadimos al fichero php.ini lo siguiente:</p><blockquote><p>extension=memcache.so</p></blockquote><p><strong>Verificar que funciona correctamente</strong></p><p>1. Miramos si el proceso &#8220;memcached&#8221; esta corriendo:</p><blockquote><p>top</p></blockquote><p>1.1. si es correcto veremos algo así:</p><blockquote><p>11689 memcache 15 0 71564 18m 496 S 4.0 0.6 32:39.76 memcached</p></blockquote><p>2. Miramos si esta habilitado el soporte de memcached en el php:</p><blockquote><p>php -i |grep &#8220;memcache support&#8221;</p></blockquote><p>2.1. Si es correcto, veremos algo así (tiene que estar el support &#8220;enabled&#8221;):</p><blockquote><p>memcache support =&gt; enabled</p></blockquote><p>3. Miramos que el proceso este corriendo en local (127.0.0.1):</p><blockquote><p>ps axuf |grep memcache</p></blockquote><p>3.1. Si es correcto, veremos algo así:</p><blockquote><p>501 1427 0.0 0.5 70540 17600 ? Ssl Mar18 0:03 /usr/local/memcached/bin/memcached -u memcached -d -m 256 -l 127.0.0.1 -p 11211</p></blockquote> ]]></content:encoded> <wfw:commentRss>http://www.mariusduch.es/instalar-y-configurar-memcached-en-centos-5/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Instalar y configurar FreeRadius con MySQL en Centos 5.5</title><link>http://www.mariusduch.es/instalar-y-configurar-freeradius-con-mysql-en-centos-5-5</link> <comments>http://www.mariusduch.es/instalar-y-configurar-freeradius-con-mysql-en-centos-5-5#comments</comments> <pubDate>Fri, 18 Mar 2011 13:22:34 +0000</pubDate> <dc:creator>Màrius</dc:creator> <category><![CDATA[Centos]]></category> <category><![CDATA[freeradius]]></category> <category><![CDATA[radius]]></category> <category><![CDATA[routeros]]></category> <guid
isPermaLink="false">http://www.mariusduch.es/?p=1028</guid> <description><![CDATA[Voy a explicar paso a paso como instalar y configurar FreeRadius en un servidor Linux con CentoOS 5.5. Para posteriormente usar un router MikroTik RouterBOARD 750G contra el servidor FreeRadius. Este router dispone del sistema operativo RouterOS y evidentemente de los servicio Radius y HotSpot con los que nos comunicaremos contra el servidor. Para realizar [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignleft size-full wp-image-1031" title="instalar-y-configurar-freeradius-con-mysql-en-centos-5-5" src="http://www.mariusduch.es/wp-content/uploads/instalar-y-configurar-freeradius-con-mysql-en-centos-5-5.png" alt="" width="100" height="100" />Voy a explicar paso a paso como instalar y configurar <em>FreeRadius</em> en un servidor Linux con <em>CentoOS 5.5</em>. Para posteriormente usar un router <em>MikroTik RouterBOARD 750G</em> contra el servidor FreeRadius.</p><p>Este router dispone del sistema operativo <em>RouterOS</em> y evidentemente de los servicio Radius y HotSpot con los que nos comunicaremos contra el servidor.</p><p>Para realizar el proceso de instalación, nos conectaremos a la consola bash del servidor, ya sea localmente o por SSH, y realizaremos los siguientes pasos:<br
/> <span
id="more-1028"></span><br
/> 1.Instalamos los paquetes de FreeRadius2:</p><blockquote><p>yum -y install freeradius2 freeradius2-mysql freeradius2-utils</p></blockquote><p><em>Nota:<br
/> Hasta la version de CentOS 5.4, solo hay paquetes de FreeRadius 1.1.x<br
/> A partir de la version de CentOS 5.5, ya hay paquetes de FreeRadius 2.x.<br
/> No se pueden instalar la dos versiones a la vez.</em></p><p>2. Instalamos los paquetes de MySQL:</p><blockquote><p>yum -y install mysql mysql-server</p></blockquote><p>3. Generamos los certificados predeterminados:</p><blockquote><p>radiusd -X</p></blockquote><p>4. Si nos aparece lo siguiente, todo a ido bien. Entonces pulsaremos Ctrl+C para finalizar el proceso:</p><blockquote><p>Ready to process requests.</p></blockquote><p>5. Iniciamos MySQL:</p><blockquote><p>/etc/init.d/mysqld start</p></blockquote><p>6. Marcamos el servicio para que se inicie al arrancar el S.O, ejecutando el siguiente comando:</p><blockquote><p>ntsysv</p></blockquote><p>6.1. Marcamos:</p><blockquote><p>[*] mysqld</p></blockquote><p>7. Le damos contraseña al usuario root:</p><blockquote><p>mysqladmin -uroot password &#8217;123qwe&#8217;</p></blockquote><p>8. Creamos una base de datos llamada <strong>radius</strong>:</p><blockquote><p>mysqladmin -uroot -p123qwe create radius</p></blockquote><p>9. Accedemos al interprete de ordenes de MySQL:</p><blockquote><p>mysql -uroot -p123qwe</p></blockquote><p>10. Creamos el usuario <strong>radius</strong> con password <strong>123qew</strong> y con permisos totales sobre la BD <strong>radius</strong>:</p><blockquote><p>GRANT all ON radius.* TO radius@localhost IDENTIFIED BY &#8217;123qwe&#8217;;</p></blockquote><p>11. Salimos del interprete de ordenes:</p><blockquote><p>exit;</p></blockquote><p>12. Añadimos a la base de datos <strong>radius</strong> con el usuario <strong>radius</strong> los esquemas de FreeRadius:</p><blockquote><p>mysql -uradius -p123qwe radius &lt; /etc/raddb/sql/mysql/cui.sql<br
/> mysql -uradius -p123qwe radius &lt; /etc/raddb/sql/mysql/ippool.sql<br
/> mysql -uradius -p123qwe radius &lt; /etc/raddb/sql/mysql/nas.sql<br
/> mysql -uradius -p123qwe radius &lt; /etc/raddb/sql/mysql/schema.sql<br
/> mysql -uradius -p123qwe radius &lt; /etc/raddb/sql/mysql/wimax.sql</p></blockquote><p>13.Editamos el fichero de configuración de Radius:</p><blockquote><p>vim /etc/raddb/radiusd.conf</p></blockquote><p>14. Descomentamos la linea que dice <strong>$INCLUDE sql.conf</strong> <em>(linea 863, aprox.)</em>:</p><blockquote><p>$INCLUDE sql.conf</p></blockquote><p>15. Editamos el fichero de configuración de SQL de Radius:</p><blockquote><p>vim /etc/raddb/sql.conf</p></blockquote><p>16. Modificamos los valores de los datos de acceso a la base de datos, con los que nosotros hemos usado <em>(linea 35, aprox.)</em>:</p><blockquote><p># Connection info:<br
/> server = &#8220;localhost&#8221;<br
/> #port = 3306<br
/> login = &#8220;radius&#8221;<br
/> password = &#8220;123qwe&#8221;</p><p># Database table configuration for everything except Oracle<br
/> radius_db = &#8220;radius&#8221;</p></blockquote><p>17. Descomentamos la linea que dice <strong>readclients = yes</strong> <em>(linea 100, aprox.)</em>:</p><blockquote><p>readclients = yes</p></blockquote><p>18. Editamos el fichero de configuracion de los sitios habilitados por defecto:</p><blockquote><p>vim /etc/raddb/sites-enabled/default</p></blockquote><p>19. Descomentamos la linea que dice <strong>sql</strong> de la sección <strong>See &#8220;Authorization Queries&#8221; in sql.conf</strong> <em>(linea 159, aprox.)</em>:</p><blockquote><p>sql</p></blockquote><p>19. Descomentamos la linea que dice <strong>sql</strong> de la sección <strong>See &#8220;Accounting queries&#8221; in sql.conf</strong> <em>(linea 365, aprox.)</em>:</p><blockquote><p>sql</p></blockquote><p>20. Accedemos nuevamente al interprete de ordenes de MySQL</p><blockquote><p>mysql -uradius -p123qwe radius</p></blockquote><p>21.Damos de alta un usuario, por ejemplo, usuario <strong>marius</strong> con contraseña <strong>temporal</strong>:</p><blockquote><p>INSERT INTO radcheck (username, attribute, value) VALUES (&#8216;marius&#8217;, &#8216;Password&#8217;, &#8216;temporal&#8217;);</p></blockquote><p><em>Nota: Esto equivale a añadir marius Cleartext-Password := &#8220;123qwe&#8221; en el fichero /etc/raddb/users</em></p><p>22. Comprobamos que el usuario se ha añadido correctamente:</p><blockquote><p>select * from radcheck;</p></blockquote><p>22.1. Veremos algo así:</p><blockquote><p>+&#8212;-+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8211;+&#8212;-+&#8212;&#8212;&#8212;-+<br
/> | id | username | attribute | op | value    |<br
/> +&#8212;-+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8211;+&#8212;-+&#8212;&#8212;&#8212;-+<br
/> |  1 | marius   | Password  | == | temporal |<br
/> +&#8212;-+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8211;+&#8212;-+&#8212;&#8212;&#8212;-+<br
/> 1 row in set (0.00 sec)</p></blockquote><p>23. Salimos de MySQL:</p><blockquote><p>exit;</p></blockquote><p>24. Iniciamos el servicio RADIUS:</p><blockquote><p>/etc/init.d/radiusd start</p></blockquote><p>25. Marcamos el servicio para que se inicie al arrancar el S.O, ejecutando el siguiente comando:</p><blockquote><p>ntsysv</p></blockquote><p>25.1. Marcamos:</p><blockquote><p>[*] radiusd</p></blockquote><p>26. Verificamos que el servicio radius puede autentificarse con mysql, con el usuarios que hemos creado.</p><blockquote><p>radtest marius temporal localhost 1812 testing123</p></blockquote><p>27. Si ha ido bien nos devolverá algo como esto:</p><blockquote><p>Sending Access-Request of id 201 to 127.0.0.1 port 1812<br
/> User-Name = &#8220;marius&#8221;<br
/> User-Password = &#8220;temporal&#8221;<br
/> NAS-IP-Address = 127.0.0.1<br
/> NAS-Port = 1812<br
/> rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=201, length=20</p></blockquote><p>28. Ahora podemos autenticar usuarios de manera local (localhost). Si queremos conectarnos desde un punto de acceso, volvemos a acceder al interprete de ordenes de MySQL:</p><blockquote><p>mysql -uradius -p123qwe radius</p></blockquote><p>29. Añadimos a la tabla NAS, los datos de nuestro P.A: <strong>ip</strong>, <strong>nombre</strong>, <strong>tipo</strong> y <strong>contraseña</strong>. Para el tipo de NAS podemos usar <em>(other, cisco, livingston, computon, max40xx, multitech, natserver, pathras, patton, portslave, tc o usrhiper)</em> si es otro, escribimos <strong>other</strong>.</p><blockquote><p>INSERT INTO nas (nasname, shortname, type, secret) VALUES (&#8217;10.0.0.20&#8242;, &#8216;MikroTik20&#8242;, &#8216;other&#8217;, &#8217;123qwe&#8217;);</p></blockquote><p>30. Comprobamos que el nas se ha añadido correctamente:</p><blockquote><p>select * from nas;</p></blockquote><blockquote><p>+&#8212;-+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+&#8212;&#8212;-+&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;+<br
/> | id | nasname   | shortname  | type  | ports | secret | community | description   |<br
/> +&#8212;-+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+&#8212;&#8212;-+&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;+<br
/> |  1 | 10.0.0.20 | MikroTik20 | other |  NULL | 123qwe | NULL      | RADIUS Client |<br
/> +&#8212;-+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+&#8212;&#8212;-+&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;+<br
/> 1 row in set (0.01 sec)</p></blockquote><p>30.1 Esto equivale a añadir al fichero<em> /etc/raddb/clients.conf</em> lo siguiente:</p><blockquote><p>client 10.0.0.20 {<br
/> secret = 123qwe<br
/> shortname = MikroTik20<br
/> nastype = other<br
/> }</p></blockquote><p>31. Para aplicar los cambios reiniciamos el servicio radius:</p><blockquote><p>/etc/init.d/radiusd restart</p></blockquote><p>32. Para realizar pruebas de conexión remota añadimos otro NAS, pero que sea un servidor linux donde le instalaremos el paquete <em>freeradius2-utils</em>.</p><blockquote><p>INSERT INTO nas (nasname, shortname, type, secret) VALUES (&#8217;10.0.0.9&#8242;, &#8216;Pruebas&#8217;, &#8216;other&#8217;, &#8217;123qwe&#8217;);</p></blockquote><p>33. Para aplicar los cambios reiniciamos el servicio radius:</p><blockquote><p>/etc/init.d/radiusd restart</p></blockquote><p>34. Accedemos al servidor que hemos configurado en el NAS y le instalamos el paquete <em>freeradius2-utils</em>.</p><blockquote><p>yum -y install freeradius2-utils</p></blockquote><p>35. Realizamos la prueba de conexion remota ejecutando un <strong>radtest</strong> contra el servidor <em>FreeRadius</em> (10.0.0.6).</p><blockquote><p>radtest marius temporal 10.0.0.6 1812 123qwe</p></blockquote><p>36. Si ha ido bien nos devolverá algo como esto:</p><blockquote><p>Sending Access-Request of id 48 to 10.0.0.6 port 1812<br
/> User-Name = &#8220;marius&#8221;<br
/> User-Password = &#8220;temporal&#8221;<br
/> NAS-IP-Address = 127.0.0.1<br
/> NAS-Port = 1812<br
/> rad_recv: Access-Accept packet from host 10.0.0.6 port 1812, id=48, length=20</p></blockquote><p>Hecho esto, ya tenemos nuestro servidor FreeRadius preparado para configurar-lo en nuestro router y hacer pruebas con el usuario que hemos creado anteriormente.</p> ]]></content:encoded> <wfw:commentRss>http://www.mariusduch.es/instalar-y-configurar-freeradius-con-mysql-en-centos-5-5/feed</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Soporte Unicode en CentOS 5.2 con PHP y PCRE</title><link>http://www.mariusduch.es/soporte-unicode-en-centos-5-2-con-php-y-pcre</link> <comments>http://www.mariusduch.es/soporte-unicode-en-centos-5-2-con-php-y-pcre#comments</comments> <pubDate>Wed, 30 Jun 2010 10:50:48 +0000</pubDate> <dc:creator>Màrius</dc:creator> <category><![CDATA[Centos]]></category> <category><![CDATA[centos]]></category> <category><![CDATA[pcre]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[soporte unicode]]></category> <guid
isPermaLink="false">http://www.mariusduch.es/?p=957</guid> <description><![CDATA[Hace unos días tuve que crear un servidor en el que se me precisaba que cumpliera un requisito que desconocía. El requisito en cuestión era: Unicode Support on CentOS 5.2 with PHP and PCRE. Se ve que es necesario para poder usar expresiones regulares en dicho servidor. Así que me puse a buscar por Internet [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignleft size-full wp-image-960" title="soporte-unicode-en-centos-5-2-con-php-y-pcre" src="http://www.mariusduch.es/wp-content/uploads/soporte-unicode-en-centos-5-2-con-php-y-pcre.png" alt="" width="100" height="100" />Hace unos días tuve que crear un servidor en el que se me precisaba que cumpliera un requisito que desconocía. El requisito en cuestión era: <strong>Unicode  Support on CentOS 5.2 with PHP and PCRE</strong>. Se ve que es necesario para poder usar expresiones regulares en dicho servidor. Así que me puse a buscar por Internet y topé con varias páginas donde se explicaba este proceso, aunque siguiendo esos pasos me encontré con mas problemas, así que después conseguir finalmente mi objetivo, adjunto un manual completo de todos los pasos que realicé implementar el soporte de Unicode.</p><p><span
id="more-957"></span>0. Acedemos al servidor donde queremos implementarlo (evidentemente el OS debe ser Centos) como usuario root<br
/> 1. Vemos si esta instalado el paquete rpm-build:</p><blockquote><p>rpm -qa |grep rpm-build.</p></blockquote><p>Si no aparece nada, es que no esta instalado.</p><p>2. Si no lo tenemos instalado, lo instalamos con alguno de los siguientes modos:</p><p>2.1. MODO YUM:</p><blockquote><p>yum -y install rpm-build</p></blockquote><p>2.2. MODO RPM&#8217;S (32bits):</p><blockquote><p>mkdir /root/software<br
/> cd /root/software</p></blockquote><blockquote><p>wget ftp://ftp.pbone.net/mirror/ftp.centos.org/5.4/os/i386/CentOS/patch-2.5.4-29.2.3.el5.i386.rpm<br
/> wget ftp://ftp.pbone.net/mirror/ftp.centos.org/5.4/os/i386/CentOS/elfutils-libs-0.137-3.el5.i386.rpm<br
/> wget ftp://ftp.pbone.net/mirror/ftp.centos.org/5.4/os/i386/CentOS/diffutils-2.8.1-15.2.3.el5.i386.rpm<br
/> wget ftp://ftp.pbone.net/mirror/ftp.centos.org/5.4/os/i386/CentOS/elfutils-0.137-3.el5.i386.rpm<br
/> wget ftp://ftp.pbone.net/mirror/ftp.centos.org/5.4/os/i386/CentOS/rpm-build-4.4.2.3-18.el5.i386.rpm</p></blockquote><blockquote><p>rpm -Uvh patch-2.5.4-29.2.3.el5.i386.rpm<br
/> rpm -ivh elfutils-libs-0.137-3.el5.i386.rpm<br
/> rpm -ivh diffutils-2.8.1-15.2.3.el5.i386.rpm<br
/> rpm -ivh elfutils-0.137-3.el5.i386.rpm<br
/> rpm -ivh rpm-build-4.4.2.3-18.el5.i386.rpm</p></blockquote><p>2.3. MODO RPM&#8217;S (64bits):</p><blockquote><p>mkdir /root/software<br
/> cd /root/software</p></blockquote><blockquote><p>ftp://ftp.pbone.net/mirror/ftp.centos.org/5.4/os/x86_64/CentOS/patch-2.5.4-29.2.3.el5.x86_64.rpm<br
/> ftp://ftp.pbone.net/mirror/ftp.centos.org/5.4/os/x86_64/CentOS/elfutils-libs-0.137-3.el5.x86_64.rpm<br
/> ftp://ftp.pbone.net/mirror/ftp.centos.org/5.4/os/x86_64/CentOS/diffutils-2.8.1-15.2.3.el5.x86_64.rpm<br
/> ftp://ftp.pbone.net/mirror/ftp.centos.org/5.4/os/x86_64/CentOS/elfutils-0.137-3.el5.x86_64.rpm<br
/> ftp://ftp.pbone.net/mirror/ftp.centos.org/5.4/os/x86_64/CentOS/rpm-build-4.4.2.3-18.el5.x86_64.rpm</p></blockquote><blockquote><p>rpm -ivh patch-2.5.4-29.2.3.el5.x86_64.rpm<br
/> rpm -ivh elfutils-libs-0.137-3.el5.x86_64.rpm<br
/> rpm -ivh diffutils-2.8.1-15.2.3.el5.x86_64.rpm<br
/> rpm -ivh elfutils-0.137-3.el5.x86_64.rpm<br
/> rpm -ivh rpm-build-4.4.2.3-18.el5.x86_64.rpm</p></blockquote><p>3. Comprobación de si tenemos soporte Unicode con PHP y PCRE:</p><blockquote><p>pcretest -C</p></blockquote><p>Veremos lo siguiente:</p><blockquote><p>PCRE version 6.6 06-Feb-2006<br
/> Compiled with<br
/> UTF-8 support<br
/> No Unicode properties support<br
/> Newline character is LF<br
/> Internal link size = 2<br
/> POSIX malloc threshold = 10<br
/> Default match limit = 10000000<br
/> Default recursion depth limit = 10000000<br
/> Match recursion uses stack</p></blockquote><p>Si aparece <strong>&#8220;No Unicode properties support&#8221;</strong> es que no tenemos dicho soporte</p><p>4. Ahora accedemos de nuevo a la maquina, pero con un usuario que no sea root.</p><p>5. Creamos la siguiente carpeta:</p><blockquote><p>mkdir -p ~/src/rpm</p></blockquote><p>6. Accedemos a ella:</p><blockquote><p>cd ~/src/rpm</p></blockquote><p>7. Creamos las siguientes carpetas:</p><blockquote><p>mkdir BUILD RPMS SOURCES SPECS SRPMS</p></blockquote><p>8. Averiguamos la infraestructura de nuestra maquina:</p><blockquote><p>uname -i</p></blockquote><p>9. Nos devolvera esto o algo parecido:</p><blockquote><p>x86_64</p></blockquote><p>10. Creamos la siguiente carpeta, con el nombre de la quitectura de nuestra maquina:</p><blockquote><p>mkdir RPMS/x86_64</p></blockquote><p>11. Creamos el archivo .rpmmacros en la siguiente ruta:</p><blockquote><p>touch ~/.rpmmacros</p></blockquote><p>12. Editamos su contenido, con vi (o el editor que queramos):</p><blockquote><p>vim ~/.rpmmacros</p></blockquote><p>13. Introducimos la siguiente información dentro del fichero:</p><blockquote><p># Path to top of build area<br
/> %_topdir /home/xxxxxxxxx/src/rpm</p></blockquote><p><strong><em>IMPORTANTE: Substituir xxxxxxxxx por el nombre del usuario que estamos usando (el que no es root)</em></strong></p><p>14. Vamos la la carpeta de nuestro usuario:</p><blockquote><p>cd ~</p></blockquote><p>15. Descargamos el siguiente fichero segun nuestra arquitectura:<br
/> 15.2. Si es versión 32bits:</p><blockquote><p>wget http://mirror.centos.org/centos/5/os/i386/CentOS/pcre-6.6-2.el5_1.7.i386.rpm</p></blockquote><p>15.2. Si es versión 64bits:</p><blockquote><p>wget http://mirror.centos.org/centos/5/os/x86_64/CentOS/pcre-6.6-2.el5_1.7.x86_64.rpm</p></blockquote><p>16. Lo instalamos:</p><blockquote><p>rpm -ivh pcre-6.6-2.el5_1.7.src.rpm</p></blockquote><p>Si ha ido bien veremos lo siguiente:</p><blockquote><p>1:pcre                   warning: user mockbuild does not exist &#8211; using root<br
/> warning: group mockbuild does not exist &#8211; using root<br
/> warning: user mockbuild does not exist &#8211; using root<br
/> warning: group mockbuild does not exist &#8211; using root<br
/> warning: user mockbuild does not exist &#8211; using root<br
/> warning: group mockbuild does not exist &#8211; using root<br
/> warning: user mockbuild does not exist &#8211; using root<br
/> warning: group mockbuild does not exist &#8211; using root<br
/> warning: user mockbuild does not exist &#8211; using root<br
/> warning: group mockbuild does not exist &#8211; using root<br
/> warning: user mockbuild does not exist &#8211; using root<br
/> warning: group mockbuild does not exist &#8211; using root<br
/> warning: user mockbuild does not exist &#8211; using root<br
/> warning: group mockbuild does not exist &#8211; using root<br
/> warning: user mockbuild does not exist &#8211; using root<br
/> warning: group mockbuild does not exist &#8211; using root<br
/> ########################################### [100%]<br
/> warning: user mockbuild does not exist &#8211; using root<br
/> warning: group mockbuild does not exist &#8211; using root</p></blockquote><p>Esto hara que se creen unos archivos en las carpetas anteriormente creadas.</p><p>17. Editamos el siguiente fichero:</p><blockquote><p>vim ~/src/rpm/SPECS/pcre.spec</p></blockquote><p>18. Buscamos la linea donde esta escrito lo siguiente:</p><blockquote><p>%configure –enable-utf8</p></blockquote><p>19. Añadimos lo siguiente, dejando la linea de este modo:</p><blockquote><p>%configure –enable-utf8 –-enable-unicode-properties</p></blockquote><p>20. Ejecutamos lo siguiente:</p><blockquote><p>rpmbuild -ba ~/src/rpm/SPECS/pcre.spec</p></blockquote><p>21. Una vez finalizado el proceso, accedemos a la maquina como usuario root.</p><p>22. Ejecutamos lo siguiente:</p><blockquote><p>rpm -Uvh /home/xxxxxxxxx/src/rpm/RPMS/i386/pcre-6.6-2.7.i386.rpm</p></blockquote><p><strong><em>IMPORTANTE: Substituir xxxxxxxxx por el nombre del usuario que hemos usado anteriormente (el que no es root)</em></strong></p><p>23. Reiniciamos apache:</p><blockquote><p>/etc/init.d/httpd restart</p></blockquote><p>24. Ejecutamos lo siguiente:</p><blockquote><p>pcretest -C</p></blockquote><p>Si todo ha ido bien veremos lo siguiente:</p><blockquote><p>PCRE version 6.6 06-Feb-2006<br
/> Compiled with<br
/> UTF-8 support<br
/> Unicode properties support<br
/> Newline character is LF<br
/> Internal link size = 2<br
/> POSIX malloc threshold = 10<br
/> Default match limit = 10000000<br
/> Default recursion depth limit = 10000000<br
/> Match recursion uses stack</p></blockquote><p>Es decir, aparecerá la frase <strong>&#8220;Unicode properties support&#8221;</strong></p> ]]></content:encoded> <wfw:commentRss>http://www.mariusduch.es/soporte-unicode-en-centos-5-2-con-php-y-pcre/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
