Durante esta práctica, los alumnos serán capaces de:
Esta actividad promueve las siguientes habilidades, valores y actitudes: análisis y síntesis, capacidad de resolver problemas, creatividad, y uso eficiente de la informática y las telecomunicaciones.
Las actividades de la práctica se pueden elaborar de manera individual o en parejas.
El reporte de la práctica de laboratotio debe ser desarrollado de manera individual.
sudo apt-get install apache2Verifica que esté funcionando el servidor usando el siguiente URL desde tu navegador:
http://localhost/
$HOME/www/static
residirá todo tu contenido estático, y en $HOME/www/cgi-bin
estarán los scripts CGI para generar contenido dinámico. Para crear los directorios mencionados, teclea desde la línea de comando:
cd mkdir www cd www mkdir static mkdir cgi-bin
Abre el archivo /etc/apache2/sites-enabled/000-default
con privilegios de administrador. Desde la línea de comando teclea:
gksudo gedit /etc/apache2/sites-available/default
Edita dicho archivo para que Apache pueda utilizar los directorios recién creados. Reemplaza username
por el nombre de usuario correcto:
<VirtualHost *:80> # Coloca aquí el correo electrónico del administrador de Apache ServerAdmin Webmaster@localhost username@example.com DocumentRoot /var/www /home/username/www/static <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/ /home/username/www/static/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ /home/username/www/cgi-bin/ <Directory "/usr/lib/cgi-bin" /home/username/www/cgi-bin> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
Siempre que se modifique la configuración de Apache es necesario reiniciarlo para que los cambios surtan efecto. Desde la línea de comando teclea:
sudo /etc/init.d/apache2 restart
Además de la opción restart
, se puede invocar el comando anterior con las opciones stop
y start
para detener e iniciar el servidor de Web Apache, respectivamente.
Al reiniciar, detener e iniciar el servidor Web Apache aparece el siguiente mensaje:
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Para evitar que aparezca este mensaje, se debe editar el archivo /etc/apache2/httpd.conf
(no olvides usar privilegios de administrador) para que contenga la siguiente línea:
ServerName localhost
Crea una hoja de estilos estilos.css
y una página de bienvenida index.html
para probar que la configuración de tu sitio Web sea correcta. Ambos archivos deben localizarse en el directorio www/static
.
/* Archivo: estilos.css */ body { background: #FFF; color: #000080; font-family: sans-serif; font-size: medium; margin: 20px; } h1 { color: #069; font-size: 230%; border-bottom: 4px solid #069; margin: 10px 0px 20px 0px; padding: 0px; } table { border-collapse: collapse; border: 1px solid #000000; padding: 0px; margin-bottom: 10px; color: #000000; background: #E6E6FA; } td { border: 1px solid #000000; padding: 10px; text-align: left; } th { border: 1px solid #000000; padding: 10px; color: #008080; background: #B0E0E6; text-align: center; }
<!-- Archivo: index.html --> <!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8"/> <link rel="stylesheet" type="text/css" href="/estilos.css"/> <title>El Chorrito</title> </head> <body> <h1>El Chorrito</h1> <p> <strong>Autor: Francisco Gabilondo Soler</strong> </p> <p> La gota de agua que da la nube<br/> como regalo para la flor<br/> en vapor se desvanece<br/> cuando se levanta el sol;<br/> y nuevamente al cielo sube<br/> hasta la nube que la soltó.<br/> La gotita sube y baja,<br/> baja y sube<br/> al compás de esta canción:<br/> </p> <p> Allá en la fuente<br/> había un chorrito,<br/> se hacía grandote<br/> se hacía chiquito;<br/> allá en la fuente<br/> había un chorrito,<br/> se hacía grandote<br/> se hacía chiquito;<br/> estaba de mal humor,<br/> pobre chorrito tenía calor<br/> estaba de mal humor,<br/> pobre chorrito tenía calor. </p> </body> </html>
Apunta nuevamente tu navegador a http://localhost/
. Debes poder ver la página index.html
rendereada de la manera esperada.
Ahora revisaremos que los scripts CGI también funcionen correctamente. En el directorio www/cgi-bin
coloca el siguiente archivo fuente de Python llamado ahorita.py
:
#!/usr/bin/env python # coding: utf-8 # Archivo: ahorita.py from datetime import datetime # Imprimir encabezados de la respuesta print 'Content-type: text/html; charset=utf-8' # MUY IMPORTANTE: Imprimir una línea en blanco para delimitar # los encabezados del cuerpo de la respuesta. print print '''<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8"/> <link rel="stylesheet" type="text/css" href="/estilos.css"/> <title>La hora de ahorita</title> </head> <body> <h1>La hora de ahorita</h1> <p> La fecha y hora del servidor Web en este momento es: <strong>%s</strong> </p> <p> [<a href="">Actualizar</a>] </p> </body> </html>''' % (datetime.now(),)
Es indispensable que este archivo tenga permisos de ejecución. Desde la línea de comando (en el directorio www/cgi-bin
):
chmod +x ahorita.py
Usa el siguiente URL desde tu navegador para ver el resultado: http://localhost/cgi-bin/ahorita.py
Escribe un nuevo script CGI en Python llamado ambiente.py
que imprima en orden alfabético todas las variables de ambiente que estén disponibles, utilizando una tabla de HTML parecida a la siguiente:
Variable | Valor |
---|---|
DOCUMENT_ROOT | /home/username/www/static |
GATEWAY_INTERFACE | CGI/1.1 |
... | ... |
Las variables de ambiente se pueden obtener en Python usando la variable environ
del módulo os
.
El URL para el script debe ser: http://localhost/cgi-bin/ambiente.py
Para entregar tu trabajo individual, sigue las siguientes instrucciones:
reporte_lab1_A0MMMMMMM.txt
, en donde A0MMMMMMM
corresponde a tu matrícula. A partir del código fuente de AsciiDoc debes generar el archivo HTML correspondiente. Dicho archivo se debe llamar reporte_lab1_A0MMMMMMM.html
. Coloca ambos archivos dentro del directorio www
.
www
. Nombra a este archivo www.tgz
.
Este archivo se puede crear desde la línea de comando tecleando lo siguiente (asegúrate que te encuentres en el mismo nivel que el directorio www
):
tar czf www.tgz www
Fecha límite: Martes, Agosto 23.
Esta actividad será evaluada usando los siguientes criterios:
50% | Implementación de los requerimientos. |
---|---|
50% | Reporte de la práctica de laboratorio. |
DA | El programa y/o reporte es un plagio. |