No estás usando esta distribución?

Selecciona una versión o distribución diferente

GNU Social (unificado con el proyecto StatusNet,​ anteriormente Laconica) es un servidor de microblogueo de software libre escrito en PHP que implementa el estándar Ostatus y ActivityPub para interactuar entre distintas instalaciones.

A la par que ofrece una funcionalidad similar a Twitter, GNU Social busca proporcionar el potencial para una comunicación abierta, inter-servicios y distribuida entre comunidades de microblogueo. Empresas e individuos pueden instalar y controlar sus propios servicios y datos.

Bueno, esto es lo que nos dice la madre Wikipedia. Pero para resumir utilizando otro lenguaje podríamos decir que GNU Social es una red social parecida a Twitter, -«el Twitter bueno» que dirían algunos- y bueno, tenía este post en el tintero a medias -porque me fallaba una cosa, pero ya está resuelta- así que vamos a pasar a la acción y vamos a explicar todo el proceso.

Preparando el ecosistema

Antes de ponernos directamente con la instalación tenemos que tener en cuenta que hay que tener un servidor web preparado para que GNU Social funcione correctamente.

Así que tendremos un servidor web que puede ser Apache, LigHTTPS o Nginx, en este tutorial utilizaremos Nginx. También es necesario tener un servidor de Bases de Datos que puede ser MariaDB.

Y finalmente, tendremos que tener PHP instalado, en esta ocasión, usaremos PHP 7.4 que es la versión que trae Debian 11 por defecto. Aún así, tendremos que tener en cuenta que hay que instalar estos módulos de PHP:

apt install php7.4-fpm php7.4-curl php7.4-gd php7.4-gmp php7.4-intl php7.4-json php7.4-mysqlnd php7.4-xmlwriter php7.4-mbstring php7.4-bcmath

Instalación LAMP

Para poder instalar LEMP en Debian 11, deberéis de seguir estas instrucciones de este tutorial:

Instalación de servidor web LEMP en Debian 11
A continuación vamos a instalar un servidor LEMP completo en Debian GNU/Linux 11 «Bullseye» (Stable). Hay algunas cosas que han cambiado respecto a otras versiones de Debian, y es que por ejemplo Debian 11 trae en sus repositorios PHP 7.4.

Configuración de Nginx

Lo primero que haremos será configurar la configuración de Nginx necesaria para acceder con nuestro dominio.

Tened en cuenta que es recomendable configurar un FPM personalizado como hemos realizado en la configuración de más abajo, por lo que sugerimos configurarlo de la siguiente forma:

Cómo configura PHP-FPM con Nginx
PHP-FPM es una implementación de PHP con algunas características adicionales a FastCGI. Generalmente el uso de PHP-FPM se suele dar en sitios web con mucho tráfico. La principal ventaja de usar PHP-FPM es que utiliza mucha menos memoria y CPU en comparación otro método de ejecución de PHP.

Creamos el siguiente fichero /etc/nginx/sites-available/gnusocial.conf con el siguiente contenido:

server {
  listen 80;
  server_name dominio.es;
  root /var/www/html/vhost/dominio.es/www/public;
  rewrite ^ https://$server_name$request_uri? permanent;

  # PHP
  location ~ \.php {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php7.4-fpm-gnu.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
  }

  # Location
  location / {
    try_files $uri $uri/ @gnusocial;
  }

  # Fancy URLs
  location @gnusocial {
    rewrite ^(.*)$ /index.php?p=$1 last;
  }

  # Restrict access that is unnecessary anyway
  location ~ /\.(ht|git) {
    deny all;
  }
}
📢
Recordad que tenéis que modificar dominio.es por vuestro domino que queréis configurar.
mkdir -p /var/www/html/vhost/dominio.es/{logs,www}

Y activamos la configuración de nuestra web y recargamos Apache2:

ln -s /etc/nginx/sites-available/gnusocial.conf /etc/nginx/sites-enabled/gnusocial.conf
systemctl reload nginx

Creación de la base de datos

Creamos una base de datos y un usuario con privilegios siguiendo este tutorial adantándolo a nuestras necesidades:

Crear base de datos y usuario con privilegios en MySQL/MariaDB
En el siguiente tutorial vamos ha explicar como crear una base de datos y un usuario para asignar permisos totales a esa base de datos. Acceder a MySQL/MariaDB Para gestionar bases de datos o usuarios, deberemos de acceder a la shell de MySQL/MariaDB. Existen programas como phpMyAdmin de
CREATE DATABASE gnusocial;
CREATE USER 'gnusersocial'@'localhost' IDENTIFIED BY 'supermegapass';
GRANT ALL ON gnusocial.* TO 'gnusersocial'@'localhost';
FLUSH PRIVILEGES;

Configuramos certificado SSL

Para esto utilizaremos Let's Encrypt para generar un certificado, tan sólo tenéis que seguir este otro tutorial:

Cómo utilizar Certbot para configurar un SSL de Let’s Encrypt en GNU/Linux
Certbot es una maravillosa herramienta que puedes utilizar para generar un certificado SSL con Let’s Encrypt e instalarlo y configurar automáticamente en tu servidor web.

Descargar GNU Social

Ahora vamos a descargar los ficheros de GNU Social desde el mismo Git -y lo haremos directamente en /var/www/html/vhost/dominio.es/www:

git clone https://notabug.org/diogo/gnu-social.git

Movemos el contenido de la carpeta gnu-social a la ruta que toca:

mv gnu-social/* .
mv gnu-social/.* .

Y ponemos los permisos y usuarios correctos:

chown www-data.www-data -R *

Añadimos permisos de escritura:

chmod a+w /var/www/html/vhost/dominio.es/www

Una vez configurado todo esto, ya podremos acceder con nuestro navegador a midominio/install.php, pero antes, tenemos que configurar la base de datos.

Es posible que aparezca algún error de que no ha podido crear un directorio, de ser así, lo creamos manualmente:

mkdir -p /var/www/html/vhost/dominio.es/www/file/avatar
chown www-data.www-data -R /var/www/html/vhost/dominio.es/www/file

Instalación de nodo GNU Social

Accedemos a nuestra instalación desde el navegador a dominio.es/install.php y rellenamos los campos que nos piden:

chmod a+w /var/www/html/vhost/dominio.es/www/avatar
chmod a+w /var/www/html/vhost/dominio.es/www/file

Y finalmente, eliminamos el fichero de la instalación:

rm -rf /var/www/html/vhost/dominio.es/www/public/install.php
Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación