Investigación Capacitación e Informática para el Desarrollo A.C.


Sistema de foros WWWBoard

Manual de instalación

Lic. Víctor Manuel Martinez Martinez. <vicm3 at hotmail.com> (Coordinador de proyecto y contacto tecnico)
Mtra. Lilian Kravzov Appel <lkravzov at mexis.com>
Ing. Dustano Andrade <dandrade at tutopia.com>
Lic. Rodolfo Rivera <rgrivera at axtel.net>
Lic. Yuri Angel <yaz at prodigy.net.mx>
Lic. Nancy Oviedo <nancyom70 at hotmail.com>
Lic. Elizabeth Navarro <eli_navarro at yahoo.com>


Sistema de foros WWWBoard 2.0
(UNIX)

El sistema de foros WWWBoard 2.0 esta compuesto por un par de scripts escritos en PERL, por lo que ofrecen gran portabilidad y funcionalidad en entornos muy diferentes, ya sea Unix o Windows NT.

El script proviene de http://www.worldwidemart.com/scripts , siendo su autor original Matthew M. Wright.

Nuestra versión es una ligera modificación a este script, siendo el archivo comprimido:

foro.tar.gz

Para poder comenzar a trabajar necesitamos descomprimir el mismo:

En Unix:

gzip -d foro.tar.gz
tar -xvf foro.tar

En Linux:

tar xvfz foro.tar.gz

Con lo cual obtendremos un directorio foro/ con el siguiente contenido:

   ADMIN_README 	Como se realiza y configura la moderación del foro (ingles)
   ALPHA-2			Información sobre el nombre del programa
   README 			Las instrucciones de instalación (ingles)
   data.txt 		Archivo donde se almacena el numero de mensaje
   faq.html 		Preguntas frecuentemente hechas (ingles)
   index.html 		Este es el archivo que los usuarios ven (el foro que se ve)
   messages/ 		Directorio donde los mensajes serán creados y guardados
   passwd.txt 		Aquí se encuentra el password (encriptado) para la administración    del foro
   wwwadmin.cgi 	El script encargado de borrar mensajes
   wwwboard.cgi 	El script que corre el foro

Para poder utilizar el script es necesario que el directorio foro/ o uno que decidamos para poner el foro, sea visible en pagina web, por poner un ejemplo:

/home/httpd/html/foro/

Seria visible en Linux como:

http://servidor.dominio.mx/foro/

Ahora los archivos .cgi (wwwadmin.cgi y wwwboard.cgi) deberán ser movidos al área donde se encuentren los scripts en nuestro servidor, por comodidad y para mejor organización se sugiere un directorio para poner los archivos ejecutables cgi por cada foro que añadamos, por ejemplo:

/home/httpd/cgi-bin/foro/foro001

Seria ejecutable como:

http://servidor.dominio.mx/cgi-bin/foro/foro001/wwwadmin.cgi

Los permisos de ejecución de los archivos (wwwadmin y wwwboard) deberá ser 755 (chmod 755)

De regreso en el directorio del foro deberemos asegurarnos que los permisos queden de la siguiente manera:

index.html		 \
data.txt       	  \ Deberán tener el permiso de ejecución 777 (chmod 777)
messages/		  /
passwd.txt   	 /
WWWBOARD.CGI
   En cgi-bin es necesario configurar las variables del script antes de poder utilizarlo,    del mismo modo que es necesario configurar las opciones para que se ajuste a    nuestro sistema:

--- Variables ---

$basedir="/ruta/al/foro";

Esta variable debe contener la ruta absoluta al directorio donde se encuentra el foro, por ejemplo:

$basedir="/home/usuario/public_html/foro";

$baseurl="http://servidor.dominio.mx/foro";

Esta variable corresponde al URL base al directorio donde el foro se encuentr4a, siguiendo con el ejemplo anterior si el directorio del foro es llamado con http://servidor.dominio.mx/~usuario , entonces $baseurl tendría que ser configurado a:

$baseurl="http://servidor.dominio.mx/~usuario/foro";

$cgi_url="http://servidor.dominio.mx/cgi-bin/wwwboard.cgi";

Este es el URL que corresponde al script wwwboard.cgi. Será usado en las respuestas a los mensajes, así que debe ser correcto. Siguiendo con nuestro ejemplo:

$cgi_url="http://servidor.dominio.mx/cgi-bin/foros/foro001/wwwboard.cgi";

$mesdir="messages";

