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.
NOTA IMPORTANTE: Las actividades de la práctica se pueden elaborar de manera individual o en parejas. El reporte de la práctica de laboratorio 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-enabled/000-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" 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" 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, Enero 17.
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. |