¿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.
# 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>
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>
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
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=gettext.so
extension=iconv.so
extension=imap.so
extension=imap.so
extension=json.so
extension=mcrypt.so
extension=mysqli.so
extension=mysql.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
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.service
2.- Configuramos la BBDD:
# mysql_secure_installation
# systemctl start mysqld.service
2.- Configuramos la BBDD:
# mysql_secure_installation
# systemctl restart mysqld.service
3.- Nos conectamos como root a mysql:
$ mysql -uroot -p
$ mysql -uroot -p
4.- Creamos la BBDD:
CREATE DATABASE friendica;
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;
GRANT ALL PRIVILEGES ON friendica.* TO 'adminfriendica'@'localhost' IDENTIFIED BY 'clave' WITH GRANT OPTION;
5.- Actualizamos los permisos:
FLUSH PRIVILEGES;
FLUSH PRIVILEGES;
6.- Cerramos sesión:
exit
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
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
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>
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 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>
Ejecutamos:
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 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
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 git clone https://github.com/friendica/friendica-addons.git addon
sudo touch .htconfig.php
sudo chmod 777 .htconfig.php
sudo chmod 777 .htconfig.php
Iniciamos apache
# systemctl restart mysqld.service
# systemctl start httpd.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:
- https://wiki.archlinux.org/index.php/LAMP
- friendica, guia del usuario en español
- https://github.com/friendica/friendica
- http://friendica.com/
Disculpa, quisiera consultarte, ya que trate de seguir esta guia pero a la hora de poner mi direccion de host en el navegador no pasa nada, solo busca la pagina y no encuentra nada!
ResponderEliminarEl problema de no "aparecer nada", suele ser, bien porque no puede crear el .htconfig, bien porque algo está mal y va a /srv/http, que, en archlinux está vacío. Prueba a crear un test.php en /srv/http con:
ResponderEliminarAccede a http://localhost/test.php para ver si funciona el php. Si todo va bien, mueve el test.php a /srv/friendica y accede a http://tudominio/test.php , y prueba a ver si va bien. Si todo va bien, cambia el usuario de /srv/friendica a http:
sudo chown http:http /srv/friendica
No es necesario cambiar el contenido.
Una cosilla, ¿Estás usando no-ip con redirección de puertos? Si es así, ese es el problema, no se puede usar la redirección, debes abrir el 80 y el 443 (el último es necesario sólo para diaspora)
en "con:" falta incluir el texto, pero lo toma mal, sería meter entre algo en php en el archivo para comprobar que funciona bien, sigue este ejemplo: https://wiki.archlinux.org/index.php/LAMP#PHP
ResponderEliminar