Instalando y configurando Meneame

Hoy os voy a contar como instalar un Meneame "from scratch" (o sea, de cero). Contrariamente a otros productos basados en PHP tales como phpBB o WordPress, el código de Meneame no es demasiado tolerante a fallos, ni tampoco es muy orientativo a la hora de detectar un error en la instalación, por lo que recomiendo grandes dosis de paciencia. Por ello, te voy a dar unas pautas que te serán de bastante ayuda a la hora de instalarlo. Al final del artículo tienes una lista de posibles problemas que te pueden surgir.

Suerte y a ello. Si decides publicar este tutorial en algún lugar, lo único que te pido es que respetes la autoría del mismo y me cites como autor del mismo.

Antes de seguir, tienes una versión bastante más bonita en esta página.

Y dicho esto, empecemos:


CONSIDERACIONES INICIALES



Lo primero, dar las gracias a Ricardo Galli por haber liberado el código de Meneame. Sin su código no existiría Hoygania ni tampoco tendría razón de ser este manual. En algunas partes del tuto me muestro algo crítico con el código y con la falta de control de errores. Que ello no empañe este agradecimiento, pues cualquier codigo fuente es criticable y mejorable. Lo importante es que haya un código fuente sobre el que partir. De mejorarlo ya nos encargaremos después.


Este tutorial ha sido hecho con una versión 2 de Meneame, aunque no debería ser muy distinto con la versión 3, pues la he instalado siguiendo estos mismos pasos sin ningún problema.
 

HERRAMIENTAS EXTERNAS USADAS



El código de Meneame se apoya para funcionar en las siguientes tecnologías:

  • PHP (min 4.2, recomendable PHP 5)
  • Extensiones: gettext y gd.
  • MySQL (recomendable v5)
  • Websnapr
  • Recaptcha
  • Cron
  • htaccess (si no tienes acceso no pasa nada, todavía puedes hacer que esto funcione).
  • Función mail primitiva de PHP, para enviar los correos de alta de usuario y recuperación de contraseña.


Tendrás que estar familiarizado con ellas o al menos, saber qué hace cada una. Si al llegar aquí hay algo que te suena a chino, es el momento de dejarlo y pasar a otra cosa.

COLOCACION DE FICHEROS



El site se puede descomprimir en la carpeta raíz o en un directorio, siempre y cuando se especifique dicho directorio en el config.php.

Sobre esto hay poco que decir, salvo que te acuerdes de colocar la carpeta de scripts en un sitio donde puedas acceder a través de una url (si es que piensas activar cron).

CONFIG.PHP



Es importante dejarle quieto y crear un fichero aparte con el nombre del dominio, y sufijo "-local" cambiando los parámetros que uno quiera.

P.e. si el dominio es lolailo, tendriamos que crear "lolailo-local.php". En este fichero SOLO deben estar aquellas variables que queramos modificar. Si por un casual se te ocurre la gran idea de copiar el config.php en este nuevo fichero (muchos tutoriales que he visto de instalación de Meneame invitan a hacerlo), el sistema caerá en un bucle infinito. Para que no tengas problemas si la gente no te entra por el www, create un enlace "soft" desde tu fichero de configuracion con el nombre de www.loquesea-local.php. Asi no tendras que estar editando los dos ficheros siempre.

LOGO DEL SITIO



En config.php lo puedes cambiar.

BASE DE DATOS


Al principio el invento no tira ni con cola. Eso es por qué el sistema da por hecho que debe existir el contenido de la tabla "categories" por defecto, pero sin embargo el .sql inicial no viene cargado. ¿qué hacemos? Pues metemos categorías. Hay que tener ojo de crear al menos una categoría general y varias subcategorías en cada una de ellas.

ESTILO, COLORES Y DEMAS



Los estilos están basados en un solo color, que inicialmente es el naranja. Conviene ir a mnm4.css y mnmcol5.css y buscar el valor más repetido (el naranja elefante) y cambiarlo por el que queramos. Mucho ojo con las cajas de texto, que necesitarán un color más suave.

.commentform textarea
#genericform input

para cambiar el fondo de las cajitas de texto:

mnmcol5.css
#genericform input, .geoform input {
background: #C1FFC1;

TITULO


El title no está parametrizado, así que te saldrá "Meneame" por todos lados. Tienes dos opciones.

a) Lo cambias en todos lados (solución chapucera).
b) ya que tienes que hacer el cambio, te lo curras un poco más y declaras una nueva variable global en config.php con el nombre del site (que es como lo he hecho yo para el site Hoygania)

En cualquier sitio, tienes que localizar los do_header que hay por el código, que son los que hacen referencia a la funcion que se encarga de pintar las cabeceras en html1.php. Principalmente debes tocar:

index.php
clud.php
faq-es.php
comments_rss2.php
map.php
promote.php
shakeit.php
topstories.php
topusers.php
topcommented.php
topcomments.php
sitescloud.php
sneakme/index.php


En algunos sitios (como en Wii y DS) no está parametrizado ni siquiera con el do_header, así que tendrás que hacer también la búsqueda del title.

ELEFANTA ELI



Si no quieres ver al elefante, tendrás que tocar aquí:

libs/html1.php

WEBSNAPR



Si quieres usar Websnapr para poner las capturas de las webs enlazadas y hacer que tu nuevo site quede bien chulo, tendrás que hacer unas cuantas modificaciones. Para empezar, es muy recomendable que te des de alta en dicha web, a fin de encontrar una key que te proporcionará 100.000 impresiones gratuitas al mes.

Ahora tendrás que tocar link.php y get_link_snap.php para meter dicha key donde se hace referencia a websnapr, porque si no, no te funcionará (o lo hará solo un par de veces). La linea 474 de link.php tendrás que modificarla un poco para que te empiece a funcionar la cosa de manera fluida.

