Un vistazo al blog engine Habari

De vez en cuando me gusta echar un vistazo a proyectos minoritarios o poco conocidos de software libre, es el caso de Habari, un proyecto de blog engine, creado en 2006, y que hasta ahora no había oído hablar.

Habari_Project_logo_as_of_April_2013

Sobre Habari

Se trata de un proyecto comunitario de software libre y open source, liberado utilizando una licencia Apache, escrito en PHP, y que puede funcionar con diferentes motores de base de datos, ya que MySQL, SQLite o PostgreSQL. Su nombre proviene de la palabra del idioma Swahili, en castellano suajili, que viene a decir “cuál es la noticia”.  Su intención es crear una plataforma moderna de blogging, su foco está en utilizar tecnologia moderna, como PHP 5, programación orientada a objetos y soporte a los últimos estándares. Su última versión estable es del 2014 con la versión 0.9.2

Caracaterísticas principales:

  • Es modular, orientado a objetos y extensible.
  • Soporta diferentes motores de bases de datos.
  • Especialmente preparado para evitar ataques de inyección SQL.
  • Facilita conexión a proyectos de almacenamiento de contenidos como Flickr.
  • Soporta el protocolo Atom.
  • Soporte para multiusuarios.
  • Se pueden crear multiples sitios con una sóla instalación.
  • Permite utilizar páginas estáticas.
  • Se pueden ampliar sus funciones mediante plugins.
  • Soporte para etiquetas.
  • Tenemos un importador disponible para WordPress.

Laboratorio de pruebas

Ya sabéis que me gusta trastear con los productos que aparecen en la web. He montado un pequeño VPS y he instalado un servidor LEMP con PHP, Nginx y MySQL, sobre un servidor Debian Jessie 8.3  Vamos un poco al lío, primero instalamos el servidor web:

Primer actualizamos el sistema y los repositorios:

  1. apt-get -y update
  2. apt-get -y upgrade

Instalamos el servidor web nginx

  1. apt-get -y install nginx
  2. #Lo encendemos
  3. systemctl startx nginx 
  4. #Lo añadimos en el arranque del sistema
  5. systemctl enable nginx

Editamos el fichero de configuración por defecto, comentando la línea correspondiente:

  1. nano /etc/nginx/sites-available/default
  2. #Comentamos la siguiente linea:
  3. #listen [::]:80 default_server;

Reiniciamos el servicio:

  1. systemctl restart nginx
  2. #o
  3. service nginx restart

Ahora ya podemos instalar el motor de base de datos MySQL

  1. apt-get -y install mysql

Utilizamos el script de seguridad:

  1. mysql_secure_installation

Reiniciamos y habilitamos al inicio el motor:

  1. systemctl enable mysql
  2. systemctl restart mysql

Instalamos los módulos de PHP, fpm y mysql

  1. apt-get install php5-fpm php5-mysql

Reiniciamos y con esto ya tendremos el servidor LEMP listo para funcionar.

  1. systemctl restart nginx

Una vez ya hemos intalado el servidor web, vamos primero a crear la base de datos que utilizaremos más adelante:

  1. #Accedemos al motor
  2. mysql -u root -p
  3.  
  4. #Creamos la base de datos
  5.  
  6. create database habaridb;
  7. Query OK, 1 row affected (0.00 sec)
  8.  
  9. grant all privileges on habaridb.* to habariusuario@localhost identified by 'contraseña';
  10. Query OK, 0 rows affected (0.00 sec)
  11.  
  12. flush privileges;
  13. Query OK, 0 rows affected (0.00 sec)
  14.  
  15. exit
  16. Bye

Ahora que ya tenemos creada la base de datos, descargaremos la última versión del proyecto, también instalaremos el programa zip, que necesitaremos para descomprimir el fichero.

  1. apt-get -y install zip
  2. cd /tmp
  3. wget http://habariproject.org/dist/habari-0.9.2.zip

Descomprimimos el fichero y lo movemos a la carpeta de proyectos web:

  1. mkdir -p /var/www/html/habari
  2. unzip habari-0.9.2.zip -d /var/www/html/habari/

Modificamos los permisos de la carpeta:

  1. chown -R www-data: /var/www/html/habari/

Creamos y editamos el fichero de configuración del proyecto:

  1. nano /etc/nginx/sites-available/habari
  2.  
  3. # Y añadimos el contenido:
  4.  
  5. server {
  6.     server_name nombredominio.com;
  7.  
  8.     access_log /var/log/nginx/nombredominio.com-access.log;
  9.     error_log /var/log/nginx/nombredominios.com-error.log;
  10.     root /var/www/html/habari;
  11.  
  12.     location / {
  13.         index index.php;
  14.         try_files $uri $uri/ /index.php$is_args$args;
  15.     }
  16.  
  17.     location ~ \.php$ {
  18.         include /etc/nginx/fastcgi_params;
  19.         fastcgi_pass unix:/var/run/php5-fpm.sock;
  20.         fastcgi_index index.php;
  21.         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  22.     }
  23. }

Al hacer esto guardamos y pasamos a crear el enlace simbólico para que la web esté disponible:

  1. ln -s /etc/nginx/sites-available/habari /etc/nginx/sites-enabled/

Reinciamos el servicio con ‘service nginx restart‘ y accedemos al dominio o IP del servidor

Instalación web

A partir de aquí pasamos a realizar la instalación vía interfaz web, lo primer de todo será añadir los datos de la base de datos que hemos creado anteriormente:

Configurar base de datos Habari

Configurar base de datos Habari

Al hacer esto pasamos al siguiente paso que es configurar el nombre de dominio, las credenciales del usuario administrador y su correo:

Nombre dominio y credenciales administrador para Habari

Nombre dominio y credenciales administrador para Habari

En la instalación podemos seleccionar tres temas diferentes, yo he escogido el primero:

Selección tema Habari

Selección tema Habari

Por último la selección de plugins, en mi caso he dejado los que vienen marcados por defecto:

Selección de plugins para Habari

Selección de plugins para Habari

Con esto ya lo tenemos listo, y podemos ver la página web ya creada:

Aspecto página web creada con Habari

Aspecto página web creada con Habari

Lo vamos a dejar aquí, podéis visitar su página web, la página web de su Wiki

Espero que os haya parecido interesante! Nos leemos en la próxima 😉

Notas:

He conocido el proyecto a partir de un noticia en LXer