<?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>Hello, IT.</title>
	<atom:link href="http://helloit.es/feed/" rel="self" type="application/rss+xml" />
	<link>http://helloit.es</link>
	<description>Have you tried turning it off and on again?</description>
	<lastBuildDate>Fri, 18 May 2012 09:28:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Configuración básica de Apache</title>
		<link>http://helloit.es/2012/04/configuracion-basica-de-apache/</link>
		<comments>http://helloit.es/2012/04/configuracion-basica-de-apache/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 18:13:59 +0000</pubDate>
		<dc:creator>Adri</dc:creator>
				<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[httpd.conf]]></category>
		<category><![CDATA[php.ini]]></category>
		<category><![CDATA[vhosts]]></category>

		<guid isPermaLink="false">http://helloit.es/?p=921</guid>
		<description><![CDATA[En este post se trata de dar una idea de los que pueden ser los primeros pasos a dar tras la instalación de un servidor Apache con PHP. /etc/php.ini En primer lugar, podríamos mirar el archivo de configuración del php en busca de las líneas correspondientes a la gestión de la visualización de los mensajes [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://helloit.es/img/apache.jpg" alt="httpd Apache" />En este post se trata de dar una idea de los que pueden ser los primeros pasos a dar tras la instalación de un servidor Apache con PHP.</p>
<h2>/etc/php.ini</h2>
<p>En primer lugar, podríamos mirar el archivo de configuración del php en busca de las líneas correspondientes a la gestión de la visualización de los mensajes de error. Se recomienda que ambos parámetros estén a Off si se quiere evitar que tras un error en el servidor, se le muestre al usuario el código relativo al error, o incluso el fragmento de código php que lo ha provocado:</p>
<blockquote><p>display_errors = Off<br />
display_startup_errors = Off</p></blockquote>
<h2><span id="more-921"></span></h2>
<h2>/etc/httpd/conf/httpd.conf &#8211; Configuración básica</h2>
<p>En cuanto al fichero de configuración de Apache, se podrían comprobar las siguientes directivas:</p>
<blockquote><p>KeepAlive Off</p></blockquote>
<p>No permite sesiones de larga duración. En según qué entornos interesará permitirlas, pero en otros entornos con muchas peticiones, ésto incrementará el número de conexiones simultáneas impactándo en el rendimiento, ya que las conexiones permanecerán abiertas más tiempo.</p>
<blockquote><p>Timeout 60</p></blockquote>
<p>Esta directiva se encarga de definir el tiempo máximo que el servidor esperará, para que ocurran determinados eventos. Tras una instalación por defecto, esta directiva se habrá configurado para esperar 60 segundos, pero según el caso, podría interesar aumentar o reducir este valor.</p>
<blockquote><p>Include conf.d/*.conf</p></blockquote>
<p>Con esta línea, se está indicando que el fichero de configuración de Apache buscará cualquier otro archivo con extensión .conf dentro del directorio conf.d, ubicado en lo definido en la directiva ServerRoot.</p>
<blockquote><p>ServerName 80.90.100.101:80</p></blockquote>
<p>La directiva ServerName especifica el nombre del servidor y el puerto a usar. Si se están usando virtual hosts, cada virtual host especifica su propio nombre para el servidor, con lo que se puede dejar esta directiva con la ip pública de la máquina.</p>
<blockquote><p>NameVirtualHost *:80</p></blockquote>
<p>Si se quiere usar virtual hosts (lo habitual), se deberá habilitar esta directiva para permitir hosting virtual basado en nombres.</p>
<blockquote><p>DirectoryIndex index.php index.html index.html.var</p></blockquote>
<p>También suele ser habitual, querer servir páginas php con Apache. Con la directiva &#8220;<a title="DirectoryIndex" href="http://httpd.apache.org/docs/2.0/mod/mod_dir.html#directoryindex" target="_blank">DirectoryIndex</a>&#8221; se pueden definir el nombre de los archivos que el servidor buscará para servir como índice cuando se le realice una petición (tipo index.html).</p>
<h2>/etc/httpd/conf/httpd.conf &#8211; Consejos de seguridad</h2>
<blockquote><p>ServerRoot</p></blockquote>
<p>La directiva ServerRoot define el directorio de instalación de Apache. Este directorio, al igual que sus ficheros y subdirectorios, deben pertenecer tanto como usuario como grupo a root. Además, el único usuario que debería tener permisos de escritura sobre cualquier fichero o directorio dentro de ServerRoot, debería ser el propio &#8220;root&#8221;.</p>
<blockquote><p>&lt;Directory /&gt;<br />
AllowOverride None<br />
&lt;/Directory&gt;</p></blockquote>
<p>Con la directiva AllowOverride None, dentro del Directory raíz, se previene que un usuario pueda usar el fichero .htaccess (a parte de los casos explícitamente definidos), el cual podría configurar directivas de seguridad diferentes a las especificadas en el fichero de configuración de Apache.</p>
<blockquote><p>&lt;Directory /&gt;<br />
Order Deny,Allow<br />
Deny from all<br />
&lt;/Directory&gt;</p></blockquote>
<p>Las anteriores instrucciones, denegarán el acceso a cualquier parte del sistema de ficheros. Al definir el comportamiento para el Directory raíz, se podría incluir dentro de este Directory, la anterior directiva AllowOverride None explicada anteriormente. Una vez definido, se podrán añadir Directorys para permitir el acceso a determinadas áreas:</p>
<blockquote><p>&lt;Directory /usr/local/httpd&gt;<br />
Order Deny,Allow<br />
Allow from all<br />
&lt;/Directory&gt;</p></blockquote>
<p>Otra acción recomendable podría ser revisar el DocumentRoot que viene por defecto en Apache, normalmente en forma de &lt;Directory &#8220;/var/www/html&#8221;&gt;, que por defecto, puede venir definida tal y como sigue:</p>
<blockquote><p>&lt;Directory &#8220;/var/www/html&#8221;&gt;<br />
Options Indexes FollowSymLinks<br />
AllowOverride None<br />
Order allow,deny<br />
Allow from all<br />
&lt;/Directory&gt;</p></blockquote>
<p>En este caso podríamos querer desactivar el listado de archivos (lo cual muestra los archivos y subdirectorios en caso de no encontrar ningún archivo del tipo DirectoryIndex como index.html):</p>
<blockquote><p>Options -Indexes</p></blockquote>
<p>Otra opción interesante, es asegurarse de desactivar la ejecución de CGIs, en caso de no querer utilizarlos con la opción:</p>
<blockquote><p>Options -ExecCGI</p></blockquote>
<p>&nbsp;</p>
<p>Fuentes: <a title="Configuración de Apache" href="http://httpd.apache.org/docs/2.0/mod/core.html" target="_blank">http://httpd.apache.org/docs/2.0/mod/core.html</a><br />
<a href="http://httpd.apache.org/docs/current/misc/security_tips.html" target="_blank">http://httpd.apache.org/docs/current/misc/security_tips.html</a><br />
<a href="http://www.desarrolloweb.com/articulos/20-trucos-de-seguridad-para-apache.html" target="_blank">http://www.desarrolloweb.com/articulos/20-trucos-de-seguridad-para-apache.html</a><br />
<a href="http://httpd.apache.org/docs/2.0/mod/core.html#options" target="_blank">http://httpd.apache.org/docs/2.0/mod/core.html#options</a></p>
<p>&nbsp;</p>
<p><img class="izquierda" style="border: 0px none;" src="http://helloit.es/wp-content/themes/bluebusiness/images/flickr.gif" alt="Flickr!" /> Foto por <a href="http://www.flickr.com/photos/us-mission/5926190323//" target="_blank">US Mission Geneva</a></p>
]]></content:encoded>
			<wfw:commentRss>http://helloit.es/2012/04/configuracion-basica-de-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gestion de virtualización qemu-kvm</title>
		<link>http://helloit.es/2012/04/gestion-de-virtualizacion-qemu-kvm/</link>
		<comments>http://helloit.es/2012/04/gestion-de-virtualizacion-qemu-kvm/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 18:03:16 +0000</pubDate>
		<dc:creator>Adri</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[qemu]]></category>
		<category><![CDATA[qemu-kvm]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[virsh]]></category>
		<category><![CDATA[Virtualización]]></category>

		<guid isPermaLink="false">http://helloit.es/?p=1209</guid>
		<description><![CDATA[Con el comando &#8220;virsh&#8221; se pueden gestionar las máquinas virtuales en un entorno qemu-kvm. Para ello, únicamente tendremos que conectar, ya sea de forma remota o como en el ejemplo, de forma local, mediante virsh: [root@server ]# virsh -c qemu:///system Bienvenido a virsh, la terminal de virtualización interactiva. Ingrese: &#8216;help&#8217; para obtener ayuda con los [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://helloit.es/img/virtual.jpg" alt="virtualizacion" />Con el comando &#8220;virsh&#8221; se pueden gestionar las máquinas virtuales en un entorno qemu-kvm. Para ello, únicamente tendremos que conectar, ya sea de forma remota o como en el ejemplo, de forma local, mediante virsh:</p>
<blockquote><p>[root@server ]# <strong>virsh -c qemu:///system</strong><br />
Bienvenido a virsh, la terminal de virtualización interactiva.<br />
Ingrese: &#8216;help&#8217; para obtener ayuda con los comandos<br />
&#8216;quit&#8217; para salir<br />
virsh #</p></blockquote>
<p><span id="more-1209"></span></p>
<p>Hay que tener en cuenta, que el comando anterior debe ejecutarse estándo logueado con un usuario con permisos suficientes (&#8220;root&#8221; en el ejemplo). Una vez dentro, podremos teclear &#8220;help&#8221; para obtener el listado de comandos, donde veremos que con &#8220;list&#8221; se nos listarán las máquinas virtuales alojadas en la máquina, y su estado:</p>
<blockquote><p>virsh # <strong>list</strong><br />
Id Nombre               Estado<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
1 vm_srvQA            ejecutando<br />
2 vm_server23             ejecutando</p></blockquote>
<p>Podremos obtener más información de cada máquina, con &#8220;dominfo&#8221;.</p>
<blockquote><p>virsh # <strong>dominfo vm_srvQA</strong><br />
Id:             1<br />
Nombre:         vm_srvQA<br />
UUID:           b5a3712d-116a-433c-a204-80cdee30e2da<br />
Tipo de sistema operatuvo: hvm<br />
Estado:         ejecutando<br />
CPU(s):         1<br />
hora del CPU:   1218452,2s<br />
Memoria máxima: 1048576 kB<br />
Memoria utilizada: 1048576 kB<br />
Persistent:     yes<br />
Autoinicio:     activar</p></blockquote>
<p>Entre los múltiples comandos de gestión, podremos hacer uso de &#8220;shutdown&#8221;, &#8220;reboot&#8221; o &#8220;start&#8221; seguido del nombre de la máquina obtenido mediante el comando &#8220;list&#8221;, según lo necesitemos.</p>
<p>&nbsp;</p>
<p>Fuentes:</p>
<ul>
<li><a title="Virsh management" href="http://doc.opensuse.org/documentation/html/openSUSE/opensuse-kvm/cha.libvirt.managing.html" target="_blank">http://doc.opensuse.org/documentation/html/openSUSE/opensuse-kvm/cha.libvirt.managing.html</a></li>
<li><a title="Virsh virtualización" href="http://www.centos.org/docs/5/html/5.2/Virtualization/chap-Virtualization-Managing_guests_with_virsh.html" target="_blank">http://www.centos.org/docs/5/html/5.2/Virtualization/chap-Virtualization-Managing_guests_with_virsh.html</a></li>
</ul>
<p><img class="izquierda" style="border: 0px none;" src="http://helloit.es/wp-content/themes/bluebusiness/images/flickr.gif" alt="Flickr!" /> Foto por <a href="http://www.flickr.com/photos/ivanwalsh/4135698502/" target="_blank">ivanwalsh</a></p>
]]></content:encoded>
			<wfw:commentRss>http://helloit.es/2012/04/gestion-de-virtualizacion-qemu-kvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Para qué sirve la tecla &#8220;Pet Sis&#8221;?</title>
		<link>http://helloit.es/2012/04/%c2%bfpara-que-sirve-la-tecla-pet-sis/</link>
		<comments>http://helloit.es/2012/04/%c2%bfpara-que-sirve-la-tecla-pet-sis/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 17:59:17 +0000</pubDate>
		<dc:creator>Adri</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[kernel panic]]></category>
		<category><![CDATA[magic keys]]></category>
		<category><![CDATA[pet sis]]></category>
		<category><![CDATA[red hat]]></category>

		<guid isPermaLink="false">http://helloit.es/?p=1181</guid>
		<description><![CDATA[Hoy tengo el placer de publicar un post escrito por Gabriel Becerra Gottlieb especialmente para este blog. A disfrutarlo. ¿A cuántos de vosotros más de una vez se os ha quedado colgado un Linux y habéis tenido que hacerle un “botonazo”? Pues debéis saber que Linux cuenta con la posibilidad de apagar el sistema de [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://helloit.es/img/kernel.jpg" alt="Kernel Panic">Hoy tengo el placer de publicar un post escrito por Gabriel Becerra Gottlieb especialmente para este blog. A disfrutarlo.</p>
<p>¿A cuántos de vosotros más de una vez se os ha quedado colgado un Linux y habéis tenido que hacerle un “botonazo”?<br />
Pues debéis saber que Linux cuenta con la posibilidad de apagar el sistema de forma “segura” delante de un cuelgue inesperado o un <strong>kernel panic</strong> con las llamadas “<strong>Las Magic Keys o Claves Mágicas</strong>”.</p>
<p>Como todos sabemos, los <strong>kernel panic</strong>, son los sucesos más preocupantes en un Linux puesto que dependiendo del sistema de ficheros o volumen de información que se maneje, puede provocar una pérdida de información de muy difícil solución, aquí es donde entra esa tecla que acostumbra a pasar desapercibida en nuestros teclados, la tecla “<strong>Pet Sys</strong>” (en algunos teclados no existe como tal pero es la misma que la de “<strong>Impr Pant</strong>”). En muchas distribuciones vienen activadas por defecto, pero podéis activarlas en todas.</p>
<p><span id="more-1181"></span></p>
<p>En el caso en que nos encontremos que estuvieran deshabilitadas, podéis activarlas en:</p>
<blockquote><p><strong>Versiones del Kernel 2.6 y posteriores</strong>: Tendremos que habilitar la opción “Magic SysRq Key” que hay en el menú “Kernel Hacking”.</p>
<p><strong>Versiones del Kernel 2.4 hasta 2.1</strong>: Tendremos que habilitar la opción “Magic SysRq Key” que hay en el menú &#8220;Kernel Debugging&#8221;.</p></blockquote>
<p>Aquí tenéis la lista de comandos que podemos usar <strong>Ctrl + Alt + Pet Sis + X</strong>:</p>
<ul>
<li>&#8216;r&#8217; &#8211; Cambia el teclado del modo raw al modo XLATE.</li>
<li>&#8216;k&#8217; &#8211; Mata todos los programas en la consola virtual actual.</li>
<li>&#8216;b&#8217; &#8211; Reiniciará inmediatamente el sistema sin sincronizar o desmontar sus discos.</li>
<li>&#8216;o&#8217; &#8211; Apagará su sistema (si está configurado y lo soporta).</li>
<li>&#8216;s&#8217; &#8211; Intentará sincronizar todos los sistemas de ficheros montados.</li>
<li>&#8216;u&#8217; &#8211; Intentará montar de nuevo todos los sistemas de archivos montados como solo lectura.</li>
<li>&#8216;p&#8217; &#8211; Volcará los registros y banderas actuales a su consola.</li>
<li>&#8216;t&#8217; &#8211; Volcar una lista de las tareas en ejecución y su información a su consola.</li>
<li>&#8216;m&#8217; &#8211; Volcar la información actual de la memoria a su consola.</li>
<li>&#8217;0&#8242;-&#8217;9&#8242; &#8211; Establece el nivel de información en consola, controlando los mensajes del núcleo que se mandarán a la consola. (&#8217;0&#8242;, por ejemplo hará que sólo los mensajes de emergencia como PANIC u OOPS salieran en su consola.)</li>
<li>&#8216;e&#8217; &#8211; Manda un SIGTERM a todos los procesos, excepto para init.</li>
<li>&#8216;i&#8217; &#8211; Manda un SIGKILL a todos los procesos, excepto para init.</li>
<li>&#8216;l&#8217; &#8211; Manda un SIGKILL a todos los procesos, INCLUYENDO init. (Su sistema ya no será operativo tras esto).</li>
</ul>
<p>Bien, ahora ya sé que son las Magic Keys, pero, ¿con eso como recupero mi sistema?<br />
Es muy sencillo, con una única secuencia, conocida de</p>
<blockquote><p><strong>(Ctrl) + Alt + Impr Pant + &lt;&#8217; R | E | I | S | U | B &#8216;&gt;</strong></p></blockquote>
<p>Recordando la frase &#8220;¡¡<strong>REInicia SUBnormal</strong>!!&#8221; (Que es lo que realmente quieres que haga tu PC, como si hablases con él) Vamos usando una a una la primera letra de cada palabra. Así pues, mientras mantenemos pulsadas las teclas (Ctrl) + Alt e Impr Pant , sin soltarlas vamos pulsando las teclas<strong> R, E, I, S, U, y B</strong>, en secuencia dejando un tiempo entre una y otra (sobre todo después de la ‘S’, ya que el vaciado le los buffers al hdd puede tardar un rato dependiendo del volumen que maneje el PC).</p>
<p><img class="izquierda" style="border: 0px none;" src="http://helloit.es/wp-content/themes/bluebusiness/images/flickr.gif" alt="Flickr!"> Foto por <a href="http://www.flickr.com/photos/waferboard/5321533361/" target="_blank">waferboard</a></p>
]]></content:encoded>
			<wfw:commentRss>http://helloit.es/2012/04/%c2%bfpara-que-sirve-la-tecla-pet-sis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Listar paquetes instalados en Red Hat</title>
		<link>http://helloit.es/2012/04/listar-paquetes-instalados-en-red-hat/</link>
		<comments>http://helloit.es/2012/04/listar-paquetes-instalados-en-red-hat/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 14:10:47 +0000</pubDate>
		<dc:creator>Adri</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[listado paquetes]]></category>
		<category><![CDATA[rpm]]></category>

		<guid isPermaLink="false">http://helloit.es/?p=707</guid>
		<description><![CDATA[Listado rpm -qa &#8211;qf &#8220;%-20{NAME} %-10{VERSION} %12{SIZE} %{SUMMARY}\n&#8221; Checkear un paquete concreto: rpm -q nombrepaquete Más info: http://www.rpm.org/max-rpm/ch-rpm-verify.html http://www.linuxask.com/questions/how-to-check-if-a-rpm-package-is-already-installed Foto por puuikibeach]]></description>
			<content:encoded><![CDATA[<p><img src="http://helloit.es/img/fedora12.jpg" alt="Apache HTTP" /><br />
Listado</p>
<blockquote><p>rpm -qa &#8211;qf &#8220;%-20{NAME} %-10{VERSION} %12{SIZE} %{SUMMARY}\n&#8221;</p></blockquote>
<p>Checkear un paquete concreto:</p>
<blockquote><p>rpm -q nombrepaquete</p></blockquote>
<p>Más info:</p>
<ul>
<li><a title="rpm list" href="http://www.rpm.org/max-rpm/ch-rpm-verify.html" target="_blank">http://www.rpm.org/max-rpm/ch-rpm-verify.html</a></li>
<li><a title="RPM" href="http://www.linuxask.com/questions/how-to-check-if-a-rpm-package-is-already-installed" target="_blank">http://www.linuxask.com/questions/how-to-check-if-a-rpm-package-is-already-installed</a></li>
</ul>
<p><img class="izquierda" style="border: 0px none;" src="http://helloit.es/wp-content/themes/bluebusiness/images/flickr.gif" alt="Flickr!" /> Foto por <a href="http://www.flickr.com/photos/puuikibeach/4607902952/" target="_blank">puuikibeach</a></p>
]]></content:encoded>
			<wfw:commentRss>http://helloit.es/2012/04/listar-paquetes-instalados-en-red-hat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux: saber si es de 32 o 64 bits</title>
		<link>http://helloit.es/2012/04/linux-saber-si-es-de-32-o-64-bits/</link>
		<comments>http://helloit.es/2012/04/linux-saber-si-es-de-32-o-64-bits/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 07:53:30 +0000</pubDate>
		<dc:creator>Adri</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[32 bits]]></category>
		<category><![CDATA[64 bits]]></category>
		<category><![CDATA[gentconf]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://helloit.es/?p=1189</guid>
		<description><![CDATA[Leo en twitter un comando para conocer de forma rápida si una máquina Linux es de 32 o 64 bits. Únicamente bastará con ejecutar en la terminal el siguiente comando: getconf LONG_BIT Ésto nos devolverá un escueto &#8220;32&#8243; o &#8220;64&#8243;, que es justo lo que queríamos saber. Fuente: http://twitter.com/#!/linuxtotal]]></description>
			<content:encoded><![CDATA[<p>Leo en twitter un comando para conocer de forma rápida si una máquina Linux es de 32 o 64 bits. Únicamente bastará con ejecutar en la terminal el siguiente comando:</p>
<blockquote><p>getconf LONG_BIT</p></blockquote>
<p>Ésto nos devolverá un escueto &#8220;32&#8243; o &#8220;64&#8243;, que es justo lo que queríamos saber.</p>
<p>Fuente: <a title="LinuxTotal MX" href="http://twitter.com/#!/linuxtotal" target="_blank">http://twitter.com/#!/linuxtotal</a></p>
]]></content:encoded>
			<wfw:commentRss>http://helloit.es/2012/04/linux-saber-si-es-de-32-o-64-bits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalar y configurar un servidor LAMP</title>
		<link>http://helloit.es/2012/03/instalar-y-configurar-un-servidor-lamp/</link>
		<comments>http://helloit.es/2012/03/instalar-y-configurar-un-servidor-lamp/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 10:28:12 +0000</pubDate>
		<dc:creator>Adri</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[servidor]]></category>

		<guid isPermaLink="false">http://helloit.es/?p=1158</guid>
		<description><![CDATA[Hoy me lanzo a la piscina con un paso a paso para instalar un servidor LAMP (Linux, Apache, Mysql, Php) y realizar los primeros pasos, en entornos tipo servidor Red Hat (Fedora, CentOS, etc.). Hay muchas formas de hacer ésto, pero la descrita a continuación siempre me suele funcionar: Primer paso, instalar todos los componentes [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy me lanzo a la piscina con un paso a paso para instalar un servidor LAMP (Linux, Apache, Mysql, Php) y realizar los primeros pasos, en entornos tipo servidor Red Hat (Fedora, CentOS, etc.). Hay muchas formas de hacer ésto, pero la descrita a continuación siempre me suele funcionar:</p>
<p><strong>Primer paso</strong>, instalar todos los componentes con yum:</p>
<blockquote><p>yum install -y httpd php mysql-server mysql php-mysql</p></blockquote>
<p><span id="more-1158"></span></p>
<p><strong>Segundo paso</strong>, configurarlos para que se ejecuten al inicio:</p>
<blockquote><p>chkconfig httpd on<br />
chkconfig mysqld on</p></blockquote>
<p>Y la comprobación de la correcta configuración con:</p>
<blockquote><p>chkconfig &#8211;list</p></blockquote>
<p>Lo cual nos devolverá, un listado de servicios, entre los cuales, los dos que acabamos de configurar, y que deberían estar en &#8220;on&#8221; tal y como sigue:</p>
<blockquote><p>httpd           0:desactivado   1:desactivado   2:activo        3:activo        4:activo        5:activo        6:desactivado<br />
mysqld        0:desactivado   1:desactivado   2:activo        3:activo        4:activo        5:activo        6:desactivado</p></blockquote>
<p><strong>Tercer paso</strong>, iniciar mysql y realizar la configuración inicial.</p>
<blockquote><p><strong>/etc/init.d/mysqld start<br />
/usr/bin/mysql_secure_installation</strong><br />
Enter current password for root (enter for none):<br />
Set root password? [Y/n] Y<br />
New password:<br />
Re-enter new password:<br />
Remove anonymous users? [Y/n] Y<br />
Disallow root login remotely? [Y/n] Y<br />
Remove test database and access to it? [Y/n] Y<br />
Reload privilege tables now? [Y/n] Y</p></blockquote>
<p>A partir de aquí, ya será necesario entrar en la configuración del Apache, usuarios de MySQL, iptables si fuera el caso, etc.</p>
<p>Fuente: <a title="History Linux LAMP" href="http://mamiol.blogspot.com.es/2011/09/how-to-install-lamp.html" target="_blank">http://mamiol.blogspot.com.es/2011/09/how-to-install-lamp.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://helloit.es/2012/03/instalar-y-configurar-un-servidor-lamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>301 Redirect</title>
		<link>http://helloit.es/2012/03/301-redirect/</link>
		<comments>http://helloit.es/2012/03/301-redirect/#comments</comments>
		<pubDate>Sun, 11 Mar 2012 19:38:05 +0000</pubDate>
		<dc:creator>Adri</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[301 redirect]]></category>
		<category><![CDATA[http 301]]></category>
		<category><![CDATA[redirect]]></category>

		<guid isPermaLink="false">http://helloit.es/?p=1151</guid>
		<description><![CDATA[Volvemos al maravilloso mundo del SEO, esta vez viendo el porqué y algunos ejemplos de cómo hacer una redirección 301 cuando se cambia una web de dominio o se diseña una nueva web que no mantiene los enlaces de la original. 301 según Google P: ¿Qué es una redirección 301? R: &#8220;Si necesita cambiar la [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://helloit.es/img/301.png" alt="Apache HTTP" /><br />
Volvemos al maravilloso mundo del <a href="http://helloit.es/tag/seo/">SEO</a>, esta vez viendo el porqué y algunos ejemplos de cómo hacer una redirección 301 cuando se cambia una web de dominio o se diseña una nueva web que no mantiene los enlaces de la original.</p>
<h3>301 según Google</h3>
<p>P: ¿Qué es una redirección 301?<br />
R: &#8220;Si necesita cambiar la forma en que aparece la URL de una página en los  resultados del motor de búsqueda, le recomendamos que use un  redireccionamiento 301 por parte del servidor. Es la mejor forma de  asegurarse de que se redirija a la página correcta a todos los usuarios y  motores de búsqueda. El código de estado 301 significa que una página  se ha trasladado de forma permanente a una nueva ubicación.&#8221;</p>
<p>Fuente: <a title="301 Redirect Google" href="http://support.google.com/webmasters/bin/answer.py?hl=es&amp;answer=93633" target="_blank">http://support.google.com/webmasters/bin/answer.py?hl=es&amp;answer=93633</a></p>
<p><span id="more-1151"></span></p>
<h3>Ejemplo: Cambio de hosting y de dominio</h3>
<p>Si se está migrando una web de un antiguo dominio a un nuevo dominio (es decir, únicamente se está moviendo la web de dominio y de hosting, sin realizar ningún cambio en el código de la web), bastará con crear un fichero .htacess en la raíz del antiguo hosting/dominio con el siguiente código:</p>
<blockquote><p>Options +FollowSymLinks<br />
RewriteEngine on<br />
RewriteRule (.*) http://nuevodominio.com/$1 [R=301,L]</p></blockquote>
<p>&nbsp;</p>
<h3>Ejemplo: Mismo hosting, mismo dominio, diferente web</h3>
<p>Si en cambio, no se cambia ni de dominio ni de hosting, y lo único que varia es la estructura interna de la web (si por ejemplo, se crea una nueva web desde cero, totalmente diferente a la original en cuanto a estructura), se deberá hacer una redirección de las antiguas webs (ya no existentes) a sus correspondencias en la nueva web. Por ejemplo, últimamente he trabajado en montar una nueva web para Fucal, una carpintería de aluminio. Su web es <a title="Ventanas Barcelona" href="http://www.fucal.net" target="_blank">www.fucal.net</a> y no hemos cambiado de hosting ni de dominio, símplemente en el servidor, hemos creado dos directorios en la raíz, totalmente independientes uno de otro:</p>
<ul>
<li>/fucal: con el código de la antigua web</li>
<li>/fucal_new: con el nuevo código</li>
</ul>
<p>El nuevo código, además, no tiene nada que ver con el antiguo, y por lo tanto, los enlaces que anteriormente existían, tienen su correspondencia en la nueva web, pero no mantienen el formato.</p>
<p>Para hacerlo de forma correcta, en el la raíz del antiguo código, se deberá incluir en el .htaccess las redirecciones 301 para indicar qué nuevas páginas corresponden a las antiguas. Así por ejemplo, si se disponía de una página http://www.fucal.net/serveis.html la cual ahora ha pasado a llamarse http://www.fucal.net/productos/, se deberá crear la correspondiente redirección tal y como sigue, en el .htaccess de la raíz del site antiguo (en /fucal):</p>
<blockquote><p><strong>RewriteRule ^serveis.html$ http://www.fucal.net/productos/ [R=301,L]</strong></p></blockquote>
<p>Así, nos quedaría un .htacess en la raíz de la antigua web, que indicará las correspondencias entre la antigua y la nueva web:</p>
<blockquote><p>&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine On<br />
RewriteBase /<br />
<strong>RewriteRule ^renovat.html$ http://www.fucal.net/pla-renovat-2012/ [R=301,L]</strong><br />
<strong>RewriteRule ^serveis.html$ http://www.fucal.net/productos/ [R=301,L]</strong><br />
<strong>RewriteRule ^presupost.php$ http://www.fucal.net/presupuestos/ [R=301,L]</strong><br />
<strong>RewriteRule ^empresa.html$ http://www.fucal.net/quienes-somos/ [R=301,L]</strong><br />
<strong>RewriteRule ^cat/$ http://www.fucal.net/ [R=301,L]</strong><br />
<strong>RewriteRule ^contactar.html$ http://www.fucal.net/quienes-somos/ [R=301,L]</strong><br />
&lt;/IfModule&gt;</p></blockquote>
<p>NOTA: Esta parte no la he probado (mal por mi parte) pero debería funcionar.</p>
<p>&nbsp;</p>
<h3>Ejemplo: ¿Y con WordPress?</h3>
<p>Si la antigua web fuera un WordPress, éste ya habría generado su propio .htaccess con el siguiente código:</p>
<blockquote><p>&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteRule ^index\.php$ &#8211; [L]<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /index.php [L]<br />
&lt;/IfModule&gt;</p></blockquote>
<p>Para añadir las redirecciones, se deberían incluir dentro del código existente, tal y como sigue:</p>
<blockquote><p>&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine On<br />
RewriteBase /<br />
<strong>RewriteRule ^renovat.html$ http://www.fucal.net/pla-renovat-2012/ [R=301,L]</strong><br />
<strong>RewriteRule ^serveis.html$ http://www.fucal.net/productos/ [R=301,L]</strong><br />
<strong>RewriteRule ^presupost.php$ http://www.fucal.net/presupuestos/ [R=301,L]</strong><br />
<strong>RewriteRule ^empresa.html$ http://www.fucal.net/quienes-somos/ [R=301,L]</strong><br />
<strong>RewriteRule ^cat/$ http://www.fucal.net/ [R=301,L]</strong><br />
<strong>RewriteRule ^contactar.html$ http://www.fucal.net/quienes-somos/ [R=301,L]</strong><br />
RewriteRule ^index\.php$ &#8211; [L]<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /index.php [L]<br />
&lt;/IfModule&gt;</p></blockquote>
<h3>Ejemplo: Cambio de hosting pero conservando el dominio</h3>
<p>Si éste es tu caso, no necesitas una redirección 301, porqué el dominio continua siendo el mismo. Únicamente necesitarás realizar el cambio en las DNS para apuntar al nuevo hosting y listo. A no ser que tengas una base de datos, en cuyo caso, no te podrás permitir estar 24-48h (de propagación del cambio en las DNS) en los cuales tendrás algunas peticiones almacenadas en la base de datos del servidor antiguo y otras en el nuevo, debido a la propagación de DNS.</p>
<p>Para evitar esto, tienes varias alternativas, de entre las cuales propongo 2:</p>
<p>1- Modificar el código del servidor original para usar la base de datos del nuevo servidor, antes empezar con la migración. De esta forma, cuando se haga el cambio DNS no importará el tiempo de propagación porqué todos los datos irán a parar al nuevo servidor.</p>
<p>2- En un servidor Linux, modificar iptables para redirigir todo el tráfico HTTP al nuevo servidor. <a title="iptables redirect" href="http://adminuser.wordpress.com/2008/03/17/redirecting-network-traffic-to-a-new-ip-using-iptables/" target="_blank">Aquí las instrucciones</a>.</p>
<p>&nbsp;</p>
<p>Finalmente faltaría testear que las redirecciones efectivamente funcionen y ya podremos ir a dormir tranquilos.</p>
<p>Fuente: <a title="301 redirect" href="http://www.webconfs.com/how-to-redirect-a-webpage.php" target="_blank">http://www.webconfs.com/how-to-redirect-a-webpage.php</a><br />
<img class="izquierda" style="border: 0px none;" src="http://helloit.es/wp-content/themes/bluebusiness/images/flickr.gif" alt="Flickr!" /> Foto por <a href="http://www.flickr.com/photos/coredesatchikai/2181049421/" target="_blank">Will Weaver</a></p>
]]></content:encoded>
			<wfw:commentRss>http://helloit.es/2012/03/301-redirect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sincronización de carpetas con rsync</title>
		<link>http://helloit.es/2012/02/sincronizacion-de-carpetas-con-rsync/</link>
		<comments>http://helloit.es/2012/02/sincronizacion-de-carpetas-con-rsync/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 16:09:39 +0000</pubDate>
		<dc:creator>Adri</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[sincronización de carpetas]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://helloit.es/?p=1083</guid>
		<description><![CDATA[Rsync es una herramienta muy útil para sincronizar dos directorios, ya sean de diferentes máquinas o de la misma máquina. Su sintaxis es la siguiente: Pull: rsync [OPTION...] [USER@]HOST:SRC&#8230; [DEST] Push: rsync [OPTION...] SRC&#8230; [USER@]HOST:DEST Así pues, si se quiere sincronizar dos directorios, con un servidor remoto, y además de forma automatizada, mediante SSH, podríamos [...]]]></description>
			<content:encoded><![CDATA[<p>Rsync es una herramienta muy útil para sincronizar dos directorios, ya sean de diferentes máquinas o de la misma máquina. Su sintaxis es la siguiente:</p>
<blockquote><p>Pull: rsync [OPTION...] [USER@]HOST:SRC&#8230; [DEST]<br />
Push: rsync [OPTION...] SRC&#8230; [USER@]HOST:DEST</p></blockquote>
<p>Así pues, si se quiere sincronizar dos directorios, con un servidor remoto, y además de forma automatizada, mediante SSH, podríamos primero copiar la clave pública de una máquina a la otra, para conectar por certificado y evitar así tener que introducir un password para la conexión SSH. <a title="SSH howto" href="http://helloit.es/2011/07/configurar-claves-ssh/" target="_blank">Aquí (con autentificación con password)</a> o aquí (sin autentificación con password) el cómo hacerlo.</p>
<p><span id="more-1083"></span>Una vez contemos con la autentificación por certificados configurada, podremos conectar desde el servidor desde el cual iniciamos el rsync para copiar sincronizar el contenido de una carpeta local, con una carpeta de un servidor remoto (en el ejemplo, se usará como base la carpeta local, con lo que la carpeta remota quedará igual que la local).</p>
<blockquote><p>rsync -e ssh -avz /folder/src_folder user@80.80.80.100:/another_folder/dest_folder</p></blockquote>
<p>Con el parámetro anterior, estaremos conectando por ssh contra el servidor 80.80.80.100, logueándonos con &#8220;user&#8221;, que será el usuario contra el cual habremos copiado el certificado público de la máquina local, para poder conectar por ssh mediante certificados.</p>
<p>Además, con &#8220;-avz&#8221; se estarán manteniendo los permisos y propietarios de los ficheros copiados, y además con &#8220;z&#8221; se estarán comprimiendo los archivos durante las transferencias.</p>
<p><em><strong>ACTUALIZACIÓN</strong></em>:</p>
<p>La opción &#8220;-a&#8221; en realidad, ejecuta &#8220;-rlptgoD&#8221;, lo cual significa:</p>
<ul>
<li>-r: recursivo</li>
<li>-l: copia los links simbólicos, como eso, links simbólicos</li>
<li>-p: conserva los permisos</li>
<li>-t: conserva los tiempos de modificación</li>
<li>-g: conserva el grupo</li>
<li>-o: conserva el propietario</li>
<li>-D: conserva los ficheros de dispositivo (&#8211;devices) así como los ficheros especiales (&#8211;specials)</li>
</ul>
<p>El comando anterior, puede estar mejor si se le añade la opción:</p>
<p>-u / &#8211;update: no sincroniza los ficheros que son más recientes en directorio de destino</p>
<p>Finalmente, un parámetro muy interesante es el &#8220;-n&#8221;:</p>
<p>-n: combinado con el resto de parámetros, únicamente realiza el rsync en modo test, pero no efectúa ningún cambio, con lo que si se combina con la opción &#8220;-v&#8221; devolverá el resultado que obtendríamos al ejecutar el comando, pero sin realizar ninguna modificación. Si el resultado es el esperado, podremos quitar la opción &#8220;-n&#8221; y volver a ejecutar, para esta vez sí, obtener los cambios esperados.</p>
]]></content:encoded>
			<wfw:commentRss>http://helloit.es/2012/02/sincronizacion-de-carpetas-con-rsync/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Las colas de postfix</title>
		<link>http://helloit.es/2012/02/las-colas-de-postfix/</link>
		<comments>http://helloit.es/2012/02/las-colas-de-postfix/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 11:25:21 +0000</pubDate>
		<dc:creator>Adri</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[postqueue]]></category>
		<category><![CDATA[qshape]]></category>
		<category><![CDATA[queue]]></category>

		<guid isPermaLink="false">http://helloit.es/?p=1103</guid>
		<description><![CDATA[No es extraño tener en un servidor de envío de correo, más de un postfix (o incluso decenas de ellos) corriéndo de forma simultánea. Para poder ver el estado de las colas (es decir, los mails que están esperando a ser enviados), podemos usar un par de comandos: qshape -c /etc/postfixA/ Qshape es una utilidad [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://helloit.es/img/mail12.jpg" alt="Apache HTTP" />No es extraño tener en un servidor de envío de correo, más de un postfix (o incluso decenas de ellos) corriéndo de forma simultánea. Para poder ver el estado de las colas (es decir, los mails que están esperando a ser enviados), podemos usar un par de comandos:</p>
<blockquote><p>qshape -c /etc/postfixA/</p></blockquote>
<p>Qshape es una utilidad que muestra por pantalla el número de mails distribuidos por edad en las colas, es decir, nos mostrará el tiempo que llevan los mails en las colas, esperando para salir, agrupados por tiempo. Con la opción &#8220;-c&#8221; se le indicará la ruta al fichero main.cf del postfix del cual queremos ver las colas.</p>
<blockquote><p>postqueue -p -c /etc/postfixA/</p></blockquote>
<p>Postqueue, es la utilidad para gestionar las colas de postfix, la cual, requiere indicar igual que qshape, la ruta al main.cf del postfix en cuestión. La opción &#8220;-p&#8221; lista el contenido de las colas.<br />
<img class="izquierda" style="border: 0px none;" src="http://helloit.es/wp-content/themes/bluebusiness/images/flickr.gif" alt="Flickr!" /> Foto por <a href="http://www.flickr.com/photos/alecperkins/4948734553/" target="_blank">alecperkins</a></p>
]]></content:encoded>
			<wfw:commentRss>http://helloit.es/2012/02/las-colas-de-postfix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Restaurar mysqlhotcopy</title>
		<link>http://helloit.es/2012/02/restaurar-mysqlhotcopy/</link>
		<comments>http://helloit.es/2012/02/restaurar-mysqlhotcopy/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 12:27:40 +0000</pubDate>
		<dc:creator>Adri</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysqlhotcopy]]></category>
		<category><![CDATA[restore backup]]></category>

		<guid isPermaLink="false">http://helloit.es/?p=1107</guid>
		<description><![CDATA[Hace un tiempo vimos cómo hacer copias de seguridad más rápidas para tablas MyISAM con mysqlhotcopy. Ahora toca ver cómo restauramos un backup de éste tipo, paso por paso. Se partirá de un backup comprimido con &#8220;zip&#8221; para Linux. En primer lugar, crearemos un fichero temporal donde descomprimir el backup. [backup]# mkdir /tmp/restore Una vez [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://helloit.es/img/mysql0212.jpg" alt="Apache HTTP" />Hace un tiempo vimos <a href="http://helloit.es/2011/10/mysqlhotcopy/" target="_blank">cómo hacer copias de seguridad más rápidas para tablas MyISAM con mysqlhotcopy</a>. Ahora toca ver cómo restauramos un backup de éste tipo, paso por paso.</p>
<p>Se partirá de un backup comprimido con &#8220;zip&#8221; para Linux.</p>
<p>En primer lugar, crearemos un fichero temporal donde descomprimir el backup.</p>
<blockquote><p>[backup]# mkdir /tmp/restore</p></blockquote>
<p><span id="more-1107"></span></p>
<p>Una vez creado, copiaremos el backup al directorio temporal.</p>
<blockquote><p>[backup]# cp 2012-02-02-backup.gz /tmp/restore/</p></blockquote>
<p>Nos situaremos en el directorio temporal y descomprimiremos el backup.</p>
<blockquote><p>[backup]# cd /tmp/restore/<br />
[restore]# unzip 2012-02-02-backup.gz</p></blockquote>
<p>Tras la descompresión, entraremos en la ruta donde están los ficheros MYI, frm y MYD correspondientes a los ficheros de las tablas de la base de datos, y nos aseguraremos de que tienen el propietario y los permisos correctos.</p>
<blockquote><p>[database]# chown mysql:mysql *<br />
[database]# chmod 660 *</p></blockquote>
<p>Finalmente, únicamente quedará parar MySQL, machacar los ficheros de la base de datos con los ficheros correspondientes a la copia de seguridad, e iniciar de nuevo el MySQL.</p>
<blockquote><p>[database]# /etc/init.d/mysqld stop<br />
[database]# mv -f * /var/lib/mysql/database/<br />
[database]# /etc/init.d/mysqld start</p></blockquote>
<p>¡Listo!</p>
<p><img class="izquierda" style="border: 0px none;" src="http://helloit.es/wp-content/themes/bluebusiness/images/flickr.gif" alt="Flickr!" /> Foto por <a href="http://www.flickr.com/photos/mager/2178469472/&quot;" target="_blank">magerleagues</a></p>
]]></content:encoded>
			<wfw:commentRss>http://helloit.es/2012/02/restaurar-mysqlhotcopy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