Donde pone

} elseif ($type=='full' && $globals[‘do_websnapr’] && $this->votes_enabled && $globals[‘link_id’] > 0 && !empty($this->url_title)) {

te lo fundes y lo dejas así

} else {

De esta forma conseguirás que salga en todas las situaciones.

CRON



Para que el invento de promocion de noticias tienes dos formas.

La fácil
– Ajustas cron

La complicada
– Configuras Meneame para que cuando alguien entre, mire en la agenda si tiene tareas pendientes, y que las haga.

PROBLEMAS FRECUENTES TRAS LA INSTALACION



1. Dice noseque de un Cabal

– Eso es que tienes mal puesto los datos de acceso a la base de datos en el config.php.

2. Se ve como el culo. Nada está en su sitio.

– Bueno, al menos no te da un 404, algo es algo. Eso es tema de los css. Si no tienes instalado el Meneame en un directorio web raíz, tendrás que reflejarlo en el config.php para que apunte exactamente al directorio donde están las cosas, o meterlo directamente en un site raíz.

3. Pega hostias en las líneas donde hay _().

– Tampoco es un gran problema. Eso es que tu PHP no tiene instalado gettext (eso vale para usar literales traducidos u otro por defecto).

4. Al enviar un nuevo enlace da errores en la segunda pantalla justo antes de poner la url.

– Eso es porque no funciona bien el fopen del código (la aplicación hace un fopen de la url que has metido para ver si es una redirección). Justo arriba hay un sitio donde pregunta por la versión de PHP. Directamente comenta esa parte para que no valide,o cambia la pregunta para que pregunte por PHP 9.0 😉

if(version_compare(phpversion(), '9.0.0') >= 0) {

Y te quedas más ancho que largo.

5. Cuando creo un nuevo usuario no me presenta la imagen

– No está funcionando bien Recaptcha. Aquí hay muchas opciones así que te toca investigar. Ver pregunta 10.

6. Cuando intento ir a mi página de usuario da un 404.

– Eso es porque no has configurado bien los .htaccess para que traduzca los parámetros de la url a directorios.

Si quieres colocar bien los .htaccess, pon dentro del .htaccess esto (seguramente no exista, o exista con otro contenido: machácalo):


MODO 1

RewriteEngine On
RewriteRule ^/story/(.+)$ /story.php/$1 [L,NS]
RewriteRule ^/user/(.+)$ /user.php/$1 [L,NS]
RewriteRule ^/search(/.*)$ /index.php$1 [L,NS,NE,PT]

MODO 2

RewriteEngine On
RewriteRule ^story/(.+)$ /story.php/$1 [L,NS]
RewriteRule ^user/(.+)$ /user.php/$1 [L,NS]
RewriteRule ^search(/.*)$ /index.php$1 [L,NS,NE,PT]

A mí me ha funcionado el modo 2, y parece que suele ser el que funciona cuando se trata de Hosting compartido o contratado (si tienes hosting en un equipo que no es tuyo, y trabajas con Cpanel o Plesk, casi seguro que te funcionará el caso 2).

Si te da lo mismo que la url sea "fea", entonces al final del config.php pon esto:

$globals[‘base_story_url’] = '';
$globals[‘base_search_url’] = '';
$globals[‘base_user_url’] = '';


Y arreglado!

7. Me sale: Warning: Invalid argument supplied for foreach() in libs\html1.php on line 639.

¡¡MELON!! Que tienes que meter las categorias.

8. Me sale el elefante del Meneame como favicon.

– Pues logicamente debes cambiarlo. Puedes editar el fichero favicon4.ico, o directamente cambiar las referencias en utils.php y html1.php para que apunten a tu fichero.

9. Me salen muchas líneas del tipo: Warning: preg_match() expects parameter 2 to be string, array given in libs/link.php on line 88.

– Seguramente esto sea en la funcion get o alguan de link.php parecida. Mira lo del punto 4, porque es justamente eso lo que te está pasando. El código no está mal, es sólo que al no tener control de errores y no recibir lo que espera, se mata de mala manera.

10. No funciona el captcha y no deja dar de alta cuentas nuevas

Para el recaptcha hace falta tener una cuenta y las keys metidas en el config.
Para el captcha, hay que tocar el ts.php, linea 76 y buscar:

imagettftext($image, $font_size, 0, $x, $y, $text_color, "".$this->font , $code);

y ponerle la ruta a la fuente

imagettftext($image, $font_size, 0, $x, $y, $text_color, "c:/ruta/".$this->font , $code);

Te darás cuenta de que está mal si no te saca imagen o si saca el mensaje "invalid font filename in" o algo relacionado con imagettftext. Si no te saca mensaje de error, trampea el fichero ts_image.php metiéndole un echo en medio. Con eso forzarás que la imagen a generar esté mal y saque los errores por pantalla.

11. El batch que calcula el karma (karma5) lanza errores al ejecutarse

Es posible que la tabla de links esté vacía o no se hayan generado nuevos enlaces en las últimas 24 horas.

12. Me da error cuando termina el proceso de registro de nuevo usuario y no envía el correo.

Eso es porque no tienes un servidor de correo instalado en localhost, o el servidor que usas para el envío no admite envío smtp sin validación.

ULTIMAS CONSIDERACIONES



Aunque hay muchos tutos en Internet de como configurar Meneame, la mayoría lo único que dicen es que hay que descomprimir y crear los datos para la tabla "categories", sin arrojar más información más allá de eso (que es como no decir nada). Mejor huir de esos tutoriales, o cogerlos con mucha precaución, pues seguramente esas instalaciones no tengan nada que ver con la nuestra, y no solo no nos ayudarán, sino que es posible que nos hagan editar algo incorrectamente. Cada instalación es un mundo, y Meneame depende mucho de las opciones que tengamos activadas en nuestro Apache y PHP. No hay demasiado control de errores, por lo que se puede decir que la programación de Meneame está enfocada a un entorno excesivamente óptimo, y cualquier variación de paths, versiones, mods de PHP, Apache, configuraciones o utilización puede desembocar en distintos errores difíciles de predecir. Si conoces PHP a un nivel avanzado, podrás subsanarlos tú mismo y hasta cambiar el código para que funcione de otra forma (cambiar o quitar el captcha o cambiar los cálculos de karma por ejemplo). Sin embargo, si no sabes algo de programación es posible que te atasques e incluso que decidas montar un WordPress o algo que no sea tan complicado. No es que sea muy difícil, pero te digo: hay que saber. Si no tienes mucha idea de PHP y se te atasca, mejor dedícate a otra cosa. El código no es muy intuitivo ni está escrito para noveles.

Mi consejo: intenta hacer una instalación lo más normal posible y con las opciones más básicas. Deja las florituras para el final.

En el caso de Hoygania, le he añadido más pestañas, algunas páginas más en el menú lateral de la izquierda, he cambiado la portada para que salgan tanto las noticias que están en cola como las que ya están publicadas (ya no hay que pasar por Menear Pendientes para menear las pendientes), he añadido la posibilidad de agregar una firma automáticamente en cada comentario, otro captcha nuevo en el registro de usuarios para quitar a los spammers (hay algunos spammers que ya saben como generar cuentas automaticamente en sites basados en Meneame y tienen bots para ello). Las mejoras que voy haciendo en el código las publico en este blog. Al principio empezó como una idea de un grupito de militantes de Hoygan.info para montar un sitio nuevo que no estuviera comido por el spam, y con la tontería se creó hoygan.com.es. Fue tan sencillo como comprar un .com.es para que la cosa no saliera muy cara. Por suerte el hosting no es un problema, así que me puse manos a la obra. Al principio me agarré algún cabreo que otro cuando la cosa no arrancaba, pero tras el primer traspiés inicial, los problemas me animaron a seguir hasta entender el código de Ricardo. Además, es una cosa bastante positiva leer código escrito por otros, ya que te enseña bastante sobre otras formas de programar diferentes de la tuya (es algo parecido a hacer turismo y conocer otras culturas, pero aplicado a la programación). De estas cosas siempre se aprende.

Y ya está. Si os ha gustado el tutorial, agradecería que enlazarais la web de los Hoygan desde vuestro site, y si os ha gustado mucho, un par de cañas estaría bastante bien.


Actualización: Relacionado con Meneame, también tienes disponible el Categories Manager, para gestionar las categorías de tu portal basado en Meneame.

Autor:

Alejandro Valdezate
valdezate [at] gmail (punto) com

Primera versión: Febrero 2009.
Última actualización: Septiembre 2010.
 

26 pensamientos en “Instalando y configurando Meneame

  1. Anonymous

    Antes de nada agracecerte el curro.

    Quería preguntarte si has tenido algún problema a la hora de configurar sphinx (es la primera vez que me topo con este sistema de busqueda xD).

    Más que nada lo digo por que no consta en el manual nada relacionado con dicho sistema.

    Otra vez más, gracias por todo.

    Responder
  2. Alejandro Sánchez Valdezate

    Hola Anónimo.

    Lo de Sphinx es leyenda negra. No hay documentación apenas, y en la web de Sphinx tampoco queda muy claro como funciona (es mágico y funciona solo). Meneame hace referencia a que lo usa, pero tampoco explica nada al respecto. Si el código de Meneame no lleva comentarios, el de Sphinx lo supera: es ganador directamente del concurso de código ofuscado.

    Respondiendo a tu pregunta, he conseguido que funcione, pero no lo veo ni tan mágico ni tan maravilloso. Simplemente tiene un funcionamiento un poco aleatorio, y cuando no funciona, no da error ni nada. Simplemente no va.

    En mi caso he modificado Meneame para que acepte tanto búsquedas normales como Sphinx. Para hacer 1 búsqueda al día, es preferible hacer un select where. Si fueran 1000 búsquedas al día, supongo que Sphinx sería más óptimo.

    Responder
  3. Pedro

    Hola Alejandro.
    Ayer terminé (o casi) de instalar el código fuente de Gallir en un nuevo site
    http://tuxeame.net pero tengo dos dudas -no creo que sean graves- y es que los avatares no se donde activarlos, porque no aparecen en el perfil y la otra es nótame/mueveme no furulan…
    Gracias

    Responder
  4. Jack

    HOLA ALEJANDRO

    ALEJANDRO, yo instale el meneme en mi pagina pero cuando entro a la pagina me sale un comentario asi:

    Error conectando a la BBDD, el Cabal nos castigará, pero ya volvemos en unos segundos, seguramente una actualización de seguridad de la BBDD

    ME PUEDES AYUDAR??? que debo de hacer

    Responder
  5. Gorka

    Hola,

    estupendo post, porque no hay mucha info de problemas en la instalación de Meneame, la verdad, en todos los sitios todo funciona a la primera…

    A mí me pasa que me doy de alta perfectamente, y me dice que recibiré un correo, pero resulta que no he configurado ningún servidor de correo. Por lo que apuntas, usa localhost, pero se puede configurar otro? donde? debe ser por narices sin user/pass?

    Muchas gracias.

    Salu2!

    Responder
  6. Anonymous

    Hola Ale, ando instalando el meneame en un linux server con CentOs, pero nada mas me queda a medias. Esta en netocracia.com. La bronca es que no funciona el captcha cuando quiero registrar a un nuevo usuario, por lo que hasta ahi llegué.
    Espero y puedas hecharme la mano please, que necesito hechar a ndar el proyecto cuanto antes.
    Saludos

    Responder
  7. Adriel

    Muchas gracias Alejandro!

    te quería preguntar si sabes como arreglar este error que sale cuando se va al RSS (archivo rss2.php):

    Fatal error: Call to undefined function apache_request_headers() in libs/utils.php on line 411

    sabes que puedo hacer.

    nuevamente muchas gracias me has ayudado mucho 😉

    Responder
  8. Proph

    Hola Alejandro,

    Ante todo, muchas gracias por el tutorial. Tengo un problema con el cual llevo días peleándome sin éxito.

    El tema es que al hacer clic en el vínculo de validación que recibes por correo electrónico al registrarte me aparece una página en blanco. Lo mismo sucede cuando te autentificas o tratas de enviar noticias. ¿Sabes a qué puede ser debido?

    Tengo conocimientos medio-altos de php.

    Muchas gracias de antemano.

    Ivan

    Responder
  9. Andres

    Hola, muy util. Una observacion, en el RECAPTCHA, en la ultima version de meneame, solo hay que editar el config php, linea nº 203

    // Recaptcha settings
    // Put your keys en to enable recaptcha
    $globals[‘recaptcha_public_key’] = ”;
    $globals[‘recaptcha_private_key’] = ”;

    E introducir la clave publica y privada que nos da recaptcha una vez que nos registramos.

    Saludos

    Responder
  10. Anonymous

    Cuándo sale esto :
    Warning: Invalid argument supplied for foreach() in libs\html1.php on line 639.
    – ¡¡MELON!! Que tienes que meter las categorias.

    Hay que insertar una categoría padre.

    Ej:

    Temas (Padre)
    – Politica
    – Entretenimiento

    Responder
  11. Kiko

    Buenas.
    Estoy tratanto de instalarlo y hasta ahora todo bien. Solo que a la hora de registrarme, me crea bien el usuario me envia ok el email de confirmación pero a la hora de acceder a la página de mi usuario me salta el error 404 igual que avisas en el posible fallo 6. Trato de poner el htaccess tal cual describes (he probado los dos modos) y sigue fallandome. Lo tengo colgado en un subdominio (tb he probado colgandolo en el directorio raiz). Mi pregunta es, aunque lo tenga en un subdominio en directorio que no es el raiz, tengo que modificar el htaccess del raiz o creo uno dentro de donde esta el “meneame”. He probado ambas cosas igualmente, pero sigue sin funcionar. Que puede ser? :/

    Responder
  12. Alejandro Valdezate

    Hola Cris, no hay guía de instalación, al menos no al nivel que tú la pides. Precisamente por eso hice este tutorial. La debilidad más grande que tiene Meneame ahora mismo es que sólo su creador sabe lo que hay por dentro exactamente, y los demás funcionamo por ensayo/error. Si un programa sin una buena documentación vale de poco, imagínate si no la tiene …

    Responder
  13. Mullin - Tiendas Muebles

    El único interés que tiene menéame es su enorme comunidad de usuarios, que constantemente están enviando nuevas noticias y comentarios.
    Pero en lo que se refiere al funcionamiento de la web, bueno podemos resumirlo en que es un atentado contra la libertad de expresión donde se tumban no sólo las opiniones, sino también a los usuarios que no comulgan con la mayoría. Y esa mayoría (no se si de manera artificial o no) es una caterva de izquierdistas de salón, perroflautas y giliprogres. En fin, pequeños aprendices de de dictadores.

    Responder
  14. Alejandro Valdezate

    Buenas Muebles,

    En Meneame hay corrientes de todo tipo. El fijarse sólo en la corriente de ¿izquierda? es no ver más allá de las narices de uno. La corriente reinante de Meneame es una muchedumbre deseosa de la instauración de una meritocracia cada vez más necesaria y obvia. Algunos lo verán como un movimiento de izquierdas y otros, de ultraderecha (más o menos lo contrario de cada uno) pero la realidad es que es una corriente de gente que quiere implicarse en las decisiones del gobierno y opder tener voz y voto en lo que acontece en el congreso. Si te tumban las noticias, pues oye, mala suerte, es lo que tiene la inteligencia colectiva. No es infalible, y además, es muy influenciable.

    Responder
  15. Nataly

    Tengo que decir que no hay muchos tutos, es más a penas hay documentación extensa sobre Menéame, sin tener en cuenta que el código es open source pero es difícil de interpretar y no está documentado.
    Por otra parte información actualizada de Menéame 4.X no hay nada de nada a penas que yo haya encontrado, buscando y buscando conseguí ir solucionando algunos problemas,pero aún tengo este:

    Wrong parameter count for nl2br() in /homepages/29/d403114705/htdocs/prueba/libs/LCPBase.php on line 14

    que no se si está relacionado con que tampoco se me ven las descripciones de las noticias… en fin si alguien pudiese ayudarme…

    Responder
  16. Alejandro Valdezate

    Hola Civilacho, desafortunadamente como comienzo diciendo al principio del artículo, el código de Meneame no está hecho para neófitos en PHP o en programación. Es un código muy poco documentado y con poca tolerancia a errores.

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *