<?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># rm-rf.es &#187; Manuales</title>
	<atom:link href="http://rm-rf.es/categoria/manuales/feed/" rel="self" type="application/rss+xml" />
	<link>http://rm-rf.es</link>
	<description>Administración de sistemas, Unix, Linux, FreeBSD, Windows, hosting, dominios, servidores...</description>
	<lastBuildDate>Sat, 28 Jan 2012 19:36:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cómo instalar Oracle Solaris 11 Express</title>
		<link>http://rm-rf.es/como-instalar-oracle-solaris-11-express/</link>
		<comments>http://rm-rf.es/como-instalar-oracle-solaris-11-express/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 16:00:57 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Manuales]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Vídeos]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[solaris]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=2239</guid>
		<description><![CDATA[Hoy vamos a ver lo sencillo que resulta instalar Oracle Solaris 11 Express 2010.11 tanto en una máquina virtual como en un equipo físico. Lo primero que tenemos que hacer es descargar la imagen de instalación correspondiente desde este enlace del sitio web de Oracle (es necesario registro). En mi caso, como es habitual he [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy vamos a ver lo sencillo que resulta <strong>instalar Oracle Solaris 11 Express 2010.11</strong> tanto en una máquina virtual como en un equipo físico. Lo primero que tenemos que hacer es descargar la imagen de instalación correspondiente desde <a href="http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index.html" target="_blank">este enlace del sitio web de Oracle</a> (es necesario registro). En mi caso, como es habitual he utilizado la versión de <strong>instalación en modo texto para x86</strong>.</p>
<p>Vamos a ello, arrancamos el equipo con un CD con la imagen ISO grabada y empezamos la instalación. Seleccionamos el tipo de teclado, en nuestro caso &#8217;39&#8242; (español):</p>
<p><img class="size-full wp-image-2240" title="solaris_001" src="http://rm-rf.es/wp-content/uploads/2011/09/solaris_001.jpeg" alt="" width="545" height="126" /></p>
<p>Ahora toca elegir el idioma, en mi caso selecciono inglés ya que prefiero instalar los sistemas en inglés que en español, sobre todo porque a la hora de buscar documentación y errores hay mucha más información:</p>
<p><img class="size-full wp-image-2241" title="solaris_002" src="http://rm-rf.es/wp-content/uploads/2011/09/solaris_002.jpeg" alt="" width="645" height="193" /></p>
<p>Comienza la instalación de Oracle Solaris, elegimos &#8217;1&#8242; para empezar:</p>
<p><img class="size-full wp-image-2242" title="solaris_003" src="http://rm-rf.es/wp-content/uploads/2011/09/solaris_003.jpeg" alt="" width="509" height="148" /></p>
<p>Tras la pantalla de bienvenida, empezamos con la configuración de discos y particiones. Primero toca elegir el disco sobre el que hacer la instalación y después la estructura de particiones. En este caso es un disco virtual sobre Virtualbox, así que elegimos el único disco disponible y usamos todo el disco para instalar el sistema.</p>
<p><img class="size-full wp-image-2243" style="border: 1px solid black;" title="solaris_004" src="http://rm-rf.es/wp-content/uploads/2011/09/solaris_004.jpeg" alt="" width="591" height="331" /></p>
<p><img class="size-full wp-image-2244" style="border: 1px solid black;" title="solaris_005" src="http://rm-rf.es/wp-content/uploads/2011/09/solaris_005.jpeg" alt="" width="575" height="303" /></p>
<p>Ahora <strong>introducimos el nombre de la máquina (hostname) y especificamos si deseamos que la configuración de red sea automática</strong> o si preferimos realizarla de forma manual posteriormente:</p>
<p><img class="size-full wp-image-2245" style="border: 1px solid black;" title="solaris_006" src="http://rm-rf.es/wp-content/uploads/2011/09/solaris_006.jpeg" alt="" width="589" height="215" /></p>
<p>Establecemos la<strong> configuración regional</strong> del equipo, fecha, etc:</p>
<p><img class="size-full wp-image-2246" style="border: 1px solid black;" title="solaris_007" src="http://rm-rf.es/wp-content/uploads/2011/09/solaris_007.jpeg" alt="" width="444" height="249" /></p>
<p>Llega el momento de asignar una <strong>clave al usuario root y la creación de una cuenta de usuario</strong> extra:</p>
<p><img class="size-full wp-image-2247" style="border: 1px solid black;" title="solaris_008" src="http://rm-rf.es/wp-content/uploads/2011/09/solaris_008.jpeg" alt="" width="629" height="244" /></p>
<p>Antes de comenzar la instalación, podemos ver un resumen de las opciones configuradas y elegir cambiar alguna de ellas volviendo atrás (F3):</p>
<p><img class="size-full wp-image-2248" style="border: 1px solid black;" title="solaris_009" src="http://rm-rf.es/wp-content/uploads/2011/09/solaris_009.jpeg" alt="" width="582" height="347" /></p>
<p>Cuando todo esté correcto, presionamos F2 y la instalación comenzará:</p>
<p><img class="size-full wp-image-2249" style="border: 1px solid black;" title="solaris_010" src="http://rm-rf.es/wp-content/uploads/2011/09/solaris_010.jpeg" alt="" width="549" height="176" /></p>
<p>Una vez finalizada la instalación sólo nos queda presionar F8 para hacer un reboot y ya podemos comenzar a disfrutar de nuestro sistema Oracle Solaris:</p>
<pre>alex@solaris:~$ uname -a
SunOS solaris 5.11 snv_151a i86pc i386 i86pc</pre>
<p>En las próximas entradas empezaremos a ver cómo configurar las interfaces de red, la instalación de paquetes y una visión general del sistema.</p>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/introduccion-a-smf-service-management-facility-en-solaris/" title="Introducción a SMF (Service Management Facility) en Solaris">Introducción a SMF (Service Management Facility) en Solaris</a></li><li><a href="http://rm-rf.es/stub-start-error-en-oracle-iplanet-web-server-php-fastcgi/" title="Stub Start Error en Oracle iPlanet Web Server: PHP + FastCGI">Stub Start Error en Oracle iPlanet Web Server: PHP + FastCGI</a></li><li><a href="http://rm-rf.es/configurar-php-fastcgi-en-oracle-iplanet-web-server/" title="Configurar PHP + FastCGI en Oracle iPlanet Web Server">Configurar PHP + FastCGI en Oracle iPlanet Web Server</a></li><li><a href="http://rm-rf.es/gestionar-el-storage-en-solaris-con-zfs-y-zpool/" title="Gestionar el storage en Solaris con zfs y zpool">Gestionar el storage en Solaris con zfs y zpool</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/como-instalar-oracle-solaris-11-express/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>LDAP (OpenLDAP): instalación y configuración (I)</title>
		<link>http://rm-rf.es/ldap-openldap-instalacion-y-configuracion-i/</link>
		<comments>http://rm-rf.es/ldap-openldap-instalacion-y-configuracion-i/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 08:12:49 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Manuales]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[OpenLDAP]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=1942</guid>
		<description><![CDATA[LDAP son las siglas de Lightweight Directory Access Protocol (en español Protocolo Ligero de Acceso a Directorios) que hacen referencia a un protocolo a nivel de aplicación el cual permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red. LDAP también es considerado una base [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><strong>LDAP</strong> son las siglas de <strong>Lightweight Directory Access Protocol (en español Protocolo Ligero de Acceso a Directorios)</strong> que hacen referencia a un protocolo a nivel de aplicación el cual <strong>permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red</strong>. LDAP también es considerado una base de datos (aunque su sistema de almacenamiento puede ser diferente) a la que pueden realizarse consultas.</p></blockquote>
<p><img class="size-full wp-image-2185" style="margin: 5px 22px;" title="OpenLDAP" src="http://rm-rf.es/wp-content/uploads/2011/08/openldap.jpg" alt="OpenLDAP" width="175" height="120" align="right" />Llevaba tiempo queriendo probar <strong>LDAP</strong> y finalmente me he decidido, sobre todo por el hecho de utilizarlo para autenticación y gestión de usuarios de forma centralizada. Pese a no poder ponerlo en práctica de momento a gran escala, me conformo con hacer alguna que otra prueba con pequeños entornos virtuales.</p>
<p>En esta entrada voy a tratar de momento lo más básico de <strong>OpenLDAP</strong>. Sobre todo no voy a entrar prácticamente en todo lo relacionado con creación &#8220;manual&#8221; de arboles de directorios pues de momento no domino al 100% la estructuración de objetos y demás, vamos a usar los scripts que ofrece OpenLDAP para migración e importación de objetos.</p>
<h2>Instalación de OpenLDAP</h2>
<p>La instalación de <a href="http://www.openldap.org/" target="_blank"><strong>OpenLDAP</strong></a> (implementación Open Source de LDAP) la vamos a hacer a través de <a title="Gestión de paquetes en Linux con Yum" href="http://rm-rf.es/gestion-de-paquetes-en-linux-con-yum/">YUM</a> (RHEL, CentOS, Fedora&#8230;), en Debian o similar podéis hacerlo por APT, no tiene mayor complicación.</p>
<pre># yum install -y openldap openldap-servers openldap-clients</pre>
<h2>Configuración inicial/básica de OpenLDAP</h2>
<p>La configuración básica que tenemos que revisar una vez instalado se encuentra en el fichero de configuración <strong>slapd.conf</strong>. Lo primero que especificamos es la definición de una <strong>base de datos o directorio en la que almacenaremos toda la información</strong> (bdb en este caso), la <strong>información/sufijo del dominio</strong> (ldap-db.com en nuestro caso) y el <strong>DN que tendrá acceso total</strong> (root, Manager o como queráis llamarlo) sin restricciones a la información (rootdn).</p>
<p>A tener en cuenta respecto al <strong>suffix</strong>, que en este caso es <em>ldap-db.com</em> es que al especificarlo se separa el nombre del dominio (ldap-db) y su TLD (com). Se pueden especificar varios pero es necesario mínimo uno para cada base de datos:</p>
<pre># vim /etc/openldap/slapd.conf

database          bdb
suffix          "dc=ldap-db,dc=com"
rootdn          "cn=gestion,dc=ldap-db,dc=com"
rootpw          {SSHA}6SPjVCdtjv2aC3O+pvddSiFkdKGEAa3sH</pre>
<p>La string que véis en rootpw es la clave del usuario de gestión (rootdn), la hemos generado con el comando <strong>slappaswd</strong>:</p>
<pre># slappasswd
New password:
Re-enter new password:
{SSHA}6SPjVCdtjv2aC3O+pvddSiFkdKGEAa3sH</pre>
<p>Ya podemos arrancar el servidor ldap, también lo configuramos para que arranque de forma automática tras reinicios:</p>
<pre># /etc/init.d/ldap start
Checking configuration files for slapd:  config file testing succeeded
                                                           [  OK  ]
Starting slapd:                                            [  OK  ]

# chkconfig ldap on</pre>
<h2>Cómo insertar o importar registros en la base de datos LDAP</h2>
<p>Ahora mismo ya tenemos inicializada nuestra base de datos bdb, pero no hay ningún dato en ella. Todo lo relacionado con la arquitectura y estructuración de la base de datos es un tema muy extenso y complejo, así que os emplazo a la <a href="http://www.openldap.org/doc/admin24/index.html" target="_blank">documentación en www.openldap.org</a> para familiarizaros con ella. Lo que vamos a hacer en este caso es exportar los usuarios y grupos de sistema (junto con sus claves) a <strong><a href="http://en.wikipedia.org/wiki/LDAP_Data_Interchange_Format" target="_blank">formato ldif</a></strong> para tenerlos dentro del directorio LDAP y poder usar la autenticación a través de él. Para ello utilizamos los scripts en perl que nos ofrece el propio OpenLDAP. Se encuentran en:</p>
<pre>/usr/share/openldap/migration</pre>
<p>Estos scripts permiten migrar al formato ldif toda la información del sistema. Lo primero que hacemos es configurar unas variables en el script <strong>migrate_common.ph</strong>:</p>
<pre>$DEFAULT_MAIL_DOMAIN = "ldap-db.com";
$DEFAULT_BASE = "dc=ldap-db,dc=com";
# Las siguientes variables es por si queremos evitar
# la exportación de usuarios y grupos de sistema que
# no interesan...
$IGNORE_UID_BELOW = 1000;
$IGNORE_GID_BELOW = 100;
$IGNORE_UID_ABOVE = 9999;
$IGNORE_GID_ABOVE = 9999;</pre>
<p>Después importamos la base de la configuración:</p>
<pre># /usr/share/openldap/migration/migrate_base.pl &gt; base.ldif
# ldapadd -x -W -D 'cn=gestion, dc=ldap-db, dc=com' -h 127.0.0.1 -f base.ldif
Enter LDAP Password:
adding new entry "dc=ldap-db,dc=com"
adding new entry "ou=Hosts,dc=ldap-db,dc=com"
adding new entry "ou=Rpc,dc=ldap-db,dc=com"
adding new entry "ou=Services,dc=ldap-db,dc=com"
adding new entry "nisMapName=netgroup.byuser,dc=ldap-db,dc=com"
adding new entry "ou=Mounts,dc=ldap-db,dc=com"
adding new entry "ou=Networks,dc=ldap-db,dc=com"
adding new entry "ou=People,dc=ldap-db,dc=com"
adding new entry "ou=Group,dc=ldap-db,dc=com"
adding new entry "ou=Netgroup,dc=ldap-db,dc=com"
adding new entry "ou=Protocols,dc=ldap-db,dc=com"
adding new entry "ou=Aliases,dc=ldap-db,dc=com"
adding new entry "nisMapName=netgroup.byhost,dc=ldap-db,dc=com"</pre>
<p>Después podemos ya hacer lo mismo para los usuarios y grupos del sistema, de esta forma ya tendremos los objetos base de la base de datos/árbol LDAP y todos los usuarios y grupos del sistema:</p>
<pre># /usr/share/openldap/migration/migrate_group.pl /etc/group /tmp/group.ldif
# /usr/share/openldap/migration/migrate_passwd.pl /etc/passwd /tmp/passwd.ldif</pre>
<p>E importamos al árbol LDAP:</p>
<pre># ldapadd -x -W -D 'cn=gestion, dc=ldap-db, dc=com' -h 127.0.0.1 -f passwd.ldif
Enter LDAP Password:
adding new entry "uid=root,ou=People,dc=ldap-db,dc=com"
adding new entry "uid=bin,ou=People,dc=ldap-db,dc=com"
adding new entry "uid=daemon,ou=People,dc=ldap-db,dc=com"
adding new entry "uid=adm,ou=People,dc=ldap-db,dc=com"
adding new entry "uid=lp,ou=People,dc=ldap-db,dc=com"
adding new entry "uid=sync,ou=People,dc=ldap-db,dc=com"
adding new entry "uid=shutdown,ou=People,dc=ldap-db,dc=com"
...
...
...

# ldapadd -x -W -D 'cn=gestion, dc=ldap-db, dc=com' -h 127.0.0.1 -f group.ldif
Enter LDAP Password:
adding new entry "cn=root,ou=Group,dc=ldap-db,dc=com"
adding new entry "cn=bin,ou=Group,dc=ldap-db,dc=com"
adding new entry "cn=daemon,ou=Group,dc=ldap-db,dc=com"
adding new entry "cn=sys,ou=Group,dc=ldap-db,dc=com"
adding new entry "cn=adm,ou=Group,dc=ldap-db,dc=com"
adding new entry "cn=uucp,ou=Group,dc=ldap-db,dc=com"
adding new entry "cn=man,ou=Group,dc=ldap-db,dc=com"
...
...
...
...</pre>
<p>Y si ahora lanzamos una consulta contra LDAP veremos estas entradas reflejadas:</p>
<pre># ldapsearch -x -b 'dc=ldap-db,dc=com' '(objectclass=*)'
# extended LDIF
#
# LDAPv3
# base  with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# ldap-db.com
dn: dc=ldap-db,dc=com
...
...</pre>
<h2>Configurar el sistema para autenticar contra LDAP</h2>
<p>Una vez configurado OpenLDAP podemos hacer lo propio con el sistema para que utilice su directorio de forma activa. En este caso utilizando la autenticación en el sistema de usuarios a través de LDAP.</p>
<p>Tenemos que modificar el fichero <strong>/etc/nsswitch.conf</strong> e indicarle que la autenticación a través de passwd/shadow/group también se puede hacer vía LDAP:</p>
<pre>passwd:  files ldap
group:  files ldap
shadow:   files ldap</pre>
<p>Luego modificamos el fichero <strong>/etc/ldap.conf</strong> indicando:</p>
<pre>URI ldap://&lt;IP_SERVIDOR_LDAP_O_FQDN:389/
base dc=ldap-db,dc=com</pre>
<p>Bien, ahora usando el <strong>comando getent</strong> podemos verificar si está cogiendo los datos vía LDAP, si salen los usuarios dos veces es que lo coge bien (una por passwd y otra por LDAP):</p>
<pre># getent passwd | grep alex
alex:x:27:27:Alex Garcia:/var/lib/mysql:/bin/bash
alex:x:27:27:Alex Garcia:/var/lib/mysql:/bin/bash</pre>
<p>Si ahora borraramos el usuario &#8220;alex&#8221; del passwd y shadow (<a title="visudo, vipw y vigr: editando ficheros críticos en Linux de forma segura" href="http://rm-rf.es/visudo-vipw-y-vigr-editando-ficheros-criticos-en-linux-de-forma-segura/">visudo, vipw y vigr: editando ficheros críticos en Linux de forma segura</a>), aparecería sólo una vez, pero podríamos seguir haciendo login con el usuario, porque lo coge de LDAP. Guardar un backup antes de los ficheros que modifiquéis:</p>
<pre># getent passwd | grep alex
alex:x:27:27:Alex Garcia:/var/lib/mysql:/bin/bash</pre>
<h2>Activar log de LDAP</h2>
<p>Vamos a activar el logging de LDAP para verificar que todo funciona OK. Para ello añadimos la siguiente línea al fichero <strong>/etc/openldap/slapd.conf</strong>:</p>
<pre>loglevel 128</pre>
<p>Luego a nivel de syslog, en el fichero <strong>/etc/syslog.conf</strong>:</p>
<pre>local4.*                  /var/log/ldap.log</pre>
<p>Y reiniciamos:</p>
<pre># /etc/init.d/syslog restart &amp;&amp; /etc/init.d/ldap restart</pre>
<p>Volviendo a la prueba de antes, si la hacéis de nuevo y hacéis login con un usuario veréis que autentica vía LDAP en el log:</p>
<pre>Aug 31 01:19:16 cluster02 slapd[2312]: =&gt; access_allowed: search access to "uid=alex,ou=People,dc=ldap-db,dc=com" "objectClass" requested
Aug 31 01:19:16 cluster02 slapd[2312]: =&gt; access_allowed: backend default search access granted to "(anonymous)"
Aug 31 01:19:16 cluster02 slapd[2312]: =&gt; access_allowed: search access to "uid=alex,ou=People,dc=ldap-db,dc=com" "uid" requested
Aug 31 01:19:16 cluster02 slapd[2312]: =&gt; access_allowed: backend default search access granted to "(anonymous)"
Aug 31 01:19:16 cluster02 slapd[2312]: =&gt; access_allowed: read access to "uid=alex,ou=People,dc=ldap-db,dc=com" "entry" requested</pre>
<p>&nbsp;</p>
<p>En próximas entradas veremos entre otras cosas como por ejemplo configurar ssh para que use también la autenticación LDAP, añadir y borrar registros, tareas de mantenimiento en el árbol de directorios, etc.</p>
<p>Segundo artículo aquí:</p>
<h3><a href="http://rm-rf.es/usar-autenticacion-ldap-openldap-con-opensshd-sshd/" title="Usar autenticación LDAP (OpenLDAP) con OpenSSHD (sshd)">Usar autenticación LDAP (OpenLDAP) con OpenSSHD (sshd)</a></h3>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/volver-a-concatenar-lineas-de-un-ldif-con-sed/" title="Volver a concatenar líneas de un LDIF con sed">Volver a concatenar líneas de un LDIF con sed</a></li><li><a href="http://rm-rf.es/usar-autenticacion-ldap-openldap-con-opensshd-sshd/" title="Usar autenticación LDAP (OpenLDAP) con OpenSSHD (sshd)">Usar autenticación LDAP (OpenLDAP) con OpenSSHD (sshd)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/ldap-openldap-instalacion-y-configuracion-i/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lighttpd: proteger una carpeta o website con contraseña</title>
		<link>http://rm-rf.es/lighttpd-proteger-una-carpeta-o-website-con-contrasena/</link>
		<comments>http://rm-rf.es/lighttpd-proteger-una-carpeta-o-website-con-contrasena/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 17:25:43 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Manuales]]></category>
		<category><![CDATA[htpasswd]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[servidor web]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=2088</guid>
		<description><![CDATA[Si utilizamos Lighttpd y necesitamos una funcionalidad similar a la que nos ofrece el servidor web Apache para proteger con password un directorio o virtualhost (en este caso vía .htaccess o directamente en el virtualhost con AuthType, AuthUserFile&#8230;) debemos hacer uso del módulo mod_auth y sus directivas. Vamos a ver como configurarlo. Lo primero que [...]]]></description>
			<content:encoded><![CDATA[<p><img class=" size-full wp-image-1822" style="margin-left: 18px; margin-right: 18px;" title="Lighttpd" src="http://rm-rf.es/wp-content/uploads/2011/05/lighttpd.png" alt="Lighttpd" width="180" height="173" align="right" />Si utilizamos <a title="Instalación y configuración de Lighttpd con PHP + FastCGI" href="http://rm-rf.es/instalacion-y-configuracion-de-lighttpd-con-php-fastcgi/">Lighttpd</a> y necesitamos una funcionalidad similar a la que nos ofrece el servidor web Apache para <strong>proteger con password un directorio o virtualhost</strong> (en este caso vía .htaccess o directamente en el virtualhost con AuthType, AuthUserFile&#8230;) debemos hacer uso del módulo <strong>mod_auth</strong> y sus directivas. Vamos a ver como configurarlo.</p>
<p>Lo primero que debemos hacer es ver si el módulo está cargado en la configuración, para ello abrimos el fichero de configuración y revisamos la sección <strong>server.modules</strong>, donde debería <strong>mod_auth</strong>, sino lo añadís:</p>
<pre>/etc/lighttpd/lighttpd.conf</pre>
<pre>server.modules              = (
            "mod_access",
            "mod_accesslog",
            "mod_fastcgi",
            "mod_rewrite",
            <strong>"mod_auth"</strong>,
            "mod_cgi"
)</pre>
<p>Después tenemos que configurar las tres directivas disponibles para la autenticación, el tipo de autenticación, el fichero en el que se almacenarán los datos de usuarios y claves y el nivel de debug:</p>
<pre>auth.backend               = "htpasswd"
auth.backend.htpasswd.userfile = "/home/miwebsite/.lighttpdpasswd"
auth.debug = 0</pre>
<p>Mediante <strong>auth.backend</strong> podemos especificar el tipo de autenticación, puede ser en texto plano (plain) o mediante htpasswd o LDAP. Elegimos htpasswd para tener la clave encriptada. Luego el fichero donde se almacenan las claves lo especificamos también (<strong>auth.backend.htpasswd.userfile</strong>). Finalmente el debug para verificar el funcionamiento, con 0 queda desactivado, con 1 vuelca a los logs cuando la autenticación es correcta y con 2 vuelca todo (access.log y error.log).</p>
<p>Ahora creamos fuera de la carpeta pública del sitio web el fichero con los usuarios y sus claves encriptadas por <a title="Generar fichero htpasswd desde línea de comandos" href="http://rm-rf.es/generar-fichero-htpasswd-desde-linea-de-comandos/">htpasswd</a>:</p>
<pre># vim /home/miwebsite/.lighttpdpasswd</pre>
<pre>foo:soAb7vp63UATv7uaA2</pre>
<pre>chown lighttpd /home/miwebsite/.lighttpdpasswd &amp;&amp; chmod 0600 .lighttpdpassword</pre>
<p>Finalmente sólo nos queda seleccionar que directorio o website queremos proteger. Para ello buscaremos la sección $HTTP["host"] que contenga la web/directorio a proteger:</p>
<p>En negrita lo relacionado con la autenticación:</p>
<pre>$HTTP["host"]  =~ "test.com" {
  server.document-root = "/home/test-com/"
  accesslog.filename         = "/var/log/lighttpd/test-access.log"
<strong> auth.require = ( "/carpeta-protegida/" =&gt;</strong>
 <strong>(</strong>
  <strong>"method" =&gt; "basic",</strong>
  <strong>"realm" =&gt; "Password protected area",</strong>
  <strong>"require" =&gt; "user=foo"</strong>
 <strong>)</strong>
 <strong>)</strong>
}</pre>
<p>Y ya podemos reiniciar lighttpd para activar los cambios. En este caso la carpeta test.com/carpeta-protegida/ quedará protegida y únicamente el usuario foo podrá acceder.</p>
<pre># /etc/init.d/lighttpd restart</pre>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/mod_fcgid-http-request-length-132147so-far-exceeds-maxrequestlen-131072/" title="mod_fcgid: HTTP request length 132147(so far) exceeds MaxRequestLen (131072)">mod_fcgid: HTTP request length 132147(so far) exceeds MaxRequestLen (131072)</a></li><li><a href="http://rm-rf.es/apache-diferencia-entre-reiniciar-con-restart-y-graceful/" title="Apache: diferencia entre reiniciar con &#8216;restart&#8217; y &#8216;graceful&#8217;">Apache: diferencia entre reiniciar con &#8216;restart&#8217; y &#8216;graceful&#8217;</a></li><li><a href="http://rm-rf.es/instalacion-y-configuracion-de-lighttpd-con-php-fastcgi/" title="Instalación y configuración de Lighttpd con PHP + FastCGI">Instalación y configuración de Lighttpd con PHP + FastCGI</a></li><li><a href="http://rm-rf.es/servidor-web-en-python-con-un-solo-comando/" title="Servidor web en Python con un solo comando">Servidor web en Python con un solo comando</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/lighttpd-proteger-una-carpeta-o-website-con-contrasena/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo instalar CentOS 6</title>
		<link>http://rm-rf.es/como-instalar-centos-6/</link>
		<comments>http://rm-rf.es/como-instalar-centos-6/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 12:57:46 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Manuales]]></category>
		<category><![CDATA[centos]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=2012</guid>
		<description><![CDATA[Vamos a ver como instalar paso a paso la nueva versión de CentOS (6.0) que salió a la luz hace pocos días y tras muchos meses de espera. Vamos a seguir los mismos pasos que con la instalación de CentOS 5. Realizaremos una instalación mínima a través de la ISO netinstall. El primer paso es [...]]]></description>
			<content:encoded><![CDATA[<p>Vamos a ver como <strong>instalar paso a paso la nueva versión de CentOS (6.0)</strong> que salió a la luz hace pocos días y tras muchos meses de espera. Vamos a seguir los mismos pasos que con la <a title="Guía de instalación GNU/Linux CentOS 5" href="http://rm-rf.es/manual-instalar-gnu-linux-centos-5/">instalación de CentOS 5</a>. Realizaremos una instalación mínima a través de la ISO netinstall.</p>
<p>El primer paso es descargar la ISO correspondiente desde un mirror de CentOS, por ejemplo:</p>
<p><em>ftp://ftp.udl.es/pub/centos/6.0/isos/</em></p>
<p>Podréis seleccionar tanto la versión de 32 como 64 bits. En esta guía vamos a instalar la versión de 32 bits:</p>
<p><em>CentOS-6.0-i386-netinstall.iso</em></p>
<p>Una vez bajada comenzamos la instalación arrancando con la ISO grabada en un CD. Nos encontraremos la pantalla de bienvenida, seleccionamos la primera opción:</p>
<div align="center"><img class="size-full wp-image-2013" title="Como instalar CentOS (1)" src="http://rm-rf.es/wp-content/uploads/2011/07/centos-install-002.jpeg" alt="Como instalar CentOS (1)" width="590" height="429" /></div>
<p>La primera opción que encontraremos será la de realizar un test del CD de instalación, podemos saltarla sin problemas a no ser que encontremos fallos extraños durante la instalación provocados por un CD defectuoso.</p>
<p><span id="more-2012"></span></p>
<p>Comenzamos seleccionando el método de instalación. En este caso al ser netinstall usaremos un repositorio remoto y <strong>seleccionaremos URL</strong>.</p>
<div align="center"><img class="size-full wp-image-2014" title="Como instalar Centos (2)" src="http://rm-rf.es/wp-content/uploads/2011/07/centos-install-004.jpeg" alt="Cómo instalar Centos (2)" width="304" height="284" /></div>
<p>El siguiente paso es la configuración de red, necesaria para poder acceder al mirror remoto. La configuración a escoger depende de el tipo de configuración de red donde se encuentre el equipo. Si es una red con <a href="http://rm-rf.es/como-montar-servidor-dhcp/" title="Cómo montar un servidor DHCP">DHCP</a> tendréis que seleccionarlo, sino toca configurar la IP, máscara, DNS y puerta de enlace, vamos a verlo:</p>
<div align="center"><img class="size-full wp-image-2015" title="Como instalar CentOS (3)" src="http://rm-rf.es/wp-content/uploads/2011/07/centos-install-005.jpeg" alt="Como instalar CentOS (3)" width="450" height="296" /></div>
<div align="center"><img class="size-full wp-image-2016" title="Como instalar CentOS (4)" src="http://rm-rf.es/wp-content/uploads/2011/07/centos-install-006.jpeg" alt="Como instalar CentOS (4)" width="611" height="301" /></div>
<p>Una vez validada la configuración de red llega el momento de indicar la URL del mirror que contiene la imagen de instalación del servidor. La estructura de la URL es igual para todos los mirror a partir de la carpeta &#8220;6.0&#8243;, los ficheros de instalación se encuentran en os/i386 u os/x86_64:</p>
<p><em>ftp://ftp.udl.es/pub/centos/6.0/os/i386</em><br />
<em> ftp://ftp.udl.es/pub/centos/6.0/os/x86_64</em><br />
<em> http://mirror.centos.org/centos/6.0/os/i386/</em><br />
<em> http://mirror.centos.org/centos/6.0/os/x86_64/</em></p>
<div align="center"><img class="size-full wp-image-2017" title="Como instalar CentOS (5)" src="http://rm-rf.es/wp-content/uploads/2011/07/centos-install-007.jpeg" alt="Como instalar CentOS (5)" width="590" height="341" /></div>
<p>Una vez aceptado esperamos a que el instalador descarge la imagen y podamos comenzar la instalación del sistema. Lo primero que debemos hacer es sencillo, elegir el idioma de instalación y el tipo de teclado. Personalmente me gusta siempre instalar los sistemas en inglés porque luego a la hora de buscar información sobre errores y cuestiones técnicas siempre es más fácil. (Omito estas imágenes porque son pasos muy sencillos).</p>
<p>Antes de establecer la configuración de discos y particiones, si son discos nuevos es probable que os solicite la reinicialización de los mismos. Si no hay datos se puede hacer sin riesgo. En este caso era un disco virtual:</p>
<div align="center"><img class=" size-full wp-image-2019" title="Como instalar CentOS (6)" src="http://rm-rf.es/wp-content/uploads/2011/07/centos-install-008.jpeg" alt="Como instalar CentOS (6)" width="667" height="313" /></div>
<p>Ahora debemos seleccionar la zona horaria del servidor, después nos tocará establecer la contraseña para el usuario root:</p>
<div align="center"><img class=" size-full wp-image-2020" title="Como instalar CentOS (7)" src="http://rm-rf.es/wp-content/uploads/2011/07/centos-install-009.jpeg" alt="Como instalar CentOS (7)" width="451" height="266" /></div>
<p>Ahora sí que llega el momento de configurar los discos y particiones. Para usuarios con poca experiencia siempre se recomienda establacer la configuración por defecto. Recibiremos un aviso en caso de que el disco contenga datos u otro sistema operativo, con la opción de convivir ambos o elegir todo el disco para la nueva instalación eliminando lo que haya:</p>
<div align="center"><img class="size-full wp-image-2021" title="Como instalar CentOS (8)" src="http://rm-rf.es/wp-content/uploads/2011/07/centos-install-011.jpeg" alt="Como instalar CentOS (8)" width="606" height="344" /></div>
<p>El particionado por defecto creará un volúmen lógico en el que se incluirán tanto la partición raíz (/) como el area de intercambio (SWAP) y la partición /boot separada fuera del LVM.</p>
<p>Una de las principales novedades de CentOS 6 es la integración del <strong>sistema de ficheros ext4</strong> como sucesor de ext3. Para creación de RAID por software, volumenes o particiones personalizadas <del datetime="2011-07-14T12:35:43+00:00">deberéis elegir la opción de particionar el disco desde 0 (Use entire drive)</del>.</p>
<p>El resto de instalación se realizará de forma automática, tanto el particionado como la instalación general del sistema. Esto es <strong>algo que me ha llamado la atención respecto a la instalación de CentOS 5</strong>, en la que independientemente de la elección podías <strong>elegir los paquetes a instalar</strong>, tanto el sistema base que se suele quitar para una instalación mínima como el resto de paquetes y también personalizar la creación de particiones. En las Release Notes de CentOS 6.0 confirman que efectivamente se ha eliminado la modificación del particionado y la selección de paquetes en en la instalación en modo texto (<a href="http://wiki.centos.org/Manuals/ReleaseNotes/CentOS6.0#head-710e17fe8ed8c98a1fe4faee4e11e2135df09fff" target="_blank">ver aquí las Release Notes</a>).</p>
<div align="center"><img class=" size-full wp-image-2022" title="Como instalar CentOS (9)" src="http://rm-rf.es/wp-content/uploads/2011/07/centos-install-013.jpeg" alt="Como instalar CentOS (9)" width="632" height="219" /></div>
<p>Ahora únicamente queda esperar a que los paquetes se instalen y nos toque reiniciar el sistema para poder comenzar a trabajar con el sistema <strong>GNU/Linux CentOS 6</strong> recién instalado. Como podéis ver es una instalación realmente sencilla. En este caso destinada para un servidor ya que no hemos instalado X, las cuales se pueden seleccionar en el proceso de selección de paquetes que comentaba antes si quisieramos un sistema de escritorio, para lo cual suele ser recomendable la instalación a través del DVD, ya que tiene instalación con entorno gráfico y es una interfaz más amigable.</p>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/bondingteamingtrunking-en-rhel-y-centos/" title="Bonding/Teaming/Trunking en RHEL y CentOS">Bonding/Teaming/Trunking en RHEL y CentOS</a></li><li><a href="http://rm-rf.es/selinux-semanage-command-not-found/" title="SELinux &#8216;semanage: command not found&#8217;">SELinux &#8216;semanage: command not found&#8217;</a></li><li><a href="http://rm-rf.es/rhel-centos-6-adios-system-v-hola-upstart/" title="RHEL/CentOS 6: adios System V, hola Upstart">RHEL/CentOS 6: adios System V, hola Upstart</a></li><li><a href="http://rm-rf.es/%c2%bfcomo-arrancar-en-modo-emergencia-en-rhel-6-centos-6/" title="¿Cómo arrancar en modo emergencia en RHEL 6 / CentOS 6?">¿Cómo arrancar en modo emergencia en RHEL 6 / CentOS 6?</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/como-instalar-centos-6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cómo extraer vídeo, audio y subtitulos de un contenedor MKV</title>
		<link>http://rm-rf.es/como-extraer-video-audio-y-subtitulos-de-un-contenedor-mkv/</link>
		<comments>http://rm-rf.es/como-extraer-video-audio-y-subtitulos-de-un-contenedor-mkv/#comments</comments>
		<pubDate>Sat, 18 Jun 2011 09:00:04 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Manuales]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=1860</guid>
		<description><![CDATA[Existe una herramienta llamada MKVExtractGUI, gratuita y para Windows que permite extraer de forma muy sencilla el contenido de un contenedor MKV. Normalmente este tipo de ficheros cuentan con vídeo, audio, imágenes y subtítulos. &#160; &#160; &#160; Como podéis ver en la imagen, el proceso es tan simple como: Seleccionar el archivo MKV a manipular [...]]]></description>
			<content:encoded><![CDATA[<p>Existe una herramienta llamada <strong>MKVExtractGUI</strong>, gratuita y para Windows que permite <strong>extraer de forma muy sencilla el contenido de un contenedor MKV</strong>. Normalmente este tipo de ficheros cuentan con vídeo, audio, imágenes y subtítulos.<br />
&nbsp;</p>
<div align="center"><img class="aligncenter size-full wp-image-5191" title="mkvextractgui" src="http://rm-rf.es/wp-content/uploads/2011/06/mkvextractgui_2_1304.jpg" alt="mkvextractgui" width="410" height="344" /></div>
<p>&nbsp;<br />
&nbsp;<br />
Como podéis ver en la imagen, el proceso es tan simple como:</p>
<ol>
<li>Seleccionar el archivo MKV a manipular (<em>Input File</em>).</li>
<li>Elegir el directorio de destino para los ficheors extraidos (<em>Output Dir</em>). Podemos elegir el mismo directorio en el que se encuentra el fichero original marcando <em>Source Dir</em>.</li>
<li>Seleccionar las pistas que queramos extraer, ya sea de audio, vídeo o subtitulos.</li>
<li>Pinchar en Extract.</li>
</ol>
<p>Este programa puede ser de utilidad, por ejemplo para aquellos que necesitan modificar los codecs de el audio o el vídeo o extraer los subtítulos para que sean compatibles con el reproductor multimedia.</p>
<p>Para usuarios de GNU/Linux, está disponible mkvextract, aplicación de línea de comandos disponible desde cualquier repositorio, podéis ver el <a target="_blank" href="http://linux.die.net/man/1/mkvextract">funcionamiento en la página man del comando</a> (muy sencillo también).</p>
<p>Podéis <a href="http://www.videohelp.com/tools/MKVExtractGUI-2" target="_blank">descargar MKVExtractGUI desde el sitio web oficial</a>.</p>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/simulador-de-la-cabina-p6000-eva-de-hp/" title="Simulador de la cabina P6000 EVA de HP">Simulador de la cabina P6000 EVA de HP</a></li><li><a href="http://rm-rf.es/mysql-ejecutar-una-consulta-sql-y-redirigir-el-resultado-a-un-fichero/" title="MySQL: ejecutar una consulta SQL y redirigir el resultado a un fichero">MySQL: ejecutar una consulta SQL y redirigir el resultado a un fichero</a></li><li><a href="http://rm-rf.es/el-nuevo-asistente-de-vi/" title="El nuevo asistente de Vi">El nuevo asistente de Vi</a></li><li><a href="http://rm-rf.es/helm-cuserproperty-searchex-error-80040403/" title="HELM:CUserProperty::SearchEx error &#8217;80040403&#8242;">HELM:CUserProperty::SearchEx error &#8217;80040403&#8242;</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/como-extraer-video-audio-y-subtitulos-de-un-contenedor-mkv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto: convertir audio DTS a AC3 en Linux</title>
		<link>http://rm-rf.es/howto-convertir-audio-dts-a-ac3-en-linux/</link>
		<comments>http://rm-rf.es/howto-convertir-audio-dts-a-ac3-en-linux/#comments</comments>
		<pubDate>Sat, 18 Jun 2011 08:00:23 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Manuales]]></category>
		<category><![CDATA[audio]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=1856</guid>
		<description><![CDATA[Hoy vamos a aprender a convertir las pistas de audio de películas MKV que se encuentren en formato DTS (Digital Theater System) a AC3 (Dolby Digital) en sistemas GNU/Linux. El manual es aplicable a cualquier tipo de distribución excepto la parte de los requerimientos, que es únicamente para sistemas basados en Debian (p.ej Ubuntu) ya [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-4619" style="margin: 9px;" title="Audio DTS" src="http://rm-rf.es/wp-content/uploads/2011/06/dts.jpg" alt="Audio DTS" width="213" height="152" />Hoy vamos a aprender a<strong> convertir las pistas de audio de películas MKV que se encuentren en formato DTS</strong> (Digital Theater System) a <strong>AC3</strong> (Dolby Digital) en sistemas <strong>GNU/Linux</strong>. El manual es aplicable a cualquier tipo de distribución excepto la parte de los requerimientos, que es únicamente para sistemas basados en Debian (p.ej Ubuntu) ya que hacemos uso del gestor de paquetes apt. Para otras distribuciones simplemente instalar las dependencias que se muestran a continuación con el gestor de paquetes que tengáis instalado (yum, apt, etc).</p>
<p>El proceso de conversión es realmente sencillo, únicamente necesitamos <a href="http://github.com/JakeWharton/mkvdts2ac3/blob/master/mkvdts2ac3.sh" target="_blank">bajar este script programado en bash</a> y ejecutarlo del siguiente modo dentro de la línea de comandos (terminal):</p>
<pre>mkvdts2ac3.sh pelicula.mkv</pre>
<p>El script utiliza ciertas librerías por lo que para evitar cualquier error de dependencias, las instalamos, ejecutamos el siguiente comando desde la terminal (si os resulta más sencillo, también lo podéis hacer desde Añadir o quitar aplicaciones, aunque no lo es), de todas formas si faltara cualquier requerimiento el propio script os avisaría (usamos apt en sistemas debian/ubuntu):</p>
<pre>sudo apt-get install mkvtoolnix libdca0 libdca-dev aften</pre>
<p>Y esto es todo, para el que le guste trastear, el script permite personalizar estas modificaciones. Por ejemplo podemos añadir una nueva pista AC3 en lugar de sustituir la DTS (de este modo mantenemos las dos), dejar la nueva pista AC3 como pista por defecto, borrar la pista DTS tras la modificación, etc.</p>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/ubuntu-convertir-ficheros-de-audio-wav-a-mp3/" title="Ubuntu: Convertir ficheros de audio WAV a MP3">Ubuntu: Convertir ficheros de audio WAV a MP3</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/howto-convertir-audio-dts-a-ac3-en-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Optimización de WordPress (III): los Plugins</title>
		<link>http://rm-rf.es/optimizacion-de-wordpress-iii-los-plugins/</link>
		<comments>http://rm-rf.es/optimizacion-de-wordpress-iii-los-plugins/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 12:34:11 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Manuales]]></category>
		<category><![CDATA[optimizacion]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=1852</guid>
		<description><![CDATA[Siguiendo con los artículos de optimización de WordPress voy a indicar los que a mi parecer son los plugins más importantes en WordPress. Hay que tener en cuenta que los plugins suelen ser el principal problema de utilización de recursos en WP, así que cuantos menos tengamos, mejor. Por eso conviene escoger con mucho cuidado [...]]]></description>
			<content:encoded><![CDATA[<p>Siguiendo con los artículos de optimización de <a title="Wordpress" href="http://rm-rf.es/tag/wordpress/"><strong>WordPress</strong></a> voy a indicar los que a mi parecer son los plugins más importantes en WordPress.</p>
<p>Hay que tener en cuenta que los plugins suelen ser el principal problema de utilización de recursos en WP, así que cuantos menos tengamos, mejor. Por eso conviene escoger con mucho cuidado los plugins a utilizar. Estos son los que personalmente recomiendo:</p>
<ul>
<li><strong><a href="http://wordpress.org/extend/plugins/clean-options/" target="_blank">Clean Options</a></strong> Limpia de la base de datos restos de plugins antiguos y registros innecesarios en la tabla options, una de las más importantes de WP y que afectan directamente al rendimiento del sitio.</li>
<li>﻿<strong><a href="http://wordpress.org/extend/plugins/wp-optimize/installation/" target="_blank">WP-Optimize</a></strong>: Permite optimizar la base de datos con un solo click así como eliminar revisiones de entradas y cambiar el nombre de usuario admin por uno personalizado.﻿</li>
<li><strong><strong><a href="http://wordpress.org/extend/plugins/wp-super-cache/" target="_blank">WP Super Cache</a></strong></strong>: Sin duda alguna el plugin más importante que existe en WordPress para sitios con una cantidad importante de visitas.</li>
<li><strong>Akismet</strong>: Este plugin ya viene por defecto en WP y permite que tu blog no se llene de comentarios <a href="http://rm-rf.es/consejos-para-reducir-el-spam-en-tu-correo/" target="_blank">SPAM</a>.</li>
</ul>
<p>En relación con optimización estos son los cuatro plugins esenciales (a mi parecer). Por supuesto para otros objetivos como el SEO habría que seleccionar algún plugin más (WordPress Related Posts, All in One SEO Pack&#8230;).</p>
<p>Artículos anteriores sobre optimización de WordPress:</p>
<h3><a title="Optimización de WordPress: las cabeceras, fichero header.php" href="http://rm-rf.es/optimizacion-de-wordpress-i-el-fichero-header-php/" target="_blank">Optimización de WordPress: las cabeceras, fichero header.php</a></h3>
<h3><a title="Optimización de WordPress (II): el fichero .htaccess" href="http://rm-rf.es/optimizacion-de-wordpress-ii-el-fichero-htaccess/" target="_blank">Optimización de WordPress: el fichero .htaccess</a></h3>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/optimizacion-de-wordpress-ii-el-fichero-htaccess/" title="Optimización de Wordpress (II): el fichero .htaccess">Optimización de Wordpress (II): el fichero .htaccess</a></li><li><a href="http://rm-rf.es/optimizacion-de-wordpress-i-el-fichero-header-php/" title="Optimización de Wordpress (I): el fichero header.php">Optimización de Wordpress (I): el fichero header.php</a></li><li><a href="http://rm-rf.es/plugin-optimizado-para-articulos-relacionados-en-wordpress/" title="Plugin optimizado para artículos relacionados en Wordpress">Plugin optimizado para artículos relacionados en Wordpress</a></li><li><a href="http://rm-rf.es/5-formas-de-encontrar-y-optimizar-consultas-mysql-problematicas/" title="5 formas de encontrar y optimizar consultas MySQL problemáticas">5 formas de encontrar y optimizar consultas MySQL problemáticas</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/optimizacion-de-wordpress-iii-los-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimización de WordPress (II): el fichero .htaccess</title>
		<link>http://rm-rf.es/optimizacion-de-wordpress-ii-el-fichero-htaccess/</link>
		<comments>http://rm-rf.es/optimizacion-de-wordpress-ii-el-fichero-htaccess/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 12:27:20 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Manuales]]></category>
		<category><![CDATA[optimizacion]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=1849</guid>
		<description><![CDATA[El fichero oculto .htaccess se utiliza en servidores web Apache, se encuentra en la raíz de nuestro sitio web y en él podemos configurar una serie de directivas de Apache sin necesidad de ser configuradas a nivel global en el servidor. Entre otras cosas, podemos configurar sistemas de autenticación, url&#8217;s amigables, compresión del sitio web, [...]]]></description>
			<content:encoded><![CDATA[<p>El fichero oculto <strong>.htaccess</strong> se utiliza en servidores web Apache, se encuentra en la raíz de nuestro sitio web y en él podemos configurar una serie de directivas de Apache sin necesidad de ser configuradas a nivel global en el servidor.</p>
<p>Entre otras cosas, podemos configurar sistemas de autenticación, url&#8217;s amigables, compresión del sitio web, etc. Para optimizar nuestro WordPress hoy añadiremos lo siguiente en dicho fichero:</p>
<h3>Activación de caché por Apache con los módulos mod_expires y mod_headers</h3>
<p>Antes de nada tenéis que aseguraros que el servidor web apache bajo el que está vuestro sitio web tiene compilados los módulos <strong>mod_expires y mod_headers</strong>.</p>
<p>El funcionamiento de este sistema es que podemos decir al navegador de la gente que visita nuestra web que ciertos ficheros (<em>normalmente imagenes, css, javascript, etc</em>) pueden ser cacheados durante un tiempo determinado. Si añadís el siguiente código al fichero .htaccess le diréis a los navegadores que cacheen durante un mes esos ficheros. Esto supone que la segunda vez que esta persona acceda a vuestra página no tendrá que volver a descargar las imágenes, css, javascript, etc lo que implica menor uso de transferencia de datos y mayor velocidad en el acceso web:</p>
<pre>ExpiresActive On
ExpiresDefault A0
# expiracion de 1 mes para archivos estaticos
&lt;FilesMatch "\.(gif|jpg|jpeg|png|swf|js|css|ico)$"&gt;
ExpiresDefault "access plus 1 months"
&lt;/FilesMatch&gt;</pre>
<h3>Activación de compresión por Apache con el módulo mod_deflate</h3>
<p>El módulo de Apache (apache 2) mod_deflate  permite que el contenido que el servidor proporciona al cliente final (usuario) sea comprimido antes de ser enviado a través de la red. Esto supone que el tamaño de los datos enviados será mucho menor y por consiguiente la carga será más rápida. Hay que tener en cuenta que en ciertos servidores y ciertos tipos de web la activación de este sistema puede hacer que el uso de recursos en el servidor aumente así que conviene probarlo con cautela.</p>
<p>Para activarlo tendríais que añadir lo siguiente a vuestro fichero .htaccess, veréis que le decimos que sirva comprimidos los ficheros html, css y javascript:</p>
<pre># BEGIN GZIP
&lt;ifmodule mod_deflate.c&gt;
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
&lt;/ifmodule&gt;
# END GZIP</pre>
<p>Enlace al artículo anterior:</p>
<h3><a title="Optimización de WordPress: las cabeceras, fichero header.php" href="http://rm-rf.es/optimizacion-de-wordpress-i-el-fichero-header-php/" target="_blank">Optimización de WordPress: las cabeceras, fichero header.php</a></h3>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/optimizacion-de-wordpress-iii-los-plugins/" title="Optimización de Wordpress (III): los Plugins">Optimización de Wordpress (III): los Plugins</a></li><li><a href="http://rm-rf.es/optimizacion-de-wordpress-i-el-fichero-header-php/" title="Optimización de Wordpress (I): el fichero header.php">Optimización de Wordpress (I): el fichero header.php</a></li><li><a href="http://rm-rf.es/plugin-optimizado-para-articulos-relacionados-en-wordpress/" title="Plugin optimizado para artículos relacionados en Wordpress">Plugin optimizado para artículos relacionados en Wordpress</a></li><li><a href="http://rm-rf.es/5-formas-de-encontrar-y-optimizar-consultas-mysql-problematicas/" title="5 formas de encontrar y optimizar consultas MySQL problemáticas">5 formas de encontrar y optimizar consultas MySQL problemáticas</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/optimizacion-de-wordpress-ii-el-fichero-htaccess/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Optimización de WordPress (I): el fichero header.php</title>
		<link>http://rm-rf.es/optimizacion-de-wordpress-i-el-fichero-header-php/</link>
		<comments>http://rm-rf.es/optimizacion-de-wordpress-i-el-fichero-header-php/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 12:24:34 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Manuales]]></category>
		<category><![CDATA[optimizacion]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=1846</guid>
		<description><![CDATA[En esta serie de artículos intentaré ofrecer unos cuantos consejos para optimizar en la medida de lo posible aquellos blogs que utilizan WordPress. Uno de los puntos flojos de WordPress es su excesivo uso de cpu, memoria y recursos de servidor en general, sobre todo con la inclusión de plugins, temas, etc. En este artículo [...]]]></description>
			<content:encoded><![CDATA[<p>En esta serie de artículos intentaré ofrecer unos cuantos consejos para optimizar en la medida de lo posible aquellos blogs que utilizan <strong>WordPress</strong>.</p>
<p>Uno de los puntos flojos de WordPress es su excesivo uso de cpu, memoria y recursos de servidor en general, sobre todo con la inclusión de plugins, temas, etc. En este artículo vamos a empezar<strong> optimizando el fichero que genera la cabecera HTML del blog, header.php</strong>.</p>
<p>El objetivo de estos cambios es <strong>reducir el número de consultas MySQL y ejecución de llamadas PHP al servidor</strong>, haciendo lo más estática posible la cabecera de nuestro blog. Para ello, evitaremos que se llame a la base de datos para buscar el nombre del blog, la ubicación de los css, javascript o feed.</p>
<p>Lo primero que debemos hacer es encontrar el fichero header.php, que se encontrará en la carpeta del tema que usemos. Los temas están en la ruta &#8220;/wp-content/themes/&#8221;, en nuestro caso vamos a trabajar con un tema que se llama stardust, así que la ruta del fichero header.php es:</p>
<pre>/wp-content/themes/stardust/header.php</pre>
<p>Comenzamos con las modificaciones, empezamos configurando el <strong>título del blog</strong> de forma estática, eliminando la llamada php, que lo busca en la base de datos MySQL:</p>
<p><span style="color: red;">Antes:</span></p>
<pre>&lt;title&gt;&lt;?php bloginfo('name'); ?&gt;&lt;?php wp_title(); ?&gt;&lt;/title&gt;</pre>
<p><span style="color: green;">Después:</span></p>
<pre>&lt;title&gt;Este es el título de mi blog&lt;/title&gt;</pre>
<p>Cambiamos también las <strong>declaraciones meta y el charset de la página</strong>, que siempre será igual (aunque no sepáis para que sirve, es seguro hacer este cambio):</p>
<p><span style="color: red;">Antes:</span></p>
<pre>&lt;meta http-equiv="Content-Type" content="&lt;?php bloginfo('html_type'); ?&gt;; charset=&lt;?php bloginfo('charset'); ?&gt;" /&gt;</pre>
<p><span style="color: green;">Después:</span></p>
<pre>&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;</pre>
<p>La siguiente línea la podemos eliminar directamente:</p>
<pre>&lt;meta name="generator" content="WordPress &lt;?php bloginfo('version'); ?&gt;" /&gt; &lt;!-- leave this for stats please --&gt;</pre>
<p>Las llamadas a las rutas de los <strong>ficheros de estilos css</strong> también podemos configurarlas directamente:</p>
<p><span style="color: red;">Antes:</span></p>
<pre>&lt;link rel="stylesheet" type="text/css" href="&lt;?php bloginfo('stylesheet_url'); ?&gt;" media="screen" /&gt;</pre>
<p><span style="color: green;">Después:</span></p>
<pre>&lt;link rel="stylesheet" type="text/css" href="<a href="/wp-content/themes/stardust_2.7s/style.css" target="_blank">/wp-content/themes/stardust/style.css</a>" media="screen" /&gt;</pre>
<p><em>Nota: Si no sabéis la ruta exacta al fichero css, podéis buscarlo por FTP (se llama style.css) dentro de la carpeta de vuestro tema o en el navegador pulsar Ctrl+U para ver el código fuente y buscar la línea anterior.</em></p>
<p>También podemos llamar de forma estática al fichero <strong>favicon.ico</strong>, que es el icono de favoritos y la página:</p>
<p><span style="color: red;">Antes:</span></p>
<pre>&lt;link rel="shortcut icon" href="&lt;?php bloginfo('template_url'); ?&gt;/favicon.ico" /&gt;</pre>
<p><span style="color: green;">Después:</span></p>
<pre>&lt;link rel="shortcut icon" href="<a href="/wp-content/themes/stardust/favicon.ico" target="_blank">/wp-content/themes/stardust/favicon.ico</a>" /&gt;</pre>
<p>La <strong>URL para los pingback</strong> va a ser siempre la misma, con lo que también podemos modificara:</p>
<p><span style="color: red;">Antes:</span></p>
<pre>&lt;link rel="pingback" href="&lt;?php bloginfo('pingback_url'); ?&gt;" /&gt;</pre>
<p><span style="color: green;">Después (<em>cambiad miblog.es por vuestro blog</em>):</span></p>
<pre>&lt;link rel="pingback" href="<a href="/xmlrpc.php" target="_blank">http://miblog.es/xmlrpc.php</a>" /&gt;</pre>
<p>También podemos configurar como estáticas las <strong>rutas a los ficheros javascript</strong> que utilicemos en el  blog. Esto depende de cada blog y la ruta en la que estén, para orientaros, será algo así:</p>
<p><span style="color: red;">Antes:</span></p>
<pre>&lt;script type="text/javascript" src="&lt;?php bloginfo('template_url'); ?&gt;/js/miscript.js"&gt;&lt;/script&gt;</pre>
<p><span style="color: green;">Después:</span></p>
<pre>&lt;script type="text/javascript" src="<a href="/wp-content/themes/stardust_2.7s/js/smoothscroll.js" target="_blank">/wp-content/themes/stardust/js/miscript.js</a>"&gt;&lt;/script&gt;</pre>
<p>Con estos cambios hemos reducido drásticamente las llamadas php/mysql al servidor y por consiguiente aligerado en gran medida la rapidez de carga de nuestra web y su uso de recursos. Hay que tener en cuenta que cada tema puede variar y tener diferentes llamadas php, es cuestión de retocar la cabecera investigando el fichero según sus necesidades.</p>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/optimizacion-de-wordpress-iii-los-plugins/" title="Optimización de Wordpress (III): los Plugins">Optimización de Wordpress (III): los Plugins</a></li><li><a href="http://rm-rf.es/optimizacion-de-wordpress-ii-el-fichero-htaccess/" title="Optimización de Wordpress (II): el fichero .htaccess">Optimización de Wordpress (II): el fichero .htaccess</a></li><li><a href="http://rm-rf.es/plugin-optimizado-para-articulos-relacionados-en-wordpress/" title="Plugin optimizado para artículos relacionados en Wordpress">Plugin optimizado para artículos relacionados en Wordpress</a></li><li><a href="http://rm-rf.es/5-formas-de-encontrar-y-optimizar-consultas-mysql-problematicas/" title="5 formas de encontrar y optimizar consultas MySQL problemáticas">5 formas de encontrar y optimizar consultas MySQL problemáticas</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/optimizacion-de-wordpress-i-el-fichero-header-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalación y configuración de Lighttpd con PHP + FastCGI</title>
		<link>http://rm-rf.es/instalacion-y-configuracion-de-lighttpd-con-php-fastcgi/</link>
		<comments>http://rm-rf.es/instalacion-y-configuracion-de-lighttpd-con-php-fastcgi/#comments</comments>
		<pubDate>Mon, 30 May 2011 16:25:46 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Manuales]]></category>
		<category><![CDATA[compilador]]></category>
		<category><![CDATA[FastCGI]]></category>
		<category><![CDATA[lighttpd]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=1821</guid>
		<description><![CDATA[En esta entrada vamos a instalar el servidor web Lighttpd con soporte para PHP a través de FastCGI. Lighttpd se caracteriza por ser un servidor web ligero y rápido a la vez que seguro y flexible. Lo primer que hacemos es descargar la última versión estable de Lighttpd y descomprimirla: # wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.28.tar.gz # tar [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-1822" title="Lighttpd" src="http://rm-rf.es/wp-content/uploads/2011/05/lighttpd.png" alt="Lighttpd" width="215" height="207" align="right" />En esta entrada vamos a <strong>instalar el servidor web <a href="http://www.lighttpd.net/" target="_blank">Lighttpd</a> con soporte para PHP a través de FastCGI</strong>. Lighttpd se caracteriza por ser un servidor web ligero y rápido a la vez que seguro y flexible.</p>
<p>Lo primer que hacemos es descargar la última versión estable de Lighttpd y descomprimirla:</p>
<pre># wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.28.tar.gz
# tar -xzvf lighttpd-1.4.28.tar.gz</pre>
<p>Vamos a compilar Lighttpd, en este caso vamos a dejar las opciones por defecto y deshabilitar ipv6, zlib y bzip2, básicamente es para que veáis como siempre algun parámetro de la línea de compilación, podríais compilarlo como está por defecto sin problemas. Lo instalamos en la ruta /usr/local/lighttpd.</p>
<pre># mkdir /usr/local/lighttpd
# cd lighttpd-1.4.28
# ./configure --prefix=/usr/local/lighttpd --without-zlib --without-bzip2 --disable-ipv6</pre>
<p>Al finalizar aparecerá un resumen de lo que vamos a instalar con las características y plugins activos/deshabilitados, ejemplo:</p>
<pre>Plugins:

enabled:
  mod_access
  mod_accesslog
  mod_alias
  mod_auth
  mod_cgi
  mod_compress
  mod_dirlisting
  mod_evhost
  mod_expire
  mod_extforward
  mod_fastcgi
  mod_flv_streaming
  mod_indexfile
  mod_proxy
  mod_redirect
  mod_rewrite
  mod_rrdtool
  mod_scgi
  mod_secdownload
  mod_setenv
  mod_simple_vhost
  mod_ssi
  mod_staticfile
  mod_status
  mod_trigger_b4_dl
  mod_userdir
  mod_usertrack
  mod_webdav
disabled:
  mod_cml
  mod_magnet
  mod_mysql_vhost

Features:

enabled:
  auth-crypt
  large-files
  regex-conditionals
disabled:
  auth-ldap
  compress-bzip2
  compress-deflate
  compress-gzip
  network-ipv6
  network-openssl
  stat-cache-fam
  storage-gdbm
  storage-memcache
  webdav-locks
  webdav-properties</pre>
<p>Si todo es correcto, compilamos e instalamos:</p>
<pre># make &amp;&amp; make install</pre>
<p>Vamos a crear un usuario/grupo dedicado para la ejecución del servicio, sin acceso shell:</p>
<pre># groupadd lighttpd
# useradd -g lighttpd -s /sbin/nologin -d /var/www/html lighttpd</pre>
<p>Creamos la estructura de logs:</p>
<pre># mkdir /var/log/lighttpd &amp;&amp; chown lighttpd:lighttpd /var/log/lighttpd</pre>
<p>Para finalizar de momento con Lighttpd, creamos el fichero de configuración básico, lo podemos ubicar en /etc/lighttpd:</p>
<pre># mkdir /etc/lighttpd &amp;&amp; cd /etc/lighttpd</pre>
<p>Ahora podemos copiar el fichero de configuración básico que tenemos en las sources:</p>
<pre># cp ./doc/config/lighttpd.conf /etc/lighttpd/ &amp;&amp; chown lighttpd:root /etc/lighttpd/lighttpd.conf</pre>
<p>Está perfectamente documentado así que una vez personalizado con vuestros requerimientos (probablemente incluso dejandolo tal cual sea suficiente de momento) creamos el script para arrancar/parar el servicio en init.d:</p>
<pre>cp ./doc/initscripts/rc.lighttpd.redhat /etc/init.d/lighttpd &amp;&amp; chmod +x /etc/init.d/lighttpd</pre>
<p>Si queréis, antes de seguir con PHP podéis arrancar el servicio y crear una página de test para verificar que funciona correctamente:</p>
<pre># /etc/init.d/lighttpd start</pre>
<p>Ahora vamos a instalar PHP, si queréis información detallada sobre la compilación de PHP podéis ver este otro artículo en el que <a title="Cómo compilar Apache y PHP en Linux" href="http://rm-rf.es/como-compilar-apache-php-linux/">instalamos Apache y PHP</a>, en este caso hacemos una compilación básica con todo por defecto de la versión 5.3.6:</p>
<pre># wget http://es2.php.net/get/php-5.3.6.tar.gz/from/ar2.php.net/mirror
# tar -xzvf php-5.3.6.tar.gz
# cd php-5.3.6
# ./configure
# make
# make install</pre>
<p>Finalmente <strong>configuramos Lighttpd para usar PHP a través de FastCGI</strong>, añadimos lo siguiente al fichero de configuración lighttpd.conf para activar soporte FastCGI:</p>
<pre>fastcgi.server = ( ".php" =&gt;
                   ( "localhost" =&gt;
                     ( "socket" =&gt; "/tmp/fcgi.socket",
                       "bin-path" =&gt; "/usr/local/bin/php-cgi"
                     )
                   )
                 )</pre>
<p>Reiniciamos Lighttpd y ya deberíamos poder visualizar páginas php desde el servidor web:</p>
<pre># /etc/init.d/lighttpd restart</pre>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/db_file-xs101-db-h-no-such-file-or-directory/" title="DB_File.xs:101: db.h: No such file or directory">DB_File.xs:101: db.h: No such file or directory</a></li><li><a href="http://rm-rf.es/elegir-el-compilador-correcto-para-perl-en-solaris/" title="Elegir el compilador correcto para Perl en Solaris">Elegir el compilador correcto para Perl en Solaris</a></li><li><a href="http://rm-rf.es/stub-start-error-en-oracle-iplanet-web-server-php-fastcgi/" title="Stub Start Error en Oracle iPlanet Web Server: PHP + FastCGI">Stub Start Error en Oracle iPlanet Web Server: PHP + FastCGI</a></li><li><a href="http://rm-rf.es/configurar-php-fastcgi-en-oracle-iplanet-web-server/" title="Configurar PHP + FastCGI en Oracle iPlanet Web Server">Configurar PHP + FastCGI en Oracle iPlanet Web Server</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/instalacion-y-configuracion-de-lighttpd-con-php-fastcgi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

