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. |