Posts etiquetados ‘friendica’

Instalando Friendica…

Publicado: diciembre 16, 2011 en Server, System
Etiquetas:, , , ,
¿Qué es friendica?
¿Te imaginas una red social en la que puedas seguir a tus contactos, aunque estén en otras redes? Todas tus conversaciones de Facebook, Diaspora, Identi.ca, correos, RSS, étc. tenerlos en una misma línea de tiempo, pudiendo agrupar contactos, controlar la privacidad de las publicaciones, tener múltiples perfiles…
Una red donde tus publicaciones son tuyas. Tus imágenes son tuyas. Y, tus imágenes privadas, son realmente privadas.
Descentralizada, libre, federada (con StatusNet, GnuSocial, Diaspora… ), extensible y gratuita. Eso es friendica.
Dispone de varios conectores para publicar a la vez en WordPress, Posterous, StatusNet, Twitter y Tumblr.
Para hacernos una idea de las características principares, podemos echar un ojo a esta comparativa.
Podemos usar cualquier servidor de friendica existente, aunque, podemos realizar una instalación y controlar todavía más nuestros contenidos. Éstos estarían en nuestro PC. Aunque apaguemos el equipo, las publicaciones podrían ser comentadas por contactos que no se encuentren en nuestro servidor. Al encender, se actualizarán estos comentarios.
Instalación de friendica
Necesitaremos un dominio. En este tutorial, la instalación está preparada para http, con lo que uno de no-ip, por ejemplo, sería suficiente. Tened en cuenta que, una vez instalado con un dominio concreto, ya no hay marcha atrás. Todavía no es posible realizar un cambio del mismo y, si lo hacemos, nuestros usuarios perderían la conexión con el resto de contactos.
Instalamos el software necesario php, mysql y Apache.
# pacman -S apache php-apache php php-gd php-mcrypt mysq
Envío de correo:
Necesitamos poder enviar correos. Para ello usaremos msmtp, un cliente smpt con una excelente compatibilidad con sendmail.
# pacman -S msmtp
Editamos el archivo /etc/msmtprc y configuramos nuestra cuenta con la que enviar los correos:
# Accounts will inherit settings from this section
defaults
auth             on
tls              on
#tls_trust_file   /usr/share/ca-certificates/mozilla/Thawte_Premium_Server_CA.crt
tls_trust_file /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt
# A first gmail address
account        gmail
host           smtp.gmail.com
port           587
from           <tucuenta>@gamil.com
user           <tucuenta>@gmail.com
password       <tupass>

#second
account yahoo
host smtp.correo.yahoo.es
port 25
from <tucuenta>@yahoo.es
user <tuusuario>
auth on
auth plain
tls off
password <tupass>
# Set a default account
account default : gmail 
Editamos /etc/mail.rc y añadimos al final:
set sendmail=/usr/bin/msmtp
Probamos si funciona:
Creamos un fichero, test.mail, con el siguiente contenido:
To: <username>@domain.com 
From: username@gmail.com 
Subject: A test Yadda, yadda, yadda.
Ejecutamos:
$ cat test.mail | msmtp -a default <username>@domain.com
Debería llegarnos un correo a <username>@domain.com.
Editamos el arhivo /etc/php/php.ini, buscamos la cadena sendmail_path y ponemos:
sendmail_path =”/usr/bin/msmtp -t “
 
Configuración de PHP:
Ahora, vamos a configurar las extensiones necesarias para friendica:
extension=curl.so
extension=gd.so
extension=gettext.so
extension=iconv.so
extension=imap.so
extension=json.so
extension=mcrypt.so
extension=mysqli.so
extension=mysql.so
extension=openssl.so
En el bloque [date], buscamos la clave date.timezone y ajustamos los valores, seǵun esta lista. Por ejemplo, para Madrid:
 
date.timezone = “Europe/Madrid”
date.default_latitude = 40.416126
date.default_longitude = -3.696706
 
Creación de la Base de Datos:
Después de esto, vamos a lanzar MySql y a crear una base de datos y un usuario para manejarla:
1.- Lanzamos del daemon de mysql:
# systemctl start mysqld.service2.- Configuramos la BBDD: 
     # mysql_secure_installation

     # systemctl restart mysqld.service
3.- Nos conectamos como root a mysql:  
     $ mysql -uroot -p
4.- Creamos la BBDD:
     CREATE DATABASE friendica;
5.- Creamos un usuario con privilegios desde localhost para friendica: 
GRANT ALL PRIVILEGES ON friendica.* TO ‘adminfriendica’@’localhost’ IDENTIFIED BY ‘clave’ WITH GRANT OPTION;
5.- Actualizamos los permisos:
     FLUSH PRIVILEGES;