Este es el nombre del directorio donde se almacenaran los mensajes, será añadido a $basedir. Todos los mensajes del foro serán creados y guardados en este directorio.

$datafile="data.txt";

Este es el nombre del archivo de datos que también será añadido a $basedir. Contiene el numero de mensaje actual, el script lo lee para determinar el numero del siguiente mensaje por crear.

$mesgfile="index.html";

Indica como se llamará el archivo que contendrá el foro, es decir el archivo que será visible a los usuarios.

$faqfile="faq.html";

Define como será llamado el archivo de "Preguntas mas frecuentemente hechas" (Frequently Asked Questions FAQ), en nuestro caso no lo utilizamos.

$ext="html";

Especifica la extensión con la que los mensajes individuales serán creados. En el caso de que el sistema no soporte nombres largos se puede cambiar por "htm".

$title="Foro de Discusión";

Este es el titulo para el foro, será utilizadoen las páginas de los mensajes individuales, puede ser cualquier texto que elijamos.

--- Opciónes ---

$show_faq=0 #1=yes ; 0=no

Esta opción permite mostrar una liga al FAQ en cada mensaje individual. Por defecto se encuentra deshabilitada.

$allow_html=1; #1=yes ; 0=no

Esta opción permite elegir si se va a permitir HTML dentro de los mensajes. Si no se va a permitir (colocando la opción en 0) todo lo que el usuario mande que se hallé entre <> sera borrado del mensaje. Colocando esta opción en en "1" permite el uso de HTML en los mensajes.

$quote_text=1; #1=yes: 0=no

Colocar esta opción en "1", hará que el mensje original sea citado en la respuesta al mismo, el texto original tendra ":" al principio de cada linea para diferenciarlo del nuevo. Colocar esta opción en "0" hará que el mensaje respuesta sea uno en blanco.

$subject_line=0 #0=Citar el subject, editable
#1=Citar el subject, NO editable
#2=No citar el subject, editable

Existen tres opciónes para la manera en que se puede mostrar el subject (tema) para el momento en que los usuarios contesten un mensaje, "0" es el valor por omisión, citará el subject del mensaje que se responde, dejandolo ademas editable al gusto del usuario. "1" sin embargo citara el subject, pero solo lo desplegara, no permitiendo que el usuario lo edite. La tercera opción "2" hará que el subject no sea citado y el usuario se encontrara con un espacio en blanco para añadir su propio subject.

$use_time=1 #1=yes ; 0=no

Esta opción permite elegir usar o no, el tiempo en el formato horas;minutos;segundos junto con el dia/mes/año en la página principal (index.html) la fecha en el formato dia/mes/año se añade cuando automaticamente cada vez que un nuevo mensaje es creado. Si se deja esta opción en "1" el tiemp horas;minutos;segundos tambien sera añadido. Esto es muy util para foros que reciben muchos mensajes, pero si se desea ahorrar espacio, se puede colocar esta opción en "0".

$show_poster_ip=0 #1=show ; 0=no

Si esta opción esta activada "1", el IP del usuario que dejo el mensaje será mostrado despues de cada uno de sus mensajes, poner "0" en esta opción la desactiva.

$enforce_max_len=0 #2=yes, error
#1=yes, truncate
#0=NO

Esta opción te permite controlar el como se cumpliran los limites de caracteres. Si se requiere que aparezca un error cuando el limite es sobre pasado, debe contener "2". Si se desea que los datos seán truncados en lugar de que ocurra un error, el valor debe ser "1" y si solo el valor maximo permitido será aceptado. Colocar esta opción en "0" no restringira el tamaño de los mesnajes. El tamaño maximo de cada campo es configurado con %max_len

%max_len

Aquí se define el maximo de longitud (en numeor de caracteres) que cada campo aceptará. La parte entrecomillada coresponde al nombre del campo en la forma de envio, y el numero corresponde al tamaño maximo de ese campo.

WWWADMIN.CGI
Este script es el encargado de borrar mensajes, tambien debe ser configurado de acuerdo con nuestro sistema, antes de poderlo utilizar.

$basedir="/ruta/al/foro";

Esta variable debe contener la ruta absoluta al directorio donde se encuentra el foro, por ejemplo:

$basedir="/home/usuario/public_html/foro";

$baseurl="http://servidor.dominio.mx/foro";

Esta variable corresponde al URL base al directorio donde el foro se encuentr4a, siguiendo con el ejemplo anterior si el directorio del foro es llamado con http://servidor.dominio.mx/~usuario , entonces $baseurl tendría que ser configurado a:

$baseurl="http://servidor.dominio.mx/~usuario/foro";

$cgi_url="http://servidor.dominio.mx/cgi-bin/wwwadmin.cgi";

Esta variable corresponde a la URL donde su ubica el script de administración.

Los defaults de el foro son como usuario y password, "WWWBoard" y "WWWAdmin" respectivamente (son caso sensitivo, es decir importan las mayusculas y minusculas).

El script al ser accesado en la dirección http://servidor.dominio.mx/cgi-bin/wwwadmin.cgi permite realizar la administración del foro así como el cambio del usuario y password.

Así se pueden realizar las siguientes acciones:

- Eliminar mensajes

Mediante esta opción se pueden eliminar mensajes, ya sea de manera individual o por hilo de discusión, solo se seleccionan los mensajes, se llena el nombre del administrador y el password, se da click al botón remover y esta hecho; posee la versatilidad de poder ordenar los mensajes de maneras diferentes, para agilizar la administración del foro, así permite:
- Eliminar mensajes por numero
- Eliminar mensajes por fecha
- Eliminar mensajes por autor

- Cambiar el password del administrador

Mediante esta opción podemos cambiar tanto el nombre del administrador como su password, de esta forma pudiendo cada foro tener su propio administrador (por defecto en esta versión son respectivamente WWWBoard y WWWAdmin).


Sistema de foros WWWBoard 2.0
(Implementación en Windows NT 4.0)
Notas para la implementación en Windows NT:

 

Es necesario también (en la mayoría de los casos) que la variable $basedir s(en wwwadmin.cgi y en wwwboard.cgi) se exprese con diagonales dobles, además claro de que sea una ruta valida de Windows.

$basedir="c:\\ruta\\al\\foro";

Por ejemplo:

$basedir="c:\\wwwroot\\inetpub\\foro001";

Del mismo modo a menos que se configure el IIS para que ejecute la extensión ".cgi" como perl, los scripts deberán ser renombrados ".pl" es decir wwwadmin.pl y wwwboard.pl con los consiguientes cambios en las variables que hacen referencia a ellos.

El sistema de foros WWWBoard 2.0 esta compuesto por un par de scripts escritos en PERL, por lo que ofrecen gran portabilidad y funcionalidad en entornos muy diferentes, ya sea Unix o Windows NT.

El script proviene de http://www.worldwidemart.com/scripts , siendo su autor original Matthew M. Wright.

