Archivo de la etiqueta: servidor

uid y gid 4294967294 usando NFSv4

Estaba configurando mi nuevo servidor casero para que exportase ciertos directorios por NFS al resto de equipos de la red, y me encontré con que todos los ficheros y directorios tenían como uid y gid del propietario el 4294967294. Por lo visto, correspondería al usuario nobody.

Esta es la solución final que he encontrado:

  1. En /etc/default/nfs-common de ambas máquinas (servidor y cliente) poner:
    NEED_IDMAPD=yes
  2. En /etc/idmapd.conf el dominio de ambas máquinas debe coincidir:
    Domain = xxxx
  3. Nos aseguramos de que el servicio idmapd está corriendo en ambas máquinas:
    sudo service idmapd start
  4. Reiniciamos el nfsd y volvemos a montar en el cliente.

Ya está. Todo debería estar funcionando.

Cómo llegué al Proyecto Cherokee

Camiseta de CherokeeTrabajo por las mañanas, de 8:00 a 15:00, y las tardes las puedo dedicar a lo que quiera; pero estaba desperdiciando el tiempo más que nada leyendo blogs en Google Reader, aunque también me servía para aprender muchas cosas que nunca llevaba a la práctica; o pensando que tenemos muchos proyectos en mente (proyectos de negocios) que podemos hacer y que no hacemos.

Es por esto que hace unos meses le comenté a David que me gustaría involucrarme y colaborar en algún proyecto Open Source. Ya estaba harto de pensar «hay que ver lo que podría hacer y no hago nada», pero es de estas cosas que las piensas y ya las harás.

Un día me harté de mi anterior empresa de hosting (Webhostingbuzz) y decidí buscarme otra. Contraté un servidor dedicado y como me dejaban elegir el sistema operativo, les dije que un Linux a pelo y yo me encargaría de montar el servidor web.

El caso es que ya que tenía que cambiar de servidor, pensé en cambiar también de servidor web en sí y abandonar Apache, que consume bastante memoria. No sé si fue el día anterior, pero coincidió el cambio de servidor con la publicación en Barrapunto de la noticia del lanzamiento de la versión 0.8.0 de Cherokee. Ya había leído en el pasado sobre Cherokee, el servidor web libre más rápido, programado desde cero por Álvaro López Ortega, un español que trabajaba en Irlanda para Sun Microsystems.

Tengo que reconocer que al principio todo fueron problemas:

  • Para empezar, el programa se configura usando una interfaz por web, que me pareció más un estorbo que una ayuda.
  • La filosofía de funcionamiento era totalmente distinta a la que yo estaba acostumbrado en Apache. Nada ficheros .htaccess, por ejemplo.
  • No había forma de hacer andar WordPress, y me hacía falta para hacer andar este blog sobre Cherokee.

Estuve a nada de pasarme a usar Nginx, pero después de unos correos en la lista de distribución de Cherokee, y otros cuantos correos con Álvaro, me encabezoné en apoyar el proyecto de un español. Sin duda la ayuda que me dieron en la lista, y la ayuda personal que me dio Álvaro, sirvieron de mucho para decidirme a usar el programa.

Conforme iba configurando cosas, a la vez reportaba los errores que me iba encontrando tanto en el servidor en sí como en el configurador. Una cosa llevó a la otra y un día detecté un error y me puse a intentar arreglarlo yo. Después de pelearme con el C que ya lo tenía bastante oxidado, le mandé un parche a Álvaro y me ayudó a pulir un par de cosillas más.

Después de unos días ya le había enviado unos cuantos parches, y supongo que se hartó de recibir correos míos, porque me propuso el crearme una cuenta en el repositorio de Subversion donde están los fuentes del programa. Al principio le dije que no, que no me atrevía a meter la pata enviando parches yo directamente, pero insistió y me dio una cuenta. Este es el primer parche que envié yo. Aunque no empecé muy bien, porque me cargué el fichero de log de cambios por culpa del UTF-8. :D

Del parche que estoy más orgulloso es del que permite hacer funcionar perfectamente WordPress en Cherokee. El que no sea programador a lo mejor no lo entiende, pero saber que algo así funciona gracias a ti, pues la verdad, te hace sentir muy bien. ;)

