<?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>Adobe User Group Granada &#187; apache</title>
	<atom:link href="http://www.adobe-user-group-granada.es/category/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.adobe-user-group-granada.es</link>
	<description>Grupo de usuarios de Adobe orientado a Dreamweaver y Spry en la ciudad de Granada</description>
	<lastBuildDate>Sat, 21 Jan 2012 19:10:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Guía de supervivencia con Apache</title>
		<link>http://www.adobe-user-group-granada.es/guia-de-supervivencia-con-apache/</link>
		<comments>http://www.adobe-user-group-granada.es/guia-de-supervivencia-con-apache/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 18:31:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[artículos]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[tutoriales]]></category>

		<guid isPermaLink="false">http://www.adobe-user-group-granada.es/?p=1019</guid>
		<description><![CDATA[El servidor web Apache es uno de los más extendidos y con más opciones de configuración, esto implica que es complejo. Vamos a ver cómo sobrevivir con Apache.


Guía de supervivencia con Apache

Otras veces ya hemos visto como realizar una instalación de Apache con PHP y eAccelerator, una vez instalado los ficheros ejecutables importantes son:

apachectl: Mediante [...]]]></description>
			<content:encoded><![CDATA[<p>El <strong>servidor web Apache</strong> es uno de los más extendidos y con más opciones de configuración, esto implica que es complejo. Vamos a ver <strong>cómo sobrevivir con Apache</strong>.</p>
<p><span id="more-1019"></span></p>
<div id="attachment_3639">
<p><a href="http://systemadmin.es/wp-content/uploads/2011/11/supervivencia-con-Apache.jpg"></a>Guía de supervivencia con Apache</p>
</div>
<p>Otras veces ya hemos visto como realizar una <a href="http://systemadmin.es/2009/08/instalacion-de-un-servidor-lamp-v-apache-con-php-y-eaccelerator">instalación de Apache con PHP y eAccelerator</a>, una vez instalado los ficheros ejecutables importantes son:</p>
<ul>
<li><strong>apachectl</strong>: Mediante este script podremos:
<ul>
<li>Gestionar el arranque y parada del daemon (<strong>start</strong>/<strong>stop</strong>)</li>
<li>Comprobar la configuración (<strong>configtest</strong>):
<pre># /usr/local/apache22/bin/apachectl configtest
Syntax OK</pre>
</li>
<li>Recargar la configuración en caliente, sin apagar el daemon (<strong>graceful</strong>)</li>
</ul>
</li>
<li><strong>httpd</strong>: Binario del daemon, con dicho fichero podemos:
<ul>
<li>Indicar que fichero de configuración cargar (<strong>opción -f</strong>)</li>
<li>Ver el listado de módulos que carga (<strong>opción -M</strong>):
<pre># /usr/local/apache22/bin/httpd -M
Loaded Modules:
 core_module (static)
(...)
 jrun_module (shared)</pre>
</li>
<li>Al igual que con <strong>apachectl</strong>, comprobar la configuración con la <strong>opción -t</strong>:
<pre># /usr/local/apache22/bin/httpd -t
Syntax OK</pre>
</li>
<li>Ver el resumen de configuración de los <strong>VirtualHosts</strong> con la <strong>opción -S</strong>:
<pre># /usr/local/apache22/bin/httpd -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server shuvak.systemadmin.es (/usr/local/apache22/conf/extra/httpd-vhosts.conf:7)
         port 80 namevhost shuvak.systemadmin.es (/usr/local/apache22/conf/extra/httpd-vhosts.conf:7)
         port 80 namevhost systemadmin.es (/usr/local/apache22/conf/extra/vhosts/systemadmin.es.conf:1)
         port 80 namevhost foro.systemadmin.es (/usr/local/apache22/conf/extra/vhosts/foro.systemadmin.es.conf:1)
Syntax OK</pre>
</li>
</ul>
</li>
</ul>
<p>Un ejemplo de <strong>configuración típica de un VirtualHost</strong> sería la siguiente:</p>
<pre>&lt;VirtualHost *:80&gt;
        DocumentRoot "/var/www/systemadmin.es/htdocs"
        DirectoryIndex index.php
        ServerName systemadmin.es
        ServerAlias foro.systemadmin.es

        &lt;Directory /var/www/systemadmin.es/htdocs&gt;
            Options FollowSymLinks
            AllowOverride all
            Order deny,allow
            Allow from all
        &lt;/Directory&gt;

        ErrorLog  "| /usr/local/sbin/cronolog -S /var/www/systemadmin.es/logs/current.error.log /var/www/systemadmin.es/logs/%Y/%m/%d/error.log"
        CustomLog "| /usr/local/sbin/cronolog -S /var/www/systemadmin.es/logs/current.custom.log /var/www/systemadmin.es/logs/%Y/%m/%d/custom.log" combined

&lt;/VirtualHost&gt;</pre>
<p>Las directivas importantes son:</p>
<ul>
<li><strong>DocumentRoot</strong>: Directorio base desde el cual  serviremos el contenido. Deberemos acompañarlo de la directiva Directory  para establecer si se puede servir o no su contenido</li>
<li><strong>DirectoryIndex</strong>: Cuando se intente servir la raíz o  cualquier directorio (sin especificar fichero), cual se debería servir.  Típicamente se usa index.algo, pero podría ser cualquier fichero. Esta  directiva indica que fichero servir y en que orden de prioridad. Por  ejemplo:
<pre>DirectoryIndex index.php index.html index.htm</pre>
<p>Primero miraría si existe un fichero <strong>index.php</strong>, en caso que no exista buscaría el siguiente (<strong>index.html</strong>) y así el listado que indiquemos. En caso que no exista ninguno, <strong>se serviría un 404</strong></li>
<li><strong>ServerName</strong> y <strong>ServerAlias</strong>: Nombres a los que responde según el <a href="http://systemadmin.es/2010/08/especificar-que-host-header-debe-usar-el-curl">header Host</a>. Se pueden <strong>especificar wildcards</strong> tanto pode delante (<strong>*.systemadmin.es</strong>) como por detrás (<strong>webmail.*</strong>). La diferencia entre <strong>ServerName</strong> y <strong>ServerAlias</strong> a la practica tiene poca importancia.</li>
</ul>
<p>En cuanto a la <strong>gestión de logs</strong>, personalmente uso <a href="http://systemadmin.es/2009/01/rotacion-de-logs-de-apache-mediante-cronolog">cronolog</a> ya que una vez configurado cómo queremos almacenar los logs no  deberemos hacer mantenimiento a no se que queramos eliminar los  antiguos. Para ello suelo emplear un simple script que haga limpieza:</p>
<pre>#!/bin/bash
for i in $(find /var/www/ -maxdepth 2 -iname logs);
do

        #eliminacion de los mas antiguos de 10 dias
        find $i -mtime +10 -type f -exec rm {} \;

        #eliminacion de directios vacios
        find $i -empty -type d -exec rmdir {} \; 2&gt;/dev/null

        #compresión de logs ya rotados
        find $i -type f -iname \*\.log -mtime +2 -exec gzip {} \;

done</pre>
<p>Deberemos <strong>adaptar el find del for</strong> para que encuentre los directorios raíz dónde tenemos los logs.</p>
<p>Para conocer el estado del Apache existe el <a href="http://systemadmin.es/2009/02/instalacion-del-server-status-mod_status-de-apache">modulo mod_status</a>, que nos indica que esta haciendo dicho daemon. Generalmente se instala en <strong>/server-staus</strong> con <strong>acceso limitado por IP de origen</strong>.</p>
<p>En el <strong>scoreboard</strong> veremos los estado del los <strong>apachitos</strong> (procesos apache) y podremos ver si existe algún problema con algún VirtualHost. Típicamente podremos ver:</p>
<ul>
<li>Se nos llena el scoreboard de <strong>W</strong>: Cuando un slot esta en estado W significa que esta contestando, pero si vemos que se nos acumulan <strong>W</strong> posiblemente esta contestando muy lentamente por algún motivo o bien  simplemente se queda colgado. Generalmente indica problemas en la base  de datos.Si habilitamos la opción
<pre>ExtendedStatus On</pre>
<p>Tendremos un listado de todas las peticiones y su estado, para cuanto  tiempo lleva un slot en el estado actual deberemos fijarnos en la  columna <strong>SS</strong>. Por lo tanto, las peticiones <strong>en estado W que tenga el SS alto</strong> son las primeras que deberemos investigar. Evidentemente, si servimos contenido estático (un <strong>mp3</strong>) es lógico que tarde en ser entregado y por lo tanto que <strong>su SS sea alto</strong>.</li>
<li>Se nos llena el scoreboard de <strong>K</strong>: Tendremos que ver  si nos interesa reducir el tiempo de KeepAlive de las conexiones. Por  defecto lo tenemos a 5 segundos, pero lo podemos dejar en 1 o 2 segundos  según la aplicación.</li>
</ul>
<p>En otra ocasión ya hablamos de en que debemos fijarnos para <a href="http://systemadmin.es/2010/04/encontrar-la-raiz-del-problema-en-un-entorno-lamp-i">entender el problema que tenga un entorno LAMP</a></p>
<p>Otra cosa a tener en cuenta es la <a href="http://systemadmin.es/2009/04/diferencia-entre-serverlimit-y-maxclients-de-apache">diferencia entre ServerLimit y MaxClients</a>: <strong>ServerLimit</strong> es el límite fijo que no puede ser modificado mediante una recarga de configuración (graceful) mientras que <strong>MaxClients</strong> es el límite actual.</p>
<p>Actualmente <strong>mod_status</strong> no muestra los slots de Apache que quedan deshabilitados por la directiva <strong>MaxClients</strong>, por lo que nos puede dar pie a error al suponerlos libres. En su momento hice un patch para evitar esto y <strong>será incluido en la próxima release de Apache</strong> (2.4), actualmente <a href="http://systemadmin.es/2011/03/apache-2-4-beta-httpd-2-3-11">ya se encuentra disponible en la versión beta desde la versión 2.3.11</a>.</p>
<p>Nuestra fuente: <a href="http://systemadmin.es/2011/11/guia-de-supervivencia-con-apache" target="_blank">Systemadmin</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.adobe-user-group-granada.es/guia-de-supervivencia-con-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como comprobar la configuración de un Apache</title>
		<link>http://www.adobe-user-group-granada.es/como-comprobar-la-configuracion-de-un-apache/</link>
		<comments>http://www.adobe-user-group-granada.es/como-comprobar-la-configuracion-de-un-apache/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 08:41:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[artículos]]></category>

		<guid isPermaLink="false">http://www.adobe-user-group-granada.es/?p=306</guid>
		<description><![CDATA[Una de las principales razones por las que un apache no arranca suele ser un fallo en la configuración, normalmente un problema de sintaxis muy fácil de descubrir. Existe la mala costumbre de realizar el reinicio sin comprobar la configuración. Vamos a ver como hacerlo para evitar esos molestos minutos en los que tenemos el [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las principales razones por las que un apache no arranca suele ser un fallo en la configuración, normalmente un problema de sintaxis muy fácil de descubrir. Existe la mala costumbre de realizar el reinicio sin comprobar la configuración. Vamos a ver como hacerlo para evitar esos molestos minutos en los que tenemos el apache sin responder a peticiones.<span id="more-306"></span></p>
<p>Independientemente que el fichero que tengamos en el /etc/init.d, por ejemplo /etc/init.d/httpd, permita esta comprobación de sintaxis, el fichero apachectl permite realizar esta comprobación. En instalaciones desde repositorios lo podremos encontrar típicamente en /usr/sbin/apachectl y desde código fuente dependerá de las opciones de compilación, por ejemplo, /usr/local/apache22/bin/apachectl</p>
<p>Para comprobar la sintaxis simplemente deberemos indicar la opción configtest:</p>
<p># /usr/local/apache22/bin/apachectl configtest<br />
Syntax OK</p>
<p>En caso de algún problema nos indicará la linea donde podemos empezar a mirar:</p>
<p># /usr/local/apache22/bin/apachectl configtest<br />
Syntax error on line 425 of /usr/local/apache22/conf/httpd.conf:<br />
Invalid command &#8216;Frak&#8217;, perhaps misspelled or defined by a module not included in the server configuration</p>
<p>Nuestra Fuente: <a href="http://systemadmin.es/2010/02/como-comprobar-la-configuracion-de-un-apache" target="_blank">SystemAdmin.es</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.adobe-user-group-granada.es/como-comprobar-la-configuracion-de-un-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