Para instalar los foros en Windows NT es necesario utilizar un interprete de PERL (puesto que no viene incluido con Windows), se recomienda el Active Perl (http://www.activestate.com) que es compatible con el Internet Information Server de Microsoft (IIS).

Nuestra versión es una ligera modificación a este script, siendo el archivo comprimido:

foro.tar.gz


Para poder comenzar a trabajar necesitamos descomprimir el mismo:

Windows NT a diferencia de los sistemas Unix, no cuenta con una herramienta en si para trabajar con los archivos del tipo .tar.gz, por lo que es necesario el Winzip 8 (http://www.winzip.com) para descompactar los archivos.

Una vez descompactados tendremos un directorio foro/ con el siguiente contenido:

   ADMIN_README		Como se realiza y configura la moderación del foro (ingles)
   ALPHA-2 			Información sobre el nombre del programa
   README 			Las instrucciones de instalación (ingles)
   data.txt 		Archivo donde se almacena el numero de mensaje
   faq.html 		Preguntas frecuentemente hechas (ingles)
   index.html 		Este es el archivo que los usuarios ven (el foro que se ve)
   messages/ 		Directorio donde los mensajes serán creados y guardados (en    Windows no tendremos este directorio, puesto que Winzip no puede crear directorios    vacios, es necesario que nosotros lo creemos)
   passwd.txt 		Aquí se encuentra el password (encriptado) para la administración    del foro
   wwwadmin.cgi 	El script encargado de borrar mensajes
   wwwboard.cgi 	El script que corre el foro
Para poder utilizar el script es necesario que el directorio foro/ o uno que    decidamos para poner el foro, sea visible en pagina web, por poner un ejemplo:

C:\wwwroot\inetpub\foro001

Seria visible Windows NT como:

http://servidor.dominio.mx/foro/

Ahora los archivos .cgi (wwwadmin.cgi y wwwboard.cgi) deberán ser movidos al área donde se encuentren los scripts en nuestro servidor, por comodidad y para mejor organización se sugiere un directorio para poner los archivos ejecutables cgi por cada foro que añadamos, además en NT a menos que se hagan modificaciones a la configuración del IIS es mejor renombrarlos a .pl, por ejemplo:

C:\inetpub\scripts\foro001

Seria ejecutable como:

http://servidor.dominio.mx/scripts/foro001/wwwadmin.pl

Los permisos de ejecución de los archivos (wwwadmin y wwwboard) deberá ser 755 es decir lectura, ejecución.

De regreso en el directorio del foro deberemos asegurarnos que los permisos queden de la siguiente manera:

   index.html 	\
   data.txt 	 \ Deberán tener el permiso de ejecución, lectura y escritura
   messages/ 	 /
   passwd.txt 	/
WWWBOARD.PL
   En SCRIPTS es necesario configurar las variables del script antes de poder utilizarlo,    del mismo modo que es necesario configurar las opciones para que se ajuste a    nuestro sistema:

--- Variables ---

$basedir="c:\ruta\al\foro";

Esta variable debe contener la ruta absoluta al directorio donde se encuentra el foro, por ejemplo:

$basedir="c:\inetpub\wwwroot\foro001";

$baseurl="http://servidor.dominio.mx/foro";

Esta variable corresponde al URL base al directorio donde el foro se encuentra.

$cgi_url="http://servidor.dominio.mx/cgi-bin/wwwboard.pl";

Este es el URL que corresponde al script wwwboard.pl .Será usado en las respuestas a los mensajes, así que debe ser correcto. Siguiendo con nuestro ejemplo:

$cgi_url="http://servidor.dominio.mx/cgi-bin/foro001/wwwboard.cgi";

$mesdir="messages";

Este es el nombre del directorio donde se almacenaran los mensajes, será añadido a $basedir. Todos los mensajes del foro serán creados y guardados en este directorio.

$datafile="data.txt";

Este es el nombre del archivo de datos que también será añadido a $basedir. Contiene el numero de mensaje actual, el script lo lee para determinar el numero del siguiente mensaje por crear.


$mesgfile="index.html";

Indica como se llamará el archivo que contendrá el foro, es decir el archivo que será visible a los usuarios.

$faqfile="faq.html";

Define como será llamado el archivo de "Preguntas mas frecuentemente hechas" (Frequently Asked Questions FAQ), en nuestro caso no lo utilizamos.

$ext="html";

Especifica la extensión con la que los mensajes individuales serán creados. En el caso de que el sistema no soporte nombres largos se puede cambiar por "htm".

$title="Foro de Discusión";

Este es el titulo para el foro, será utilizado en las páginas de los mensajes individuales, puede ser cualquier texto que elijamos.

--- Opciones ---

$show_faq=0 #1=yes ; 0=no

Esta opción permite mostrar una liga al FAQ en cada mensaje individual. Por defecto se encuentra deshabilitada.

$allow_html=1; #1=yes ; 0=no

Esta opción permite elegir si se va a permitir HTML dentro de los mensajes. Si no se va a permitir (colocando la opción en 0) todo lo que el usuario mande que se hallé entre <> será borrado del mensaje. Colocando esta opción en "1" permite el uso de HTML en los mensajes.

$quote_text=1; #1=yes: 0=no

Colocar esta opción en "1", hará que el mensaje original sea citado en la respuesta al mismo, el texto original tendrá ":" al principio de cada línea para diferenciarlo del nuevo. Colocar esta opción en "0" hará que el mensaje respuesta sea uno en blanco.

$subject_line=0 #0=Citar el subject, editable
#1=Citar el subject, NO editable
#2=No citar el subject, editable

Existen tres opciones para la manera en que se puede mostrar el subject (tema) para el momento en que los usuarios contesten un mensaje, "0" es el valor por omisión, citará el subject del mensaje que se responde, dejándolo además editable al gusto del usuario. "1" sin embargo citara el subject, pero solo lo desplegara, no permitiendo que el usuario lo edite. La tercera opción "2" hará que el subject no sea citado y el usuario se encontrara con un espacio en blanco para añadir su propio subject.

$use_time=1 #1=yes ; 0=no

Esta opción permite elegir usar o no, el tiempo en el formato horas;minutos;segundos junto con el dia/mes/año en la página principal (index.html) la fecha en el formato dia/mes/año se añade cuando automáticamente cada vez que un nuevo mensaje es creado. Si se deja esta opción en "1" el tiempo horas;minutos;segundos también será añadido. Esto es muy útil para foros que reciben muchos mensajes, pero si se desea ahorrar espacio, se puede colocar esta opción en "0".

$show_poster_ip=0 #1=show ; 0=no

Si esta opción esta activada "1", el IP del usuario que dejo el mensaje será mostrado después de cada uno de sus mensajes, poner "0" en esta opción la desactiva.

$enforce_max_len=0 #2=yes, error
#1=yes, truncate
#0=NO

Esta opción te permite controlar el como se cumplirán los limites de caracteres. Si se requiere que aparezca un error cuando el limite es sobre pasado, debe contener "2". Si se desea que los datos sean truncados en lugar de que ocurra un error, el valor debe ser "1" y si solo el valor máximo permitido será aceptado. Colocar esta opción en "0" no restringirá el tamaño de los mensajes. El tamaño máximo de cada campo es configurado con %max_len

%max_len

Aquí se define el máximo de longitud (en numero de caracteres) que cada campo aceptará. La parte entrecomillada corresponde al nombre del campo en la forma de envío, y el numero corresponde al tamaño máximo de ese campo.

WWWADMIN.PL
Este script es el encargado de borrar mensajes, también debe ser configurado de acuerdo con nuestro sistema, antes de poderlo utilizar.

$basedir="c:\ruta\al\foro";

Esta variable debe contener la ruta absoluta al directorio donde se encuentra el foro, por ejemplo:

$basedir="c:\inetpub\wwwroot\foro";

$baseurl="http://servidor.dominio.mx/foro";

Esta variable corresponde al URL base al directorio donde el foro se encuentra.

$cgi_url="http://servidor.dominio.mx/cgi-bin/wwwadmin.pl";

Esta variable corresponde a la URL donde su ubica el script de administración.

Los valores por omisión del foro, son como usuario y password; "WWWAdmin" y "WWWBoard" respectivamente (son caso sensitivo, es decir importan las mayúsculas y minúsculas).

El script al ser accesado en la dirección http://servidor.dominio.mx/scripts/wwwadmin.pl permite realizar la administración del foro así como el cambio del usuario y password.

Así se pueden realizar las siguientes acciones:

- Eliminar mensajes

Mediante esta opción se pueden eliminar mensajes, ya sea de manera individual o por hilo de discusión, solo se seleccionan los mensajes, se llena el nombre del administrador y el password, se da click al botón remover y esta hecho; posee la versatilidad de poder ordenar los mensajes de maneras diferentes, para agilizar la administración del foro, así permite:
- Eliminar mensajes por numero
- Eliminar mensajes por fecha
- Eliminar mensajes por autor

- Cambiar el password del administrador

Mediante esta opción podemos cambiar tanto el nombre del administrador como su password, de esta forma pudiendo cada foro tener su propio administrador (por defecto son WWWBoard y WWWAdmin).

Dudas Frecuentes

1. El servidor me marca "500 Internal Server Error" - Es posible que las extensiones que acepta el servidor estén mal configuradas, es decir que no este configurado para ejecutar .cgi o .pl, también puede darse el caso de que no tengamos un interprete de Perl instalado.

2. Todo funciona bien hasta que mando el mensaje me manda un error del servidor, de que el script termino de manera prematura. - Lo mas probable es que no existan los permisos adecuados de escritura / ejecución en los archivos index.html, data.txt, password.txt o en el directorio messages/

3. Modifique el index.html y ahora no aparecen los mensajes nuevos - el script depende de las siguientes instrucciones en el archivo index.html:
<ul>
<!--begin-->
</ul>

A partir de donde dice <!--begin--> se añaden los nuevos mensajes, podemos mover estas líneas a cualquier parte en el código, para que el cuadro de dialogo y/o nuestro texto personalizado aparezca, mientras no las modifiquemos (i.e. escribamos <!--Begin--> en vez de <!--begin-->) ya que de lo contrario no se añadirán nuevos mensajes.

4. Cambie el password del administrador y ahora no lo recuerdo, ¿hay alguna forma de recuperarlo? - Bueno, de recuperarlo, NO, el password olvidado esta perdido, ya que se encuentra encriptado en password.txt usando cifrado DES, el cual es difícil de romper, lo que se puede hacer sin embargo, es del archivo original tomar el password.txt y copiarlo encima del que perdimos, para así tener el username y password originales.