En fin, poco a poco he ido colaborando, más que nada puliendo cosillas pero sobre todo APRENDIENDO. Estoy aprendiendo un montón de Python, que tenía ganas de meterle mano desde hace mucho, y ahora poco a poco voy aprendiendo. También estoy refrescando mucho mi C, que ya casi ni me acordaba; y sobre todo en técnicas de programación: se aprende mucho viendo el código de otros, y el de Cherokee a mi me parece muy bueno.

Hace unos días recibí un correo electrónico de Álvaro diciéndome que por haber colaborado bastante, desde Octality me iban a enviar una camiseta, y es la que podéis ver en la foto de esta entrada cubriendo mi pedazo de cuerpo serrano. :D La camiseta es guapísima, y me llegó también con 5 pegatinas, una de las cuales ya ha ido directamente a la parte trasera de la pantalla del portátil. :-)

Octality es la empresa que ha fundado Álvaro al dejar Sun, y se dedica a montar infraestructuras web de alto rendimiento para sitios que tengan mucho tráfico. Evidentemente sus soluciones están basadas en Cherokee, de ahí que últimamente su desarrollo esté avanzando tanto.

Así que sin haberlo planeado he hecho lo que pretendía: meterme en la comunidad de desarrollo de un proyecto Open Source, ¡y muy contento que estoy!. La última versión de Cherokee, la 0.10.0, es la más estable hasta ahora. Y se nota.

Como poner tu web o blog en modo mantenimiento

Seguro que os ha surgido la necesidad de poner vuestro blog o página web en modo mantenimiento. La idea es poder tocar los ficheros del sitio sin que los usuarios puedan acceder a ninguna parte del sitio hasta que todo esté correcto.

Yo hasta hace poco símplemente ponía un index.html que decía eso de: «En mantenimiento, perdonen las molestias», de forma que todo el que intentaba entrar en la página principal del sitio se encontraba con dicho mensaje. Eso está bien para la portada, pero ¿y el resto de páginas?, evidentemente el resto seguirá accesible si ponemos la url completa en el navegador, por ejemplo: http://misitio.com/otrapagina.html

Para solucionar este problema (en servidores que usen Apache) vamos a usar .htaccess, que es un fichero de texto que contiene una serie de directivas de Apache para configurar cómo se comportará el servidor web, permitiéndonos a los usuarios un mayor control sobre él. Buscando por Google se puede encontrar mucha información sobre .htaccess y qué podemos hacer con él. Hay incluso generadores de .htaccess.

Lo primero que vamos a hacer es crear un programa en PHP que se llame por ejemplo mantenimiento.php y cuyo contenido será el siguiente:


<?php
header("HTTP/1.1 503 Service Unavailable");
echo "En mantenimiento, perdonen las molestias";
?>

Eso lo que hace es mandar una cabecera HTTP con el código de respuesta 503 al navegador diciéndole que el servicio no está disponible actualmente, y además muestra el texto: «En mantenimiento, perdonen las molestias».

A continuación creamos un fichero .htaccess_mant con el siguiente contenido:


Options -Indexes
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteRule !mantenimiento.php /mantenimiento.php [L]
</ifmodule>

La primera línea le dice que no muestre el contenido de los directorios que no contengan un index.html o index.php. Esto es opcional, pero yo lo dejaría como medida de seguridad.

El resto de código lo que hace es decirle al Apache que a cualquier petición que hagan los visitantes, responda con el mantenimiento.php.

Ahora lo único que quedaría por hacer sería enviar el fichero mantenimiento.php al servidor web y sustituir el fichero .htaccess que tengamos en nuestro sitio por .htaccess_mant, renombrándolo a .htaccess cuando quereamos poner el sitio en modo mantenimiento. La idea es tener dos ficheros .htaccess, uno para cuando el sitio está funcionando de forma correcta, y otro para cuando queramos ponerlo en mantenimiento.

Eso es todo, espero no haberme liado mucho con la explicación y que le sirva a alguien de ayuda.