Instalar GNU social¶
Prerequisitos¶
Seleccionar una rama¶
GNU social tiene tres ramas distintas de desarrollo, ofreciendo así un rango de posibilidades entre la estabilidad y las nuevas características.
- 1.2.x
- Esta es la rama estable actual. El código ha sido probado durante un tiempo.
- master
master
recibe actualizaciones frecuentes y usualmente funciona bien.- nightly
nightly
es la que más se actualiza pero no siempre funciona.
Cuando se descarga el código fuente en Ponerlo en marcha será necesario saber que rama se quiere instalar. Siempre se puede pasar de una rama a otra más estable, pero no está garantizado que funcione al hacerlo a la inversa.
Si se quiere usar Qvitter — este es el plugin que hace que GNU social se parezca a Twitter — hay que saber que está testeado solo con la rama nightly. Si se prueba con una rama distinta y no funciona correctamente, es recomendable actualizar a nightly.
Configuración del servidor web¶
Siempre deberia usarse HTTPS para cifrar las comunicaciones con el nodo GNU social. Hasta hace poco costaba dinero conseguir un certificado «confiable» pero desde que Let’s Encrypt salió, es muy fácil conseguir un certificado sin ningún coste.
Si estás pensando en empezar la instalación con HTTP y cambiar a la instalación cifrada más adelante, no lo hagas. Es probable que hayan problemas de federación.
Si se quiere usar Qvitter, hay que tener en cuenta que solo soporta instalaciones que estén instaladas directamente en el dominio. Esto es, que la URL para acceder a GNU social sea https://www.some.domain/
y no https://some.domain/gnusocial/
. Además se requiere tener las Fancy URLs (URLs Bonitas) activadas. Si se usa Apache eso significa que se necesitará mod_rewrite y la posiblidad de usar ficheros .htaccess
.
Módulos PHP¶
Los siguientes paquetes son necesarios para que GNU social funcione correctamente.
- PHP 5.5+
- En versiones más nuevas, algunas funciones puede que estén desactivadas por defecto, como por ejemplo la familia
pcntl_*
. Véase la sección Usando el Demonio de Colas. - MariaDB 5+
- GNU social usa, por defecto, MariaDB para el almacenamiento de datos. Tanto las versiones 5.x como las 10.x funcionan correctamente. También es posible usar MySQL 5.5+.
- Servidor Web
- Apache, lighttpd y nginx funcionan correctamente. Se recomienda el modo CGI y también alguna variante de “suexec” (o una configuración adecuada de php-fpm pool) Nota: mod_rewrite o su equivalente es extremadamente útil.
Tu instalación PHP debe incluir al menos las siguientes extensiones PHP para una configuración funcional de GNU social:
- openssl
- (compilado en Debian, habilitado manualmente en Arch Linux)
- php5-curl
- Para coger archivos por HTTP.
- php5-gd
- Para manipulación de imágenes (escalado).
- php5-gmp
- Para firmas Salmon (parte de OStatus).
- pgp5-intl
- Soporte de internacionalización
- php5-json
- Para búsquedas de WebFinger (hola@ejemplo.com) y más.
- php5-mysqlnd
- El driver nativo de PHP5 para conexiones MariaDB. Si se usa MySQL, deberian valer
php5-mysql
ophp5-mysqli
.
Los paquetes mencionados arriba son los nombres que tienen en paquetes basados en Debian. En el caso de Arch Linux, PHP es compilado con soporte para la mayoria de las extensiones, pero requieren de activación manual en el archivo php.ini
(básicamente php5-gmp
).
Mejor rendimiento¶
Para algunas funcionalidades, harán falta además las siguientes extensiones:
- opcache
- Mejora mucho el rendimiento. Está incluido en PHP, debe ser activado manualmente en
php.ini
para la mayoría de distribuciones. Hay que buscar y activar al menos lo siguiente:opcache.enable=1
- mailparse
- Para parsear eficientemente las direcciones de correos hace falta esta extensión. La publicación por correo o por SMS lo usa.
- sphinx
- Un cliente pra el servidor Sphinx, una alternativa a la búsqueda completa de MySQL o PostgreSQL. También se necesitará un servidor Sphinx para servir las consultas de las búquedas.
- gettext
- Para múltiples idiomas. Está por defecto en muchas instalaciones; se emulará si no está presente.
- exif
- Para la orienteación correcta de las miniaturas de las imágenes
Puede que se experiencie mejor rendimiento si se configura un cache/acelerador para PHP. La mayoria de distribuciones tienen soporte para «opcache». Se puede activar en php.ini
, dónde está documentado junto a sus ajustes.
Instalación¶
Ponerlo en marcha¶
Instalar los componentes básicos de GNU social es relativamente fácil, sobretodo si previamente ya se ha preinstalado los paquetes PHP y MariaDB.
- El código fuente es distribuido mediante un repositorio git en en el servidor Gitlab de GNU. Hay dos formas de descargarlo:
- Usando git en el ordenador para clonar el repositorio. Una vez descargado es fácil ir descargando las actualizaciones incrementalmente.
- Se puede descargar un archivo comprimido de la interfaz web de Gitlab. De este modo no se necesita git pero se necesitará descargar todo el código cada vez que se actualice.
Si se quiere usar git, hay que ejecutar la siguiente orden. Descargará todo el repositorio y lo colocará en un directorio llamado
gnusocial
.git clone https://git.gnu.io/gnu/gnu-social.git gnusocial
Entonces, hay que seleccionar la rama que se desea usar:
cd gnusocial git checkout master # or '1.2.x' or 'nightly'Si se quiere descargar el código directamente, hay que ir a las ramas 1.2.x, master o nightly de la página de Gitlab. Arriba a la derecha, en la esquina, hay un botón para descargar un archivo comprimido que contenga esa rama. Si se presiona en la flecha hacia abajo se podrá acceder a distintos tipos de archivo.
Por hacer
Poner link a los enlaces
Hay que descomprimir el archivo tar que se ha descargado, normalmente, una orden como la siguiente funcionará:
tar zxf gnu-social-*.tar.gz…que hará un subdirectorio en el directorio actual. (Si no se tiene acceso por terminal al servidor, se puede descomprimir el archivo en el ordenador local y luego subir los archivos al servidor por FTP.)
- Independientemente de como se haya descargado GNU social, hay que mover los ficheros del directorio en el que se ha descargado al directorio del servidor web. Usualmente, algo como lo siguiente funcionará:
Para un repositorio git:
cd gnusocial mkdir /var/www/gnusocial cp -rv * /var/www/gnusocialPara un archivo comprimido descargado:
mv gnu-social-x.y.z /var/www/gnusocialEsto hará que el nodo GNU social sea accesible al servidor web en la ruta
gnusocial
del servidor, comohttp://example.net/gnusocial
. «social» o «blog» puede que sean buenos nombres para una ruta. Si se tiene conocimientos para configurar un virtual host en el servidor web, se puede intentar configurar uno para que sea tipohttp://social.example.net
(recordemos que será necesario para usarqvitter
).Si se tiene soporte para «rewrite» en el servidor web (que se deberia), se puede activar para poder hacer un uso completo de GNU social. Esto activará las URL Bonitas (Fancy URLs) (o URL bonitas).
Hay que hacer el servidor Web tenga permisos de escritura en el directorio objetivo, hay que tener en cuenta que esto hará que los usuarios tengan acceso al directorio y hay que securizar el servidor, lo cual no se tocará en este documento.
chmod a+w /var/www/gnusocial/
En algunos sistemas, esto funciona como una alternativa más segura:
chgrp www-data /var/www/gnusocial/ chmod g+w /var/www/gnusocial/Si el servidor Web usa algún otro usuario que no sea
www-data
, hay que probar el grupo por defecto del usuario. Como último recurso, se puede crear un nuevo grupo tipognusocial
y añadir el usuario del servidor web al grupo.
Se deberia dar permisos de escritura al usuario del servidor Web en los subdirectorios
avatar
yfile
. La forma insegura de hacer esto es:chmod a+w /var/www/gnusocial/avatar chmod a+w /var/www/gnusocial/file
También se puede hacer que solo el grupo del servidor Web tenga permisos de escritura en los directorios, como se ve arriba.
Hay que crear una base de datos en la que se guardaran los datos de la página. Algo así deberia funcionar (se preguntará una contraseña para la base de datos):
mysqladmin -u "root" -p create socia
GNU social debe tener su propia base de datos, no deberia compartir esta con otros programas. Se le puede poner el nombre que se quiera, por eso.
(Si no se tiene acceso por terminal al servidor, puede que se necesite una herramienta como phpMyAdmin para crear la base de datos. Hay que comprobar la documentación del servicio de hosting para ver como crear una base de datos.)
Hay que crear una nueva cuenta para la base de datos que usará GNU social para acceder. Si se tiene acceso por terminal, probablemente lo siguiente funcione en la terminal de MariaDB:
GRANT ALL on social.* TO 'social'@'localhost' IDENTIFIED BY 'agoodpassword';
Deberia cambiarse el identificadorsocial
y la contraseñaagoodpassword
por otro nombre de usuario y una contraseña. Una vez hecho, hay que comprobar que se puede iniciar sesión en la terminal de MariaDB con este nuevo usuario.
En un navegador, hay que introducir la ruta del script de instalación de GNU social, algo como:
https://social.example.net/install.php
Hay que introducir la información de la base de datos y el nombre de la web. El programa de instalación hará la configuración inicial y creará las tablas de la base de datos.
- Ahora deberia ser posible dirigirse a la página principal y ver la «Línea Temporal Pública», que probablemente estará vacía. Ahora se pueden registrar nuevos usuarios, publicar noticias, editar el perfil, etc.
URL Bonitas (Fancy URLs)¶
Por defecto, GNU social usará las URLs incluyendo el nombre del programa PHP en el. Por ejemplo, la página de perfil de un usuario puede encontrarse en cualquiera de estas direcciones, dependiendo del servidor web y sus posiblidades:
https://social.example.net/index.php/fred
https://social.example.net/index.php?p=fred
Es posible configurar el servidor web para usar URLs bonitas para que se parezcan a esto:
https://social.example.net/fred
Estas «URLs bonitas» son más fáciles de recordar y de leer para las usuarias. Para usarlas, hay que tener Apache 2.x con .htaccess
y mod_rewrite activados o saber como configurar la «redirección de direcciones» en el servidor (como lighttpd o nginx).
- Véanse las instrucciones para los distintos servidores web:
- Para Apache, hay que inspeccionar el archivo
htacces.sample
y guardarlo como.htaccess
después de hacer las modificaciones necesarias. Este archivo está muy documentado.- Para usar lighttpd, hay que inspeccionar el archivo
lighttpd.conf.example
y aplicar los cambios apropiados en el virtualhost que se use en el servidor web.- Para usar nginx, hay que inspeccionar el archivo
nginx.conf.sample
y aplicar los cambios apropiados en el virtualhost que se use en el servidor.- Para otros servidores web, aceptamos gustosamente contribuciones de configuraciones de ejemplo.
Asimiendo que el servidor web está configurado apropiadamente y que tiene los cambios aplicados (hay que recordar que hay que recargar los servicios), se puede añadir esto al archivo
config.php
de GNU social:$config['site']['fancy'] = true;
Ahora deberia ser posible navegar usando las URLs bonitas en el servidor, como por ejemplo:
https://social.example.net/main/register
Temas¶
Ahora mismo, respecto al tema de la web solo se puede cambiar algunas hojas de estilo CSS y algunos archivos de imágenes; no se puede cambiar el HTML, como añadir o quitar menus, sin la ayuda de algún plugin.
Se puede escoger un tema usando el elemento $config['site']['theme']
en el archivo config.php
. Más abajo saldran más detalles.
Se puede añadir un tema propio creando un sub-directorio en el directorio “theme” con el nombre del tema. Cada tema tiene los siguientes archivos:
- display.css
- un archivo CSS2 para el estilo por defecto en todos los navegadores.
- logo.png
- la imagen del logo de la web.
- default-avatar-profile.png
- una imagen de un píxel de 96x96 para usar como avatar en los nuevos usuarios o los que no quieren usar el suyo propio.
- default-avatar-stream.png
- Lo mismo, pero de 48x48. Para el flujo de publicaciones.
- default-avatar-mini.png
- Lo mismo, pero de 24x24. Para las subscripciones que salen en las páginas de perfiles.
Es recomendable empezar copiando todos los ficheros del tema por defecto al propio.
Privado¶
Un nodo GNU social puede ser configurado como «privado», lo que significa que no federará con otros servidores de la red. No es recomendable usar este método por que en este estado, no se garantiza que no puedan haber fugas de información (lo que para los servidores públicos puedan ser características buenas, en los servidores privados pueden verse como errores).
En cualquier caso, los nodos privados son una forma sencilla de crear rápidamente un grupo de colaboración o para compartir imágenes, o crear una comunidad pequeña en la que la federación no es necesaria. Además, es posible cambiar más adelante esta opción y ganar todas las ventajas de la federación.
El acceso a los archivos adjuntos puede restringirse a los usuarios que hayan iniciado sesión:
Hay que crear un directorio fuera del servidor web raiz en el que guardar los archivos subidos. Se puede usar esta orden como orientación para hacerlo:
mkdir /var/www/gnusocial-files
Ahora hay que hacer que el usuario del servidor web tenga permisos de escritura en ese directorio. Una manera insegura de hacerlo es la siguiente (para hacerlo como debe hacerse, habria que leer sobre los permisos de archivo en sistemas UNIX y configurar el servidor web de acuerdo con ellos):
chmod a+x /var/www/gnusocial-files
Hay que decirle a GNU social que use este directorio para subir los archivos. Hay que añadir una linea como la siguiente en el fichero
config.php
:$config['attachments']['dir'] = '/var/www/gnusocial-files';
Características extra¶
Sphinx¶
Para usar un servidor Sphinx para que busque usuarios y publicaciones, se necesita habilitar el plugin SphinxSearch. Hay que añadir en archivo config.php
:
addPlugin('SphinxSearch');
$config['sphinx']['server'] = 'searchhost.local';
Además de lo anterior, hay que instalar compilar y habilitar la extension pecl de sphinx para php en el lado cliente, el cual depende de los archivos de desarrollo de sphinx.
Véase plugins/SphinxSearch/README
para más detales y configuración del servidor.
SMS¶
StatusNet soporta un sistema cutre y sucio para enviar mensajes de actualización a los teléfonos móviles y para recibir actualizaciones desde estos. En vez de enviar a través de la red de SMS, que es caro y requiere compra a las compañías inalámbricas, simplemente se envia a través de pasarelas de correo electrónico que muchas compañías proporcionan a sus clientes. Por lo tanto, la configuración de SMS es esencialmente configuración de correo electrónico.
Cada usuario envia correos a una dirección de correo inventada, que se mantiene en secreto y se usará como contraseña. Los correos que se reciban que tengan el «DE» del correo electrónico del usuario y el «A» el correo inventado y secreto, se convertiran en una publicación y se guardaran en la base de datos.
Para que esto funcione, debe haber algún dominio subdominio al que se envien todos los correos electrónicos y que pueda pasar el filtro.
Hay que ejecutar el script SQL
carrier.sql
en la instalación StatusNet. Esto normalmente funciona:mysql -u "statusnetuser" --password="statusnetpassword" statusnet < db/carrier.sql
Esto poblará la base de datos con una lista de operadores telefónicos que soportan la pasarela de correo electrónico a SMS.
Hay que asegurarse de que
maildaemon.php
es ejecutable:chmod +x scripts/maildaemon.php
Hay que tener en cuenta que «daemon» es un nombre poco acertado; el script es más un filtro que un demonio.
Hay que editar
/etc/aliases
en el servidor de correo y añadir la siguiente linea:*: /path/to/statusnet/scripts/maildaemon.php
Hay que ejecutar el código que apropiado para actualizar la base de datos de
aliases
. Para muchos servidores de correos (Postfix, Exim, Sendmail) esto deberia funcionar:newaliases
Puede que sea necesario reiniciar el servidor de correo para que la nueva base de datos se tenga en cuenta.
Hay que definir lo siguiente en el archivo
config.php
:$config['mail']['domain'] = 'yourdomain.example.net';
Después de la instalación¶
Ejecutar queue daemons¶
Por defecto GNU social intenta, de forma regular, comunicarse con los servidores remotos mientras maneja las peticiones de los usuarios. Esto es a menudo insuficiente. Es posible que se necesite ejecutar el demonio de colas. Véase la siguiente sección: Usando el Demonio de Colas.
Copias de seguridad¶
No hay ningún sistema incorporado para hacer copias de seguridad en GNU social. Se pueden hacer copias del sistema usado haciendo copias de la base de datos y del directorio web raiz. Para hacer una copia de la base de datos se puede usar mysqldump y para hacer una copia del directorio de la Web, se puede usar tar.
Actualizando¶
Actualizar está fuertemente recomendado para estar al dia con las actualizaciones de seguridad y con las nuevas características. Para instruciones de como actualizar, véase esta sección: Actualizando la instalación.