Ayer me surgió un problema mientras estaba preparando la entra anterior, “Hacer ping a buscadores en php“. Resulta que al intentar previsualizar un post, siempre me mostraba el error “Service Temporarily Unavailable“, y no me actualizaba el post.
Al principio sospeche que podía ser problema del plugin que utilizo para resaltar el código php, pero fijándome en el titulo de la ventana, y viendo que daba un código de error 503, llegue a la conclusión que seria problema con el servidor, en este caso dreamhost.
Así que lo mejor en estos casos es, aprovechando el acceso ssh, revisar los ficheros de logs del dominio, para ver si muestra algún tipo de error y si nos da muestra más información. Tenemos que editar el fichero /logs/dominio/http/error.log
$ tail error.log
Con esto vemos las últimas lineas del fichero de error. En mi caso me he encontrado con esto:
[Tue Oct 06 14:00:31 2009] [error] [client XXX.XX.XX.XX] mod_security: Access denied with code 503. Pattern match "(****|****|****|****|****|****|****|************|********|****|****|****|****|****|****|****|****|****|****|****|****|****|****)\\\\(.*\\\\)\\\\;" at **** [severity "********"] [hostname "*******"] [uri "/wp-admin/post.php"] [unique_id "*****************************"]
En resumen, lo que indica que es mod_security comprueba si se ha introducido alguna función no permitida (en mi caso fue fopen() y fwrite()). Si es así, detiene la ejecución del script y muestra el error 503.
Es un sistema de seguridad de los servidores de Dreamhost que se activa desde el panel de control del dominio:
Para evitar este error, podemos seguir los pasos que nos indica en el wiki de dreamhost sobre mod_security. Básicamente tenemos dos opciones:
- La primera es desactivar el
mod_securitysolo para nuestra ip, añadiendo el siguiente codigo al.htaccess:<ifmodule mod_security.c> SetEnvIfNoCase Remote_Addr ^XXX\.XXX\.XXX\.XXX$ MODSEC_ENABLE=Off </ifmodule>
donde XXX.XXX.XXX.XXX es nuestra ip. Esto funciona si tenemos ip fija, o estamos detrás de un router y nuestra ip es dinámica, pero no suele cambiar.
- Pero si tenemos ip dinámica, y el problema ocurre con un fichero puntual (por ejemplo al postear en un blog), podemos desactivar el mod-security para ese fichero en concreto, por ejemplo:
<ifmodule mod_security.c> SecFilterSelective REQUEST_URI "^/wp-admin/post\.php.*$" "allow,pass" </ifmodule>
Con uno de estos sencillos pasos, no debería darnos mas problemas el insertar código php, utilizando cualquier función, con el mod_security activado.

Excelente información. Espero que tengas suerte con Dreamhost porque hay muuuuchas quejas respecto a la saturación de sus servidores y las grandes limitaciones en la cuota de CPU. En este tipo de hosting siempre es imprescindible WP-Supercache activo en tu instalción de WordPress. Aún así, cuando sube el número de visitas termina cascando y produciendo el desastrosos “service temporarely unavailable” lo que te lleva a la desesperación y a “vailar” el “vaile del gilipuoyash”, como la cara que se te queda cuando te suspenden permanentemente la cuenta. No lo digo yo, sino también algunos de los blogueros míticos como wwwhatsnew. Actualizo regularmente un artículo sobre hosting que considero de total honestidad. Si alguna vez te puede resultar útil, es este: HOSTING DE CONFIANZA
Saludos y muchos éxitos con este blog.
Buenas.
Muchas gracias por el consejo. La verdad es que antes de contratar el alojamiento estuve informándome y leí acerca de los problemas que tuvieron algunos clientes con sus blogs en cuanto aumentaban las visitas.
Por ahora me va bien con algunos blogs que he alojado (tengo el wp-supercache instalado, eso si), y no he tenido muchos problemas, seguramente porque tampoco tengo muchas visitas.
Lo dicho muchas gracias por el aviso y el enlace (lo tendré en cuenta si empiezan los problemas).
Gracias.