6.- Cerramos sesión: 
     exit
 
Configuración de Apache:
Editamos el archivo /etc/httpd/conf/httpd.conf, y comentamos la línea LoadModule unique_id_module modules/mod_unique_id.so, poniendo una # delante.
# LoadModule unique_id_module modules/mod_unique_id.so
Al final del bloque de módulos, añadimos:
#configuración PHP
LoadModule php5_module modules/libphp5.so
Include conf/extra/php5_module.conf
Descomentamos la línea MIMEMagicFile conf/magic, quitando la #, y nos aseguramos que la línea TypesConfig conf/mime.types, dentro del bloque <IfModule mime_module> está descomentada también.
Descomentamos la línea Include conf/extra/httpd-vhosts.conf .
Una vez hecho esto, editamos el archivo /etc/httpd/conf/extra/httpd-vhosts.conf y añadimos nuestro servidor virtual para friendica:
<VirtualHost *:80>
ServerAdmin email@ejemplo.com
DocumentRoot “/srv/friendica”
ServerName ejemplo.com
    ErrorLog “/var/log/httpd/error_log”
CustomLog “/var/log/httpd/access_log” common
<Directory “/srv/friendica”>
DirectoryIndex index.php
AllowOverride All
Options All
Order allow,deny
Allow from all
php_admin_value open_basedir “/srv/:/tmp/:/srv/friendica/:./”
</Directory>
</VirtualHost>
Ya tenemos el acceso por el puerto 80. Ahora necesitamos habiliar el puerto 443 para tener acceso por HTTPS:En el archivo /etc/httpd/conf/httpd.conf, descomentar la línea:

Include conf/extra/httpd-ssl.conf

Editamos el archivo conf/extra/httpd-ssl.conf y modificamos los valores según nuestra instalación:

DocumentRoot “/srv/friendica”
ServerName http://www.example.com:443
ServerAdmin you@example.com


…..

 <Directory “/srv/friendica”>
DirectoryIndex index.php
AllowOverride All
Options All
Order allow,deny
Allow from all
php_admin_value open_basedir “/srv/:/tmp/:/srv/friendica/:./”
</Directory>

</VirtualHost>

Sustituyendo email@ejemplo.com y ejemplo.com por los valores correctos.Creamos el certificado (si es autofirmado):

# cd /etc/httpd/conf 

# openssl genrsa -des3 -out server.key 1024 
# openssl req -new -key server.key -out server.csr 
# cp server.key server.key.org 
# openssl rsa -in server.key.org -out server.key 
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt 

Instalación de la aplicación

Ejecutamos:

sudo git clone https://github.com/friendica/friendica.git /srv/friendica
cd /srv/friendica
sudo touch .htconfig.php
sudo chmod 777 .htconfig.php
Iniciamos apache
# systemctl restart mysqld.service
# systemctl start httpd.service
Visitamos nuestro sitio web con nuestro navegador preferido, si vamos a usar un certificado autofirmado: http://ejemplo.com. En caso de que el cerficado esté firmado por alguna agencia, accederemos con https://ejemplo.com.
Se lanzará el proceso de instalación, pidiéndonos el email del usuario administrador, y los parámetros para conectar con la base de datos creada:
Una vez finalizada la instalación, se nos pedirá que registremos un usuario, para lo cual, usaremos el email del administrador. Nos dirigiremos a la sección Admin->módulos y marcaremos el Poor Man Cron, además de todos aquellos que queramos tener en nuestro sitio web.
Toda la configuración de Friendica se hace desde la sección “Admin”, de una forma muy intuitiva.
Cuando hayamos terminado la configuración, no olvidar proteger el archivo de configuración:
 
sudo chmod 755 /srv/friendica/.htconfig.php
Para realizar actualizaciones, bastará con ejecutar:
cd /srv/friendica
sudo git pull
cd addon
sudo git pull
Añadimos los servicios al /etc/rc.conf para que se lancen automáticamente en el inicio:

# systemctl enable mysqld.service
# systemctl enable httpd.service


NOTA: Antes de añadir contactos, revisad, con una simple prueba que todo está correcto:
Publicad el perfil de vuestro usuario recién creado en el directorio global. Si, al visitar el directorio global, éste no se ha publicado, la comunicación con vuestro servidor está fallando. Es posible que tengáis el puerto 80 filtrado. Os recomiendo echar un ojo a este artículo. Una vez que podáis publicar vuestro usuario en el directorio global, podréis ir añadiendo vuestros contactos de las demás redes.


Enlaces de Interés: