Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Redes sociales verticales open source

Imago voragine.net
• Por

Las redes sociales verticales o redes sociales de nicho son aquellas que están limitadas a un contexto temático, geográfico... Suelen ser cerradas, accesibles bajo registro. Academia.edu para académicos, Github para programadores, Doximity para médicos y otros profesionales de la salud en Estados Unidos.

Estamos montando la infraestructura de la Civic Innovation School (CIS), el entorno colaborativo de aprendizaje de Civicwise. Uno de sus espacios será una red social vertical que funcione como lugar de encuentro e intercambio de toda la red en torno a la CIS.

Queremos una solución que sea de código abierto, fácilmente accesible desde dispositivos móviles y que no requiera una inversión de trabajo muy grande para ponerla en marcha o mantenerla. A continuación algunas opciones que barajamos.

Cómo solucionar el error ‘File not found’ en WordPress Multisite funcionando con Apache 2.4 y PHP-FPM 5.6

Imago voragine.net
[actualizado el ] • Por Enlace permanente

Las instalaciones de WordPress Multisite que estén configuradas para mostrar los sitios como subdirectorios pueden dar error en un servidor funcionando con Apache 2.4 y PHP-FPM 5.6. Cuando se visita el panel de administración de cualquier sitio que no sea el principal: File not found.

Si se consulta el log de FPM se verán multitud de respuestas 404. Y si se consulta el log de Apache se encontrarán errores de este tipo: Got error 'Primary script unknown'

Para solucionarlo hay que modificar ligeramente la configuración de Apache. La siguiente línea configura la conexión con FPM:

ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/ruta/hasta/el/php5-fpm.socket.sock|fcgi://localhost/ruta/hasta/el/hroot/

Hay que añadir otra regla (antes que la anterior) para cubrir el caso de los sitios secundarios del Multisite:

ProxyPassMatch ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes)/.*\.php(/.*)?)$ unix:/ruta/hasta/el/socket.sock|fcgi://localhost/ruta/hasta/el/hroot/$2

Aunque esta solución funciona sigue arrojando los mismos errores, así que yo prefiero eliminar la configuración de FPM mediante ProxyPassMatch e incluir un handler dentro del entorno Directory. Así:

<Directory "/ruta/hasta/el/hroot">
  # otras configuraciones
   <FilesMatch \.php$>
      SetHandler "proxy:unix:/ruta/hasta/el/socket.sock|fcgi://localhost"
   </FileMarch>
</Directory>

Certificado TSL para conexión segura HTTPS con Let’s Encrypt y certbot

Imago voragine.net
[actualizado el ] • Por

Los certificados TSL permiten conectarse de manera segura a un sitio web usando el protocolo HTTPS (secure HTTP). Son conexiones seguras porque los datos que viajan desde el ordenandor del visitante hasta el servidor donde está alojado el sitio web, y viceversa, están encriptados y nadie puede inspeccionarlos.

El protocolo HTTPS encripta los datos utilizando criptografía asimétrica, que utiliza un par de claves: una pública para cifrar la información y otra privada para descifrarla. El servidor HTTPS difunde su clave pública a cualquier ordenador cliente que quiera conectarse a él, y guarda en secreto su clave privada.

El problema con la criptografía asimétrica es estar seguros de que la clave pública corresponde efectivamente al servidor al que se quiere conectar. De lo contrario existe el peligro de conectarse a un servidor que suplante al original.

Para asegurar la autenticidad de la clave pública de un servidor lo más eficaz es conocer una de las personas que gestionan el servidor, encontrarla presencialmente y que nos dé la clave. En un sistema global como internet en el se visitan servidores que están en otros continentes hubo que buscar otra manera. Es en este punto donde entran en juego las entidades de certificación: organizaciones de confianza que certifican la autenticidad de una clave pública.

Let's Encrypt es la primera entidad de certificación que emite certificados gratuitos y de manera automática. El proceso para obtener un certificado se puede hacer íntegramente desde la línea de comandos usando certbot.

Proteger archivos o directorios con contraseña en Apache

Imago voragine.net
[actualizado el ] • Por
Proteger carpetas o archivos accesibles vía HTTP con contraseña permite añadir una capa de seguridad en un servidor web. Se puede hacer usando cualquier gestor de contenidos como WordPress o Drupal de manera trivial, sin embargo hacerlo directamente usando el servidor web, Apache en este caso, evita ejecutar PHP y ahorra recursos de hardware. Esto es especialmente útil si se está intentando evitar un ataque de fuerza bruta.

Cómo lanzar una acción con jQuery cuando se acaba de redimensionar la ventana del navegador

Si se asocia una acción al evento $(window).resize() se ejecuta inmediatamente después de redimensionar la ventana. Como resultado, si se cambia el tamaño de la ventana con el ratón, la acción se lanza muchas veces.

Para lanzar una acción únicamente cuando se ha terminado de cambiar el tamaño de la ventana, es decir, cuando hemos soltado el puntero del ratón, podemos usar el siguiente snippet:

$(window).resize(function() {
   if(this.resizeTO) clearTimeout(this.resizeTO);
   this.resizeTO = setTimeout(function() {
      $(this).trigger('resizeEnd');
   }, 500);
});
$(window).bind("resizeEnd", function() {
   // Acción
});