Cómo monté mi servidor - Quiero un contador;no tengo PHP

17 - Quiero un contador;no tengo PHP

[editar]
Tutorial creado por Daniel Clemente. Extraido de: http://www.mononeurona.org/index.php?idp=230
27 de Octubre de 2005

Cuando usaba PHP me hice un index.php que incluía un contador en modo texto, y no me costó mucho. Pero ahora he decidido no poner PHP en el servidor web, y tengo que hacerme un contador nuevo. ¿Qué puedo hacer?


Podría instalar PHP como un programa (en vez de como extensión de servidor) y hacer que se ejecute como CGI, pero para hacer un programita que suma 1 a una variable no me hace falta todo eso.


Es fácil hacer un contador en bash. El siguiente comando ya sirve:

echo $(( `cat cont` + 1 )) > cont

El problema es que no puedo incrustar en mi index.html el contenido del archivo cont. Me gustaría hacer un <#include "cont"> pero en HTML eso no se puede hacer y thttpd no es de los que tienen Server Side Includes (bueno, tiene, pero no es nada cómodo).


Podría hacer que el fichero index.html fuera un ejecutable (CGI) que mediante echos mande la página y con un 'cat cont' meta el número correspondiente en el sitio que toca. Me parece bastante chapucero... prefiero tener todos los CGIs en el mismo sitio.

En HTML no se puede incrustar contenido text/html, pero sí imágenes (se hace con la etiqueta IMG). O sea, que mi CGI podría crear una imagen, y hacer un cat mandándola con el Content-type correspondiente. Y ahora, ¿cómo creo una imagen -por ejemplo un PNG- que tenga escrito un número? Eso lo hacen los magníficos programas de ImageMagick; por ejemplo con este comando:

# blanco.png es todo blanco.        Seguro que hay formas mejores de hacer esto...
convert -font helvetica  -pointsize 25 -fill blue -draw "text 5,22 '142857'" blanco.png texto.png

Aparte de ser muy chapucero, esta solución requiere meter muchísimos programas, librerías y fuentes dentro del chroot, y además sería bastante lento.

142857

Encontré otro programa (también dentro de ImageMagick) muy útil, es montage y sirve para juntar imágenes. Me bastaría con tener los dígitos del 0 al 9 cada uno en un archivo, y luego, mediante un script, ir juntando cifras para hacer cada número. Por último, servir la imagen con un cat. Ejemplo:

montage 1.png 4.png 2.png 8.png 5.png 7.png 142857.png

Sería lento, pero tampoco mucho. Tendría que hacer el script que creara la lista de parámetros a partir del número leído; ahora mismo no se me ocurre ninguna forma fácil de hacerlo, pero con sed, awk o perl se puede. Me falta tiempo para esto... antes tengo que aprender a usar los paquetes de coreutils y leerme el man bash.


Tiene que haber programas que hagan solos lo de crear una imagen con un número escrito. No busqué mucho, pero encontré uno, swc (simple web counter), pero no me gustó porque ha tenido un fallo importante de seguridad y -lo importante- porque usa imágenes GIF, que es un formato con un sistema de compresión patentado por Unisys Corporation, el LZW. Me da asco meterme en estos temas, así que mejor no uso el programa. Yo lo veo como una trampa.


Resumiendo, que no puedo incrustar texto en HTML, pero sí imágenes (IMG). Entonces me acordé de que también se pueden incluir scripts; ahí vi la solución. Hice un script llamado cuenta así:

#!/bin/bash
echo "Content-type: text/plain"
echo

echo -n $(( `cat cont` + 1 )) > cont

echo -n document.write\(\"
cat cont
echo -n \"\)\;

Y luego sólo tenía que incluírlo con <SCRIPT TYPE="text/javascript" src="img/cgi-bin/cuenta"></SCRIPT>

El problema es que no todos los navegadores soportan JavaScript. Normalmente los que no lo soportan tampoco muestran imágenes, así que creo que mi solución es tan efectiva como la de la imagen. De todas formas sigue siendo una chapuza que he de arreglar cuando me aburra.

[editar]

26 opiniones

Buen tutorial.

Está guay. Yo estoy buscando una idea también sobre el hardware apropiado y creo que lo mejor de lo mejor es esa maravilla que comentas más arriba. Ese mini ordenador que consume poquísimo y no hace nada de ruido. Es cierto que el precio es un poco elevado, pero creo que vale la pena porque se amortizará y es extremadamente cómodo. Creo que optaré por uno de esos.

Está muy bueno lo que hiciste, muy buen trabajo. Pero que servidor usas? por lo que mencionas del flujo de usuarios parece que podrías aprovechar mucho más el rendimiento de la compu. Windows server 2008 te deja controlar muchas de esas opciones de accesibilidad, deberías probarlo a ver como te funciona.
Atencion !!!!.

Hola ! tengo una empresa de arquitectura web y necesito algún proveedor de servidor web para trabajar... Por favor ! tengo mucho trabajo. Al que le interese escríbame al correo. Gracias !!!!!!!!!!!!!.
Gracias!!!.

Sr daniel clemente:

muchas gracias por este excelente trabajo. Saluda atte maximiliano.
Excelente.

Actualmente acabo de adquirir 2 servidores ibm rs6000 me estoy iniciando en esto y van para el mismo proposito si alguien tiene mas conocimiento sobre esto me interesa platicar con el para resolver mis dudas ;) gracias.
1 2 3 4 5 6 | siguiente >

Tutoriales relacionados con 'Cómo monté mi servidor'

Las páginas que estás viendo están alojadas en mi propio servidor (IP 217. 126.10.173), que... Más »
¿Qué es una imagen ISO? Las imágenes ISO son archivos que siguen los estándares ISO-9660... Más »
Curso que profundiza en el gestor de montones (o montículos) dentro de Win32, así como... Más »
Manual para Slackware 10. 0 en el que prescindiremos de usar las X. Esto puede... Más »
Este es un curso sin ninguna relevancia. Pretende ser una pequeña introducción para todos mis... Más »

Autor y licencia de 'Cómo monté mi servidor'


Tutorial de Daniel Clemente. Extraido de: http://www.mononeurona.org/index.php?idp=230 CopyLeft
Este trabajo está licenciado bajo la Creative Commons License. 1999-2005 © :: MonoNeurona.org ::
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.