PDF de programación - Capítulo 15. Servicios Web en máquinas virtuales

Capítulo 15. Servicios Web en máquinas virtualesgráfica de visualizaciones

Publicado el 17 de Julio del 2017
419 visualizaciones desde el 17 de Julio del 2017
81,3 KB
4 paginas
Creado hace 10a (02/10/2013)
Capítulo 15. Servicios Web en máquinas
virtuales

15.1. Objetivos

Explorar más formas de hacer aplicaciones Web usando las máquinas virtuales. Para ello debe
arrancar las dos, poner los servidores en la máquina servidora y probarlos con un navegador desde la
estación de trabajo.

15.2. Servidor web autónomo

• Si no lo hizo ya, pruebe el servidor web la práctica de comunicaciones webstiempo2 en la

máquina servidora con un navegador en la estación de trabajo1.

15.3. Servidor web estático

• Vamos ahora a usar el servidor web de verdad, para que haga lo que queremos, sin ocuparnos de la

gestión. Ponga un página estática en /var/www/index.html con tres páginas hijas (similar al
servidor web navegable webstiempo2.c, salvo que todos los ficheros deben tener extensión html y
la información es estática). El servidor web las pondrá visibles en el puerto 80. Compruébelo. Para
no perder tiempo, puede encontrar un ejemplo en ejemplos/var/www/index.html,
ejemplos/var/www/nombre.html, ejemplos/var/www/maquina.html y
ejemplos/var/www/tiempo.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>

<head> <title>Servidor web practicas de ARQO</title> </head>
<body>
<ul>

<li><a href="nombre.html">Usuario</a></li>
<li><a href="tiempo.html">Fecha y hora</a></li>
<li><a href="maquina.html">Maquina</a></li>

</ul>
</body>

</html>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>

<head> <title>Servidor web practicas de ARQO: maquina</title> </head>
<body> <h1>colibri</h1> </body>

</html>

1

Capítulo 15. Servicios Web en máquinas virtuales

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>

<head> <title>Servidor web practicas de ARQO: tiempo</title> </head>
<body><h1>Wed Jan 12 12:24:01 2011 </h1> </body>

</html>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>

<head><title>Servidor web practicas de ARQO</title> </head>
<body><h1>Joaquin Seoane„,</h1> </body>

</html>

Recuerde que en la práctica 5 en la sección 5.11 se explica cómo montar el directorio que contiene la
documentación de las prácticas en su máquina virtual en el directorio /casa. Compartir la carpeta es
la solución que menos espacio en disco ocupa y la recommedada.Si no ha realizado este paso, pero sí
ha configurado la red según la práctica 14, puede copiar la documentación de esta práctica con la
siguiente orden: scp -r [email protected]:/home/lola/practicas ., sustituyendo
lola por el nombre de su usuario y l124 por la máquina desde la que esté trabajando.

15.4. Páginas dinámicas

• Para hacer páginas dinámicas, puede hacer un CGI, que es un programa que recibe información

por variables de entorno y conversa por su salida y entrada estándar, sin preocuparse de las
comunicaciones. En nuestro caso los programas deben estar en /usr/lib/cgi-bin. Los URL
son de la forma http://maquina/cgi-bin/programa?pregunta. Antes de nada vamos a ver
qué valen esas variables de entorno. Para ello podemos usar el programilla de shell que las saca en
texto plano
entorno.sh:

#!/bin/bash
echo "Content-Type: text/plain"
echo
echo Hola, el entorno es:
echo
printenv

o uno que las saca en HTML:
entornohtml.sh:

#!/bin/bash
echo "Content-Type: text/html"
echo
echo ’<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>

<head> <title>Entorno</title> </head>

2

Capítulo 15. Servicios Web en máquinas virtuales

<body>

<h1>Hola, el entorno es:</h1>’

printenv | while read variable
do

echo "<p>$variable</p>"

done
echo ’
</html>’

</body>

De todas las variables, las que nos interesan son SCRIPT_NAME y QUERY_STRING. Puede, en C,
usarse getenv() para obtenerlas, en lugar de recorrer la lista de variables de entorno. Por ejemplo,
este CGI (cgivars.c) las muestra:

#include "stdio.h"
#include "stdlib.h"

int main(int argc, char **argv, char **envp)
{

printf("Content-Type: text/plain\n\n");
printf("La variable SCRIPT_NAME vale %s\n", getenv("SCRIPT_NAME"));
printf("La variable QUERY_STRING vale %s\n", getenv("QUERY_STRING"));
exit(0);

}

No olvide que cgivars.c hay que compilarlo y hacer ejectutables para todo el mundo los CGI
con
chmod ugo+x entorno.sh entornohtml.sh cgivars

15.5. Ficheros ofrecidos

En el directorio webvm:

• Los ejemplos ejemplos/var/www/index.html, ejemplos/var/www/nombre.html,

ejemplos/var/www/maquina.html, ejemplos/var/www/tiempo.html,
ejemplos/usr/lib/cgi-bin/entorno.sh, ejemplos/usr/lib/cgi-bin/entornohtml.sh,
ejemplos/usr/lib/cgi-bin/cgivars.c.

• El cgi compilado ejemplos/usr/lib/cgi-bin/wcgi.

15.6. Resultados pedidos

Se pide hacer un CGI en C que muestre la información dinámicamente. Para ello limpie
webstiempo.c y cree wcgi.c, del que damos una versión compilada en
ejemplos/usr/lib/cgi-bin/wcgi.

3

Capítulo 15. Servicios Web en máquinas virtuales

Notas

1. Si desea acceder al servidor webstiempo2 desde la máquina anfitriona, recuerde añadir una
nueva redirección mediante VBoxManage y use el puerto elegido al arrancar el servidor de
tiempo. Alternativamente, puede parar el servidor apache ejecutando /etc/init.d/apache2 stop y
arrancar webstiempo2 en el puerto 80, que ya tiene una redirección configurada.

4
  • Links de descarga
http://lwp-l.com/pdf5439

Comentarios de: Capítulo 15. Servicios Web en máquinas virtuales (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad