Instalar Menéame desde cero (parte I)
Prólogo
No puedo comenzar estos artículos sin mostrar algo de empatía por la situación actual de Menéame. Desde su creación y desde mi intención de crear un sitio web similar, he visto cómo se han puesto infinidad de obstáculos en el camino de desarrollo de Menéame, algunos muy difíciles de apartar (denuncias de partidos políticos o incluso petición de cantidades económicas por el uso de imágenes con derechos de autor) y con un futuro algo incierto con la posible caída de una de las mayores tormentas que puede destruir a este y otros agregadores de "temas interesantes para tod@s". Si ya de por si hay que estar programando y corrigiendo los errores del código fuente (y muchas veces a cargo de un solo programador), descorazonador creo que es la palabra que más se ajusta a enfrentarse periódicamente a graves denuncias, al canon AEDE y sin ser una multimillonaria empresa.
Estos tutoriales sobre cómo hacer funcionar el código de Menéame, ya los tenía escritos hace bastante tiempo cuando intenté hacer (e hice) un sitio similar. Recuerdo que me costó mucho tiempo poner la web en pie y, lamentablemente, la dejé en el olvido porque no llegó a ser una de mis prioridades (aunque sigo creyendo que hubiera tenido éxito). Hoy vuelvo a recuperar y compartir con vosotros esos tutoriales que ahora mismo estás leyendo. El problema es que como ha pasado tanto tiempo y menéame ha hecho varias actualizaciones, he tenido que comprobar todo otra vez desde cero y reescribir de nuevo los artículos.
Y efectivamente, las nuevas versiones del código de Menéame generan otros y complejos errores :-(
Sobre Menéame, en su día, ya escribí un par de artículos para iniciarse en ese sitio web, aunque ahora que ha pasado el tiempo y soy un usuario de participación recurrente, me importa un comino el karma y "solo rezo" porque esta absurda ley de la tasa Google no llegue a hacer desaparecer este gran e importante proyecto en España. Aparte de todo lo que concierne a su modo de funcionamiento, tienes a tu disposición nada más y nada menos que el ¡código fuente! Yo pensé que el código sería una versión antigua, pero me sorprendí al ver que está colgado en un directorio subversion y que es actualizado periódicamente. ¡IM-presionante! Pero lo que más me llama la atención es que el código está siendo actualizado por una o dos personas (en una reciente entrevista Ricardo Galli aseguró que Menéame era mantenido por 5 personas). Él mismo 'contrató' sobre 2010 al programador César Rodas para la implantación de Haanga en Menéame que además es también de código abierto y lo puedes utilizar en tu web.
Comparado con otras alternativas para la creación de webs, sinceramente me quedo un poco sorprendido. Piensa, por ejemplo, cuánta gente está detrás de un CMS como Joomla!: desarrollo del CMS, miles de desarrolladores de extensiones y componentes, incluso existe un equipo de búsqueda de bugs y seguridad etc...
Código de menéame
El código fuente de menéame está liberado bajo licencia Affero GPL. Hacer funcionar el código de menéame NO es nada sencillo y verás que lleva bastante trabajo.
En un principio iba a escribir 11 tutoriales, pero el undécimo quedó sin terminar debido a que no continué el desarrollo de la web. Lo peor de todo es que el hosting caducó y al no poder acceder al Panel de Control, no he podido extraer algunos datos que hice en las pruebas, pero bueno, creo que estos diez artículos te podrán orientar. Estaban escritos inicialmente para la versión 4 de Menéame con la cual trabajé, pero los he tenido que reescribir para la versión 5.
Hoy empezaremos a ver su instalación desde cero en un entorno local. Yo lo voy a hacer en XAMPP y con Windows, ya que quiero tener un sitio de desarrollo y pruebas. Las herramientas necesarias antes de comenzar son las siguientes:
- XAMPP: El entorno local de trabajo que usaré bajo Windows y
- Un editor de texto para modificar el código. Yo voy a usar Eclipse que aparte de editor me servirá como depurador.
Ejecuta XAMPP y activa MySQL y Apache.
Archivos de menéame
Descargar menéame
Puedes descargarlo desde su web oficial, aquí: Descargar código fuente de menéame. Descarga la última versión. Para este tutorial yo descargo la versión 5 revisión 4300 pulsando en el icono de descarga 1:
Descargarás un archivo comprimido posiblemente con un nombre similar a este: meneame-version5.r4300.tar.gz. Ese archivo, si lo descomprimes varias veces, verás que contiene finalmente 4 carpetas:
- jabber
- scripts
- sql 2
- www
Copiar los archivos www
Lo primero que vamos a hacer es crear una carpeta en el directorio htdocs de XAMPP (carpeta creada: karmanyMNM). Después, dentro de esa carpeta, vas a pegar todos los archivos que hay en www. Para que no te pierdas, te dejo una instantánea de cómo debe quedar:
Archivo de configuración config.php
Este archivo está en el directorio www, como puedes ver en la imagen sobre estas líneas. Este archivo es muy importante ya que contiene muchas variables globales como son el nombre de la base de datos, password, usuario, rutas etc... Si lo abres y empiezas a modificarlo no hay ningún problema, pero es posible que en futuras versiones necesites modificar el archivo config.php con alguna nueva mejora, tendrás que sobreescribirlo y entonces te tocará hacerlo de nuevo todo a mano. Para evitar esta gran pérdida de tiempo e inconvenientes, puedes crear un nuevo archivo que sobreescribirá las distintas variables del archivo config.php.
Si abres y observas al final del todo del archivo config.php, verás el siguiente código:
@include($_SERVER['SERVER_NAME'].'-local.php');
Con ese dato, simplemente depuro con Eclipse, me paro en la primera instrucción del archivo index.php y uso las Expresiones (Expressions):
Como ves, el resultado del nombre del archivo es:
localhost-local.php
Así que creo un archivo llamado localhost-local.php (al lado de config.php) y dentro de él escribo (solo para empezar) lo siguiente:
<?php
$globals['site_name'] = 'Menéame desde karmany.NET';
$globals['db_server'] = 'localhost';
$globals['db_name'] = 'basedatoskarmanymnm';
$globals['db_user'] = 'root';
$globals['db_password'] = '';
?>
Son parámetros muy sencillos. Nombre de la base de datos: basedatoskarmanyMNM, usuario: root... Aunque todavía no existe la base de datos. Lo guardo con codificación UTF-8. En este caso y con XAMPP, nuestra nueva web se va a encontrar en la dirección:
localhost/karmanyMNM
Si ahora, en tu navegador te diriges ahí, verás que te muestra el siguiente mensaje (posiblemente en versiones anteriores a la 5 de Menéame):
error temporal (Unknown database 'basedatoskarmanymnm')
¡Vamos muy bien! Ese mensaje significa que ha reconocido nuestro nuevo archivo localhost-local.php y además nos indica que la base de datos basedatoskarmanymnm es desconocida.
- Si no te aparece ese mensaje y muestra el contenido del archivo PHP, es posible que debas modificar una directiva. Aquí se explica lo que debes hacer.
- Si la pantalla del navegador se queda blanca o muestra otros errores, puedes modificar el reporte de errores. Yo lo dejo, de momento, así: "error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT" y la pantalla se queda en blanco con la versión 5 de Menéame (no aparece ese error temporal). Como en la versión 4 el problema era la conexión con la base de datos, voy a suponer que es el mismo problema.
Base de datos
Crear la base de datos y rellenarla
Yo creo que no hace falta explicar cómo crear una base de datos desde phpMyAdmin. Creo una base de datos llamada: basedatoskarmanymnm. Esta totalmente vacía, ¿cómo se rellena? Ahora tendremos que dirigirnos a la carpeta sql 2 (ver más arriba el 2 en el apartado "Descargar Menéame") de la descarga del código fuente. Si abres esa carpeta (sql) verás que existen 3 archivos:
- categories.sql
- meneame.sql
- subs.sql
Dichos archivos generan en la base de datos las tablas, campos y demás operaciones basándose en sentencias SQL. Para evitar errores de claves foráneas, importa los 3 siguiendo este orden: subs, meneame, categories. Para importar estos archivos puedes hacerlo en phpMyAdmin de 2 formas. Primero te sitúas en la base de datos y:
- Pulsas el botón importar y seleccionas los archivos o
- Abres en tu editor cada uno de los 3 archivos, copias todo el contenido y lo pegas en la pestaña SQL de phpMyAdmin
Una vez que hayas importado los 3 archivos, examina la base de datos a ver si ahora está completa. Verifica también si los 3 archivos han sido correctamente importados observando algún detalle del código SQL: por ejemplo en meneame.sql veo que existe:
CREATE TABLE 'annotations'
Y observo (en estructura) que efectivamente se ha creado una tabla llamada annotations. ¿Nos atrevemos? Voy a ver desde el navegador si ya funciona nuestra web (localhost/karmanyMNM) y observo el siguiente panorama:
Vamos a corregir estos 2 errores, pero por hoy basta, será en el siguiente tutorial...