<?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; Apache</title>
	<atom:link href="http://rm-rf.es/sobre/apache/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>Fri, 18 May 2012 21:00:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Instalar y utilizar Apache JMeter sin GUI</title>
		<link>http://rm-rf.es/instalar-y-utilizar-apache-jmeter-sin-gui/</link>
		<comments>http://rm-rf.es/instalar-y-utilizar-apache-jmeter-sin-gui/#comments</comments>
		<pubDate>Sat, 28 Apr 2012 15:33:17 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[JMeter]]></category>
		<category><![CDATA[optimizacion]]></category>
		<category><![CDATA[optimizar]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=2626</guid>
		<description><![CDATA[Hoy vamos a ver los pasos necesarios (muy sencillos) para instalar y utilizar Apache JMeter sin GUI (entorno gráfico) en sistemas Red Hat, CentOS, etc. JMeter es un proyecto de Apache Jakarta que puede ser utilizado como una herramienta de prueba de carga para analizar y medir el desempeño de una variedad de servicios, con [...]]]></description>
			<content:encoded><![CDATA[<p><img align="right" class="size-full wp-image-2627" title="Apache jmeter" src="http://rm-rf.es/wp-content/uploads/2012/04/jmeter.jpg" alt="Apache jmeter" width="221" height="102" />Hoy vamos a ver los pasos necesarios (muy sencillos) para <strong>instalar y utilizar Apache JMeter sin GUI</strong> (entorno gráfico) en sistemas <strong>Red Hat, CentOS</strong>, etc.</p>
<blockquote><p>JMeter es un proyecto de Apache Jakarta que puede ser utilizado como una herramienta de prueba de carga para analizar y medir el desempeño de una variedad de servicios, con énfasis en aplicaciones web.</p>
<p style="text-align: right;">Wikipedia</p>
</blockquote>
<p>Lo primero es conocer las dependencias de <strong>JMeter</strong>, en este caso tenemos que instalar <strong>JDK</strong>, ya que funciona a través de java. Lo hacemos instalando la versión disponible desde yum o si queremos alguna concreta bajandola desde el sitio web de java:</p>
<pre># yum install java-1.6.0-openjdk.x86_64</pre>
<p>Una vez instalado java, verificamos la versión y que es compatible (libre de bugs) con la versión de JMeter que vamos a utilizar:</p>
<pre># java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.6) (rhel-1.43.1.10.6.el6_2-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)</pre>
<p>Pasamos entonces a bajar JMeter, en lugar de compilarlo, podemos bajar directamente los <strong>binarios precompilados</strong>, de modo que únicamente tengamos que descomprimirlo y tunear un poco algún parámetro para poder empezar a utilizarlo:</p>
<pre># wget http://apache.rediris.es//jmeter/binaries/apache-jmeter-2.6.tgz
# wget http://apache.rediris.es//jmeter/binaries/apache-jmeter-2.6.tgz.asc
# wget http://www.apache.org/dist/jmeter/KEYS</pre>
<p>Importamos las keys de Apache para verificar la integridad del archivo descargado:</p>
<pre># gpg --import KEYS
# gpg --verify apache-jmeter-2.6.tgz.asc</pre>
<p>Y ya podemos descomprimir y utilizar JMeter:</p>
<pre># tar -xzvf apache-jmeter-2.6.tgz
# mv apache-jmeter-2.6 /usr/local/jmeter
# cd /usr/local/jmeter/</pre>
<p>Para un uso básico, simplemente especificamos que no vamos a utilizar GUI (-n), el plan a ejecutar (-t) y el log donde almacenar los resultados (-l):</p>
<pre># /bin/jmeter -n -t plans/miplandepruebas.jmx -l plans/registro_pruebas.log</pre>
<p>Un problema común es tener problemas de memoria al ejecutar el plan, ya que los recursos asignados son insuficientes. Para modificarlo, editamos el fichero jmeter y aumentamos los límites de memoria en la variable HEAP, siempre en relación a los recursos de los que dispongamos:</p>
<pre># vi bin/jmeter
# This is the base heap size -- you may increase or decrease it to fit your
# system's memory availablity:
#HEAP="-Xms512m -Xmx512m"
HEAP="-Xms4096m -Xmx4096m"</pre>
<p>Otro problema común es el de los límites de ficheros abiertos (open files) especificados en ulimit, sobre todo para pruebas de estrés importantes, deberemos adecuarlo según necesidades igualmente para la sesión en la que ejecutamos las pruebas:</p>
<pre># ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 95066
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
<strong>open files (-n) 1024</strong>
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited</pre>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/securizando-y-optimizando-linux/" title="Securizando y optimizando Linux">Securizando y optimizando Linux</a></li><li><a href="http://rm-rf.es/apache-permitir-acceso-a-un-directorio-con-autenticacion-para-una-ip-cidr/" title="Apache: permitir acceso a un directorio con autenticación para una IP / CIDR">Apache: permitir acceso a un directorio con autenticación para una IP / CIDR</a></li><li><a href="http://rm-rf.es/limitar-recursos-por-usuario-en-mysql/" title="Limitar recursos por usuario en MySQL">Limitar recursos por usuario en MySQL</a></li><li><a href="http://rm-rf.es/sslcertificatefile-file-certificado-crt-does-not-exist-or-empty/" title="SSLCertificateFile: file certificado.crt does not exist or empty">SSLCertificateFile: file certificado.crt does not exist or empty</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/instalar-y-utilizar-apache-jmeter-sin-gui/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apache: permitir acceso a un directorio con autenticación para una IP / CIDR</title>
		<link>http://rm-rf.es/apache-permitir-acceso-a-un-directorio-con-autenticacion-para-una-ip-cidr/</link>
		<comments>http://rm-rf.es/apache-permitir-acceso-a-un-directorio-con-autenticacion-para-una-ip-cidr/#comments</comments>
		<pubDate>Sat, 24 Mar 2012 18:05:22 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[htpasswd]]></category>
		<category><![CDATA[seguridad apache]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=2587</guid>
		<description><![CDATA[En su día, en el artículo de trucos sobre .htaccess vimos como configurar la autenticación (solicitando usuario y password) para un directorio dentro de un website (o para el website completo). En este caso lo que vamos a hacer es proteger un directorio pero excluir una IP o rango CIDR para que pueda acceder al [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-2132" title="Apache" src="http://rm-rf.es/wp-content/uploads/2011/08/apache.jpg" alt="Apache" width="150" height="149" align="right" />En su día, en el artículo de <a title="Trucos útiles de configuración .htaccess para desarrolladores" href="http://rm-rf.es/trucos-utiles-de-configuracion-htaccess-para-desarrolladores/">trucos sobre .htaccess</a> vimos como configurar la autenticación (solicitando usuario y password) para un directorio dentro de un website (o para el website completo). En este caso lo que vamos a hacer es <strong>proteger un directorio pero excluir una IP o rango CIDR para que pueda acceder al mismo saltando esta protección</strong>.</p>
<p>Partimos de la base de que tenemos configurado en nuestro website, dentro del fichero <strong>.htaccess</strong> (o a nivel de <strong>virtualhost</strong>) la autenticación para todos los usuarios:</p>
<pre>AuthType Basic
AuthName “Prompt”
AuthUserFile /var/webs/test.com/.htpasswd
Require valid-user</pre>
<p>Ahora queremos que todos los visitantes se autentiquen excepto los que provengan de la IP 192.168.1.128:</p>
<pre>AuthType Basic
AuthName “Prompt”
AuthUserFile /var/webs/test.com/.htpasswd
Require valid-user
Order allow,deny
allow from 192.168.1.128
satisfy any</pre>
<p>La directiva <strong>satisfy any</strong> permite, tanto para la autenticación como el acceso, que en el momento que se cumpla uno de los requerimientos se permita la petición, haciendo así bypass de la autenticación. Si por el contrario, se quisiera que se cumplieran todos los requerimientos para acceder usaríamos <strong>satisfy all</strong>.</p>
<p>Podríamos tambien permitir rangos completos, denegar a IPs o CIDR, etc</p>
<pre>allow from 192.168.1
allow from 192.168.1.0/24
...</pre>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/cambiar-el-ap_doc_root-en-suexec-instalado-por-rpm/" title="Cambiar el AP_DOC_ROOT en suEXEC instalado por RPM">Cambiar el AP_DOC_ROOT en suEXEC instalado por RPM</a></li><li><a href="http://rm-rf.es/htaccess-redirigir-todo-el-trafico-hacia-una-pagina/" title=".htaccess: Redirigir todo el tráfico hacia una página">.htaccess: Redirigir todo el tráfico hacia una página</a></li><li><a href="http://rm-rf.es/utilizar-htaccess-phpini-en-apache-con-suphp/" title="Utilizar .htaccess / php.ini en Apache con suPHP">Utilizar .htaccess / php.ini en Apache con suPHP</a></li><li><a href="http://rm-rf.es/deshabilitar-directory-index-en-webs-bajo-apache/" title="Deshabilitar directory index en webs bajo Apache">Deshabilitar directory index en webs bajo Apache</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/apache-permitir-acceso-a-un-directorio-con-autenticacion-para-una-ip-cidr/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SSLCertificateFile: file certificado.crt does not exist or empty</title>
		<link>http://rm-rf.es/sslcertificatefile-file-certificado-crt-does-not-exist-or-empty/</link>
		<comments>http://rm-rf.es/sslcertificatefile-file-certificado-crt-does-not-exist-or-empty/#comments</comments>
		<pubDate>Sun, 04 Mar 2012 09:13:54 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[certificado SSL]]></category>
		<category><![CDATA[selinux]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=2542</guid>
		<description><![CDATA[En caso de recibir este error tras realizar una instalación de un certificado SSL en un servidor web Apache debemos revisar (en RHEL, CentOS, Scientific Linux, Fedora&#8230;) el estado de SElinux. Si está activado, probablemente sea el origen del problema: # sestatus SELinux status:                 enabled SELinuxfs mount:                /selinux Current mode:                   enforcing Mode from config file:          [...]]]></description>
			<content:encoded><![CDATA[<p>En caso de recibir este error tras realizar una <strong>instalación de un certificado SSL en un servidor web Apache</strong> debemos revisar (en RHEL, CentOS, Scientific Linux, Fedora&#8230;) el estado de <strong>SElinux</strong>. Si está activado, probablemente sea el origen del problema:</p>
<pre># sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted</pre>
<p>En el log de auditoría veremos los siguientes errores:</p>
<pre># tail -200 /var/log/audit/audit.log  | grep crt
type=AVC msg=audit(1330769968.611:22): avc:  denied  { getattr } for  pid=1657 comm="httpd" path="/etc/ssl/cert.crt" dev=dm-0 ino=22027 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file
type=AVC msg=audit(1330770107.699:23): avc:  denied  { getattr } for  pid=1676 comm="httpd" path="/etc/ssl/cert.crt" dev=dm-0 ino=22034 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file
type=AVC msg=audit(1330770206.289:24): avc:  denied  { getattr } for  pid=1697 comm="httpd" path="/etc/ssl/cert.crt" dev=dm-0 ino=22034 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file</pre>
<p>Se presupone además que hemos revisado que el path al certificado es correcto y no está vacío. Para solucionar el problema debemos <strong>aplicar (etiquetar) los atributos de SElinux correctos a los ficheros del certificado</strong> (certificado, private key, CA). Una forma sencilla es &#8220;copiar&#8221; estos atributos de un fichero de configuración Apache, que ya los tendrá asignados:</p>
<pre># chcon --reference=/etc/httpd/conf.d/ssl.conf cert.*</pre>
<p>O aplicándolo especificando todos los atributos:</p>
<pre># chcon -u system_u -r object_r -t httpd_config_t cert.*</pre>
<p>Si listamos ya tenemos etiquetados los ficheros y podemos reiniciar Apache sin recibir el error:</p>
<pre># ls -Z
-rw-r--r--. apache apache system_u:object_r:httpd_config_t:s0 cert.crt
-rw-r--r--. apache apache system_u:object_r:httpd_config_t:s0 cert.csr
-rw-r--r--. apache apache system_u:object_r:httpd_config_t:s0 cert.key</pre>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/consultar-y-exportar-certificados-ssl-en-sun-web-server-certutil-y-pkcs12/" title="Consultar y exportar certificados SSL en Sun Web Server (certutil y pkcs12)">Consultar y exportar certificados SSL en Sun Web Server (certutil y pkcs12)</a></li><li><a href="http://rm-rf.es/reverseproxy-en-apache-con-ssl/" title="ReverseProxy en Apache con SSL">ReverseProxy en Apache con SSL</a></li><li><a href="http://rm-rf.es/habilitar-certificados-de-cliente-para-un-website-en-iis-6-0/" title="Habilitar certificados de cliente para un website en IIS 6.0">Habilitar certificados de cliente para un website en IIS 6.0</a></li><li><a href="http://rm-rf.es/generar-un-certificado-ssl-propio-con-openssl/" title="Generar un certificado SSL propio con openssl">Generar un certificado SSL propio con openssl</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/sslcertificatefile-file-certificado-crt-does-not-exist-or-empty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ReverseProxy en Apache con SSL</title>
		<link>http://rm-rf.es/reverseproxy-en-apache-con-ssl/</link>
		<comments>http://rm-rf.es/reverseproxy-en-apache-con-ssl/#comments</comments>
		<pubDate>Sat, 03 Mar 2012 09:12:25 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=2539</guid>
		<description><![CDATA[Hoy vamos a ver los pasos para activar soporte SSL en un proxy reverse de Apache. Algunos de los pasos ya los he comentado en otros artículos así que los citaré directamente. Lo primero es Configurar Apache como Reverse Proxy (Proxy Inverso), pinchad en el enlace antes de seguir leyendo. Una vez realizado tenemos que [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy vamos a ver los pasos para <strong>activar soporte SSL en un proxy reverse de Apache</strong>. Algunos de los pasos ya los he comentado en otros artículos así que los citaré directamente.</p>
<p>Lo primero es <a title="Configurar Apache como Reverse Proxy (Proxy Inverso)" href="http://rm-rf.es/configurar-apache-como-reverse-proxy-proxy-inverso/">Configurar Apache como Reverse Proxy (Proxy Inverso)</a>, pinchad en el enlace antes de seguir leyendo. Una vez realizado tenemos que tener un <strong>certificado SSL</strong>, podemos contratarlo en una entidad certificadora o generarlo nosotros mismos. Para ello revisar este enlace: <a title="Generar un certificado SSL propio con openssl" href="http://rm-rf.es/generar-un-certificado-ssl-propio-con-openssl/">generar un certificado SSL propio con openssl</a>.</p>
<p>Ahora que tenemos Apache listo para ser usado como reverse proxy sólo nos queda realizar los pasos finales. Lo primero es <strong>habilitar soporte para mod_ssl</strong> instalando el módulo de Apache. Podemos hacer vía yum o apt, si Apache ha sido compilado a mano habrá que recompilar.</p>
<pre># yum install mod_ssl</pre>
<p>Tenemos que modificar la configuración de mod_proxy para permitir el acceso vía SSL, para ello buscamos la configuración del módulo en el fichero de configuración de Apache httpd.conf. Podríamos configurar estas directivas únicamente en el Virtualhost que queramos si no se desea hacer para todo el servidor. Básicamente activamos <strong>SSLProxyEngine</strong> (lo hacemos en el virtualhost) y restringimos el acceso al proxy a la red 10.0.0.0/24 a nivel general.</p>
<pre>&lt;IfModule mod_proxy.c&gt;
...
...
&lt;Proxy *&gt;
Order deny,allow
Deny from all
Allow from 10.0.0.0/24
&lt;/Proxy&gt;
....
....
&lt;/IfModule&gt;</pre>
<p>Y el Virtualhost, veréis que activamos los <strong>Engine de SSL y de SSLProxy</strong>, especificamos las <strong>rutas al certificado SSL y su PrivateKey</strong> y que finalmente especificamos las directivas de proxy, en este caso al acceder a https://proxy.com/google nos llevará a https://google.com. He omitido configuraciones de log y demás en el vhost para hacerlo más sencillo:</p>
<pre>&lt;VirtualHost 0.0.0.0:443&gt;
    ServerName proxy.com
    SSLEngine on
    SSLProxyEngine on
    SSLCertificateFile /etc/ssl/cert.crt
    SSLCertificateKeyFile /etc/ssl/cert.key
    ProxyPass /google/ https://google.es
    ProxyPassReverse /google/ https://google.es
&lt;/VirtualHost&gt;</pre>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/sslcertificatefile-file-certificado-crt-does-not-exist-or-empty/" title="SSLCertificateFile: file certificado.crt does not exist or empty">SSLCertificateFile: file certificado.crt does not exist or empty</a></li><li><a href="http://rm-rf.es/configurar-apache-como-reverse-proxy-proxy-inverso/" title="Configurar Apache como Reverse Proxy (Proxy Inverso)">Configurar Apache como Reverse Proxy (Proxy Inverso)</a></li><li><a href="http://rm-rf.es/generar-un-certificado-ssl-propio-con-openssl/" title="Generar un certificado SSL propio con openssl">Generar un certificado SSL propio con openssl</a></li><li><a href="http://rm-rf.es/instalar-y-utilizar-apache-jmeter-sin-gui/" title="Instalar y utilizar Apache JMeter sin GUI">Instalar y utilizar Apache JMeter sin GUI</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/reverseproxy-en-apache-con-ssl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cambiar el AP_DOC_ROOT en suEXEC instalado por RPM</title>
		<link>http://rm-rf.es/cambiar-el-ap_doc_root-en-suexec-instalado-por-rpm/</link>
		<comments>http://rm-rf.es/cambiar-el-ap_doc_root-en-suexec-instalado-por-rpm/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 19:11:03 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[rpm]]></category>
		<category><![CDATA[seguridad apache]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=2517</guid>
		<description><![CDATA[suEXEC por seguridad trae los siguientes parámetros compilados y sin posibilidad de ser modificados: # suexec -V -D AP_DOC_ROOT="/var/www" -D AP_GID_MIN=100 -D AP_HTTPD_USER="apache" -D AP_LOG_EXEC="/var/log/httpd/suexec.log" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin" -D AP_UID_MIN=500 -D AP_USERDIR_SUFFIX="public_html" Si lo hemos instalado compilando a través de las sources, no hay problema, se recompila y ya está. Pero si lo hemos instalado por [...]]]></description>
			<content:encoded><![CDATA[<p><strong>suEXEC</strong> por seguridad trae los siguientes parámetros compilados y sin posibilidad de ser modificados:</p>
<pre># suexec -V
 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="apache"
 -D AP_LOG_EXEC="/var/log/httpd/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=500
 -D AP_USERDIR_SUFFIX="public_html"</pre>
<p>Si lo hemos instalado compilando a través de las sources, no hay problema, se recompila y ya está. Pero si lo hemos instalado por RPM requiere un trabajo distinto. Es necesario bajar las sources del RPM y editarlas con los parámetros que queramos, luego se compila el nuevo RPM y ya podemos instalarlo.</p>
<p>En este caso se trata un Apache con suEXEC en RHEL 6 e instalado por RPM así que nos bajamos las sources de Apache correspondientes:</p>
<pre># curl -O ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/httpd-2.2.15-15.el6_2.1.src.rpm</pre>
<p>Desempaquetamos el RPM, Si el usuario mockbuild no existe veréis un montón de avisos y las sources se guardarán en la home de root en lugar de en src:</p>
<pre># rpm -Uvh httpd-2.2.15-15.el6_2.1.src.rpm</pre>
<p>Ahora tenemos que editar el fichero <strong>httpd.spec</strong>:</p>
<pre># vi /root/rpmbuild/SPECS/httpd.spec</pre>
<p>En nuestro caso queremos cambiar el AP_DOC_ROOT o contentdir, que es la ruta raíz en la que vamos a alojar el contenido de los websites:</p>
<pre>%define contentdir /var/www</pre>
<p>Modificamos a la ruta correcta:</p>
<pre>%define contentdir /www</pre>
<p>Para que al hacer el upgrade no nos diga que la versión ya está instalada, también podemos cambiar el número de versión:</p>
<pre>Release: 15%{?dist}.3</pre>
<p>Es necesario para volver a compilar el rpm el paquete <strong>rpm-build</strong>, también necesitaréis las sources de ciertas dependencias, lo veréis según vayáis haciendo el trabajo:</p>
<pre># yum install rpm-build
# yum install libselinux-devel openssl-devel</pre>
<p>Recompilamos el RPM:</p>
<pre># rpmbuild -bb /root/rpmbuild/SPECS/httpd.spec</pre>
<p>Una vez terminado ya tenemos los RPM listos para instalar en <strong>/root/rpmbuild/RPMS/x86_64</strong>:</p>
<pre>-rw-r--r--. 1 root root 3229796 Feb 21 06:26 httpd-2.2.15-15.el6.1.x86_64.rpm
-rw-r--r--. 1 root root  156508 Feb 21 06:26 httpd-devel-2.2.15-15.el6.1.x86_64.rpm
-rw-r--r--. 1 root root  128945 Feb 21 06:26 httpd-tools-2.2.15-15.el6.1.x86_64.rpm
-rw-r--r--. 1 root root  403246 Feb 21 06:26 mod_ssl-2.2.15-15.el6.1.x86_64.rpm</pre>
<pre># rpm -Uvh *rpm</pre>
<p>Reiniciamos apache y:</p>
<pre># suexec -V
 -D AP_DOC_ROOT="/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="apache"
 -D AP_LOG_EXEC="/var/log/httpd/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=500
 -D AP_USERDIR_SUFFIX="public_html"</pre>
<p>Por supuesto podéis cambiar el resto de valores del mismo modo si fuera necesario.</p>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/apache-permitir-acceso-a-un-directorio-con-autenticacion-para-una-ip-cidr/" title="Apache: permitir acceso a un directorio con autenticación para una IP / CIDR">Apache: permitir acceso a un directorio con autenticación para una IP / CIDR</a></li><li><a href="http://rm-rf.es/instalacion-y-configuracion-de-mod_security/" title="Instalación y configuración de Mod_Security">Instalación y configuración de Mod_Security</a></li><li><a href="http://rm-rf.es/instalar-y-utilizar-apache-jmeter-sin-gui/" title="Instalar y utilizar Apache JMeter sin GUI">Instalar y utilizar Apache JMeter sin GUI</a></li><li><a href="http://rm-rf.es/instalar-la-ultima-version-de-postgresql-por-rpm-yum/" title="Instalar la última versión de postgreSQL por RPM / YUM">Instalar la última versión de postgreSQL por RPM / YUM</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/cambiar-el-ap_doc_root-en-suexec-instalado-por-rpm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pasos para activar WebDAV en Apache (mod_dav)</title>
		<link>http://rm-rf.es/pasos-para-activar-webdav-en-apache-mod_dav/</link>
		<comments>http://rm-rf.es/pasos-para-activar-webdav-en-apache-mod_dav/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 08:28:47 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[webDAV]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=2454</guid>
		<description><![CDATA[El objetivo de WebDAV es hacer de la World Wide Web un medio legible y editable, en línea con la visión original de Tim Berners-Lee. Este protocolo proporciona funcionalidades para crear, cambiar y mover documentos en un servidor remoto (típicamente un servidor web). Esto se utiliza sobre todo para permitir la edición de los documentos [...]]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="http://rm-rf.es/wp-content/uploads/2011/08/apache.jpg" alt="Apache" title="Apache" width="150" height="149" class="size-full wp-image-2132" /><br />
<blockquote>El objetivo de WebDAV es hacer de la <a title="World Wide Web" href="http://es.wikipedia.org/wiki/World_Wide_Web">World Wide Web</a> un medio legible <em>y</em> editable, en línea con la visión original de <a title="Tim Berners-Lee" href="http://es.wikipedia.org/wiki/Tim_Berners-Lee">Tim Berners-Lee</a>. Este protocolo proporciona funcionalidades para crear, cambiar y mover documentos en un servidor remoto (típicamente un servidor web). Esto se utiliza sobre todo para permitir la edición de los documentos que sirve un servidor web, pero puede también aplicarse a sistemas de almacenamiento generales basados en web, que pueden ser accedidos desde cualquier lugar. La mayoría de los sistemas operativos modernos proporcionan soporte para WebDAV, haciendo que los ficheros de un servidor WebDAV aparezcan como almacenados en un <a title="Directorio" href="http://es.wikipedia.org/wiki/Directorio">directorio</a> local.</p>
<p style="text-align: right;"><a href="http://es.wikipedia.org/wiki/WebDAV" target="_blank">Definición de WebDAV en Wikipedia</a></p>
</blockquote>
<h3>Preparación/instalación</h3>
<p>Vamos a ver los pasos (sencillos) para <strong>activar WebDAV en Apache</strong>. Lo primero que hay que verificar es que el módulo mod_dav está cargado, ya sea de forma estática o dinámica. Normalmente cuando instalamos Apache por gestor de paquetes viene cargado de forma dinámica en el fichero httpd.conf:</p>
<pre>Loadmodule dav_module modules/libdav.so</pre>
<p>Si por contra <a title="Cómo compilar Apache y PHP en Linux" href="http://rm-rf.es/como-compilar-apache-php-linux/" target="_blank">compilamos Apache manualmente</a> podemos decidir si compilarlo estáticamente o dinámicamente (como hemos visto antes). Para hacerlo estáticamente añadiremos la directiva correspondiente a la línea de compilación y podremos ver si está cargado con el comando:</p>
<pre># httpd -l</pre>
<p>Otra opción es instalar el paquete por yum/apt/pkg si el paquete está disponible en un repositorio.</p>
<h3>Configuración</h3>
<p>Lo primero que tenemos que hacer es <strong>activar el soporte para WebDAV</strong> a nivel general de Apache, para ello añadiremos la siguiente línea en el fichero httpd.conf. Podemos restringirlo a nivel de &lt;Directory&gt; o &lt;Location&gt;:</p>
<pre>Dav On</pre>
<p>Además de esto, debemos especificar la <strong>base de datos de bloqueos (Lock Database)</strong> en la sección global de la configuración del httpd.conf:</p>
<pre>DavLockDB /etc/apache/var/DavLock</pre>
<p>Este directorio debe tener permisos de escritura para el usuario y grupo que ejecuta el servidor Apache.</p>
<p>El resultado final sería el siguiente, en este ejemplo activamos WebDAV en una ubicación (/webdav) únicamente para usuarios autenticados (admin) configurados con <a title="Generar fichero htpasswd desde línea de comandos" href="http://rm-rf.es/generar-fichero-htpasswd-desde-linea-de-comandos/" target="_blank">htpasswd</a></p>
<pre>DavLockDB /usr/local/apache2/var/DavLock
&lt;Location /webdav&gt;
   Dav On

   AuthType Basic
   AuthName DAV
   AuthUserFile user.passwd

   &lt;LimitExcept GET OPTIONS&gt;
     require user admin
   &lt;/LimitExcept&gt;
&lt;/Location&gt;</pre>
<p>Estas mismas directivas (a excepción del DavLockDB) podríamos añadirlas dentro de un virtualhost.</p>
<h3>Conectar al WebDAV</h3>
<p>Muchos sistemas soportan acceso a WebDAV de forma nativa. No obstante, en Linux podéis usar <strong>cadaver</strong> sobre línea de comandos:</p>
<pre>$ cadaver http://dav.test.com/webdav/
...
...
dav:/webdav/&gt;</pre>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/instalar-y-utilizar-apache-jmeter-sin-gui/" title="Instalar y utilizar Apache JMeter sin GUI">Instalar y utilizar Apache JMeter sin GUI</a></li><li><a href="http://rm-rf.es/apache-permitir-acceso-a-un-directorio-con-autenticacion-para-una-ip-cidr/" title="Apache: permitir acceso a un directorio con autenticación para una IP / CIDR">Apache: permitir acceso a un directorio con autenticación para una IP / CIDR</a></li><li><a href="http://rm-rf.es/sslcertificatefile-file-certificado-crt-does-not-exist-or-empty/" title="SSLCertificateFile: file certificado.crt does not exist or empty">SSLCertificateFile: file certificado.crt does not exist or empty</a></li><li><a href="http://rm-rf.es/reverseproxy-en-apache-con-ssl/" title="ReverseProxy en Apache con SSL">ReverseProxy en Apache con SSL</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/pasos-para-activar-webdav-en-apache-mod_dav/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mod_fcgid: HTTP request length 132147(so far) exceeds MaxRequestLen (131072)</title>
		<link>http://rm-rf.es/mod_fcgid-http-request-length-132147so-far-exceeds-maxrequestlen-131072/</link>
		<comments>http://rm-rf.es/mod_fcgid-http-request-length-132147so-far-exceeds-maxrequestlen-131072/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 10:18:25 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[lighttpd]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=2170</guid>
		<description><![CDATA[Si utilizas Apache + FastCGI y no has modificado los parámetros por defecto de configuración de fasctcgi es probable que si intentas hacer upload de ciertos ficheros cuyo tamaño no sea muy pequeño recibas un error como este en el log: [Tue Aug 30 12:05:13 2011] [warn] [client XX.XX.XXX.XX] mod_fcgid: HTTP request length 132147 (so [...]]]></description>
			<content:encoded><![CDATA[<p>Si utilizas <strong>Apache + FastCGI</strong> y no has modificado los parámetros por defecto de configuración de fasctcgi es probable que si intentas hacer upload de ciertos ficheros cuyo tamaño no sea muy pequeño recibas un error como este en el log:</p>
<pre>[Tue Aug 30 12:05:13 2011] [warn] [client XX.XX.XXX.XX] mod_fcgid: HTTP request length 132147 (so far) exceeds MaxRequestLen (131072)</pre>
<p><strong>FastCGI</strong> está bloqueando la subida del fichero debido a su tamaño. Los límites iniciales de la directiva <strong>MaxRequestLen</strong> son muy bajos por defecto (131072), así que conviene ampliarlos para evitar este tipo de errores, por ejemplo a 15MB. Esta directiva la añadimos dentro del fichero php.conf (en la carpeta conf/ de apache) y sino dentro del IfModule correspondiente a fastcgi:</p>
<pre>&lt;IfModule mod_fcgid.c&gt;
MaxRequestLen 15728640
...
...
&lt;/IfModule&gt;</pre>
<p><a title="Apache: diferencia entre reiniciar con ‘restart’ y ‘graceful’" href="http://rm-rf.es/apache-diferencia-entre-reiniciar-con-restart-y-graceful/">Reiniciamos apache</a> y listo. Hay que tener en cuenta que esto mismo puede suceder también en servidores con <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 y FastCGI</a>.</p>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/instalar-y-utilizar-apache-jmeter-sin-gui/" title="Instalar y utilizar Apache JMeter sin GUI">Instalar y utilizar Apache JMeter sin GUI</a></li><li><a href="http://rm-rf.es/apache-permitir-acceso-a-un-directorio-con-autenticacion-para-una-ip-cidr/" title="Apache: permitir acceso a un directorio con autenticación para una IP / CIDR">Apache: permitir acceso a un directorio con autenticación para una IP / CIDR</a></li><li><a href="http://rm-rf.es/sslcertificatefile-file-certificado-crt-does-not-exist-or-empty/" title="SSLCertificateFile: file certificado.crt does not exist or empty">SSLCertificateFile: file certificado.crt does not exist or empty</a></li><li><a href="http://rm-rf.es/reverseproxy-en-apache-con-ssl/" title="ReverseProxy en Apache con SSL">ReverseProxy en Apache con SSL</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/mod_fcgid-http-request-length-132147so-far-exceeds-maxrequestlen-131072/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache: diferencia entre reiniciar con &#8216;restart&#8217; y &#8216;graceful&#8217;</title>
		<link>http://rm-rf.es/apache-diferencia-entre-reiniciar-con-restart-y-graceful/</link>
		<comments>http://rm-rf.es/apache-diferencia-entre-reiniciar-con-restart-y-graceful/#comments</comments>
		<pubDate>Sun, 14 Aug 2011 18:31:59 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[servidor web]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=2131</guid>
		<description><![CDATA[Vamos a ver las principales diferencias a la hora de reiniciar un servidor web Apache mediante /etc/init.d/httpd restart y /etc/init.d/httpd graceful . Reinicio con restart # apachectl -k restart # /etc/init.d/httpd restart Esta forma de reiniciar el servidor web es lo mismo que enviar una señal HUP a los procesos httpd (enviar señales a un [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-2132" style="margin-left: 20px; margin-right: 20px;" title="Apache" src="http://rm-rf.es/wp-content/uploads/2011/08/apache.jpg" alt="Apache" width="150" height="149" align="right" />Vamos a ver las principales diferencias a la hora de reiniciar un <strong>servidor web Apache</strong> mediante</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/etc/init.d/httpd restart</div></div>
<p>y</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/etc/init.d/httpd graceful</div></div>
<p>.</p>
<h3>Reinicio con restart</h3>
<pre># apachectl -k restart</pre>
<pre># /etc/init.d/httpd restart</pre>
<p>Esta forma de reiniciar el servidor web es lo mismo que enviar una señal HUP a los procesos httpd (<a title="Linux: enviar señales a un proceso con el comando kill" href="http://rm-rf.es/linux-enviar-senales-a-un-proceso-con-el-comando-kill/">enviar señales a un proceso</a>). Básicamente lo que hace es:</p>
<ol>
<li>Solicitar la finalización de los procesos con la señal <strong>TERM</strong> a los procesos child (hijos) y eliminar el proceso padre</li>
<li>Se vuelven a leer los ficheros de configuración y se abren los ficheros de log. Las estadísticas de <a title="Apache: Activar httpd fullstatus" href="http://rm-rf.es/apache-activar-httpd-fullstatus/">mod_status</a> se reinician</li>
<li>Se genera el proceso padre y a partir de él los nuevos procesos hijos</li>
</ol>
<p>Como podéis ver, hay parada de servicio. Puede llegar a ser mínima pero hay un momento en el que no hay ningún proceso httpd para servir peticiones web.</p>
<h3>Reinicio con graceful</h3>
<pre># apachectl -k graceful</pre>
<pre># /etc/init.d/httpd graceful</pre>
<p>Esta forma de reiniciar Apache hace que se envíe una señal</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">USR1</div></div>
<p>, lo cual hace que en lugar de reiniciar todos los procesos hijos de vez, el proceso padre permite que cada uno de los child termine de servir la petición web antes de morir. El proceso sería el siguiente:</p>
<ol>
<li>Enviamos la señal <strong>USR1</strong> o graceful</li>
<li>El proceso padre indica a los hijos que mueran una vez finalizada la petición que estén sirviendo</li>
<li>El proceso padre vuelve a leer los ficheros de configuración y abrir los logs</li>
<li>Los procesos hijos van terminando de servir las peticiones y el padre los va sustituyendo por nuevos (que ya tienen cargada la nueva configuración)</li>
</ol>
<p>Cara a mod_status, módulo que sirve para controlar el estado del servidor web, Apache no habrá sido reiniciado, mantendrá todas sus estadísticas y mostrará con una G los threads que están sirviendo previos al reinicio graceful.</p>
<p>&nbsp;</p>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/informacion-apache-linea-de-comandos/" title="Información sobre apache desde línea de comandos ">Información sobre apache desde línea de comandos </a></li><li><a href="http://rm-rf.es/instalar-y-utilizar-apache-jmeter-sin-gui/" title="Instalar y utilizar Apache JMeter sin GUI">Instalar y utilizar Apache JMeter sin GUI</a></li><li><a href="http://rm-rf.es/apache-permitir-acceso-a-un-directorio-con-autenticacion-para-una-ip-cidr/" title="Apache: permitir acceso a un directorio con autenticación para una IP / CIDR">Apache: permitir acceso a un directorio con autenticación para una IP / CIDR</a></li><li><a href="http://rm-rf.es/sslcertificatefile-file-certificado-crt-does-not-exist-or-empty/" title="SSLCertificateFile: file certificado.crt does not exist or empty">SSLCertificateFile: file certificado.crt does not exist or empty</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/apache-diferencia-entre-reiniciar-con-restart-y-graceful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache: cómo hacer debug de mod_rewrite</title>
		<link>http://rm-rf.es/apache-como-hacer-debug-de-mod_rewrite/</link>
		<comments>http://rm-rf.es/apache-como-hacer-debug-de-mod_rewrite/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 11:47:00 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[Mod_Rewrite]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=1836</guid>
		<description><![CDATA[El módulo de Apache mod_rewrite tiene la opción de activar un modo debug o de registro de errores que puede ser de gran utilidad cuando tenemos algún problema con la creación de urls amigables o cualquier tipo uso que le demos a mod_rewrite. La implantación es simple, únicamente tenemos que especificar en el fichero de [...]]]></description>
			<content:encoded><![CDATA[<p>El <strong>módulo de <a title="Apache" href="http://rm-rf.es/sobre/apache/">Apache</a> mod_rewrite</strong> tiene la opción de activar un modo <strong>debug</strong> o de registro de errores que puede ser de gran utilidad cuando tenemos algún problema con la creación de urls amigables o cualquier tipo uso que le demos a mod_rewrite.</p>
<p>La implantación es simple, únicamente tenemos que especificar en el fichero de configuración de Apache httpd.conf la ruta hacia el log y el nivel de debug que queremos aplicar, que va de 0 (sin debug) a 9 (máximo debug). Se recomienda configurarlo con el valor 3 ya que siendo superior puede provocar alto uso de recursos:</p>
<pre>RewriteLog "/usr/local/apache/logs/rewrite.log"
RewriteLogLevel 3</pre>
<p>Es recomendable también activarlo únicamente para el virtualhost que lo necesitemos (si tenemos varios sitios web en el mismo servidor) o incluso a nivel de directorio con la directiva Directory. Reiniciamos Apache y comenzará a volcarse la información sobre dicho log.</p>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/isapi-rewrite-alternativa-a-mod-rewrite-en-iis/" title="ISAPI Rewrite: Alternativa a Mod Rewrite en IIS">ISAPI Rewrite: Alternativa a Mod Rewrite en IIS</a></li><li><a href="http://rm-rf.es/activar-debug-para-asp-en-iis7/" title="Activar DEBUG para ASP en IIS7">Activar DEBUG para ASP en IIS7</a></li><li><a href="http://rm-rf.es/instalar-y-utilizar-apache-jmeter-sin-gui/" title="Instalar y utilizar Apache JMeter sin GUI">Instalar y utilizar Apache JMeter sin GUI</a></li><li><a href="http://rm-rf.es/debug-de-procesos-en-solaris-con-truss/" title="Debug de procesos en Solaris con Truss">Debug de procesos en Solaris con Truss</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/apache-como-hacer-debug-de-mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[error] (28)No space left on device: mod_python: Failed to create global mutex</title>
		<link>http://rm-rf.es/error-28no-space-left-on-device-mod_python-failed-to-create-global-mutex/</link>
		<comments>http://rm-rf.es/error-28no-space-left-on-device-mod_python-failed-to-create-global-mutex/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 06:59:11 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://rm-rf.es/?p=1828</guid>
		<description><![CDATA[Ayer en un servidor Apache con mod_python me encontré con este error: [Thu Jun 02 21:43:19 2011] [error] (28)No space left on device: mod_python: Failed to create global mutex 1 of 4 (/tmp/mpmtx280211). Configuration Failed Lo primero que hice por lógica fue mirar lo siguiente: Mirar que el disco tuviera espacio libre (df -h). Mirar [...]]]></description>
			<content:encoded><![CDATA[<p>Ayer en un servidor Apache con mod_python me encontré con este error:</p>
<p><strong><em>[Thu Jun 02 21:43:19 2011] [error] (28)No space left on device: mod_python: Failed to create global mutex 1 of 4 (/tmp/mpmtx280211).<br />
Configuration Failed<br />
</em></strong></p>
<p>Lo primero que hice por lógica fue mirar lo siguiente:</p>
<ol>
<li>Mirar que el disco tuviera espacio libre (<em>df -h</em>).</li>
<li>Mirar que el disco no estuviera al 100% en inodos (<em>df -i</em>).</li>
<li>Mirar que ningún log de Apache hubiera llegado a los 2.0GB de tamaño.</li>
</ol>
<p>Ninguna de las tres cosas era cierta y seguía teniendo el problema. Hace ya un par de años tuve un problema similar en Apache y estaba relacionado con los semáforos del Kernel:<a title="Apache: Semget: No space left on device" href="http://rm-rf.es/apache-semget-no-space-left-on-device/"> Apache: Semget: No space left on device</a>. Esa vez la solución que ofrecía era vaciar el array de semáforos. En este caso vamos  <a href="http://www.eth0.us/python-mutex" target="_blank">solucionarlo</a> de otro modo, <strong>ampliando los valores de Kernel para los semáforos</strong>. Actualmente tenía los siguientes:</p>
<pre># cat /proc/sys/kernel/sem
250	32000	32	128</pre>
<p>Los ampliamos y reiniciamos Apache:</p>
<pre># echo "kernel.sem = 512 32000 100 512" &gt;&gt; /etc/sysctl.conf
# sysctl -p
# /etc/init.d/httpd restart</pre>
<p>&nbsp;</p>
<h4  class="related_post_title">También te puede interesar:</h4><ul class="related_post"><li><a href="http://rm-rf.es/instalar-y-utilizar-apache-jmeter-sin-gui/" title="Instalar y utilizar Apache JMeter sin GUI">Instalar y utilizar Apache JMeter sin GUI</a></li><li><a href="http://rm-rf.es/apache-permitir-acceso-a-un-directorio-con-autenticacion-para-una-ip-cidr/" title="Apache: permitir acceso a un directorio con autenticación para una IP / CIDR">Apache: permitir acceso a un directorio con autenticación para una IP / CIDR</a></li><li><a href="http://rm-rf.es/sslcertificatefile-file-certificado-crt-does-not-exist-or-empty/" title="SSLCertificateFile: file certificado.crt does not exist or empty">SSLCertificateFile: file certificado.crt does not exist or empty</a></li><li><a href="http://rm-rf.es/reverseproxy-en-apache-con-ssl/" title="ReverseProxy en Apache con SSL">ReverseProxy en Apache con SSL</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://rm-rf.es/error-28no-space-left-on-device-mod_python-failed-to-create-global-mutex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

