Skip to content

10. Anexos: herramientas para el desarrollo web

Aquí indicamos dónde encontrar y cómo instalar herramientas gratuitas que permiten desarrollar aplicaciones web en Java, PHP, ASP y asp.net. Algunas herramientas han visto cómo sus versiones han evolucionado y es posible que las explicaciones que aquí se ofrecen ya no sean adecuadas para las versiones más recientes. En tal caso, el lector deberá adaptarse... :

  • un navegador reciente capaz de visualizar XML. Los ejemplos del curso se han probado con Internet Explorer 6.
  • Un JDK (Java Development Kit) reciente. El JDK incluye el complemento Java 1.4 para navegadores, lo que permite a estos mostrar applets de Java que utilicen el JDK 1.4.
  • Un entorno de desarrollo Java para escribir servlets Java. En este caso, se trata de JBuilder 7.
  • Servidores web: Apache, PWS (Personal Web Server, Cassini), Tomcat.
    • Apache se puede utilizar para el desarrollo de aplicaciones web en PERL (Practical Extracting and Reporting Language) o PHP (Personal Home Page)
    • PWS puede utilizarse para el desarrollo de aplicaciones web en ASP (Active Server Pages) o PHP en plataformas Windows. Cassini permite el desarrollo en ASP.NET.
    • Tomcat se utiliza para el desarrollo de aplicaciones web mediante servlets Java o páginas JSP (Java Server Pages)
  • un sistema de gestión de bases de datos: MySQL
  • EasyPHP: una herramienta que integra el servidor web Apache, el lenguaje PHP y el SGBD MySQL

10.1. Servidores web, navegadores, lenguajes de script

  1. Servidores web principales
  • Apache (Linux, Windows)
  • Interner Information Server IIS (NT), Personal Web Server PWS (Windows 9x), Cassini (plataformas .NET)
  1. Principales navegadores
  • Internet Explorer (Windows)
  • Netscape (Linux, Windows)
  • Mozilla (Linux, Windows)
  • Opera (Linux, Windows)
  1. Lenguajes de script del lado del servidor
  • VBScript (IIS, PWS)
  • JavaScript (IIS, PWS)
  • Perl (Apache, IIS, PWS)
  • PHP (Apache, IIS, PWS)
  • Java (Apache, Tomcat)
  • Lenguajes .NET
  1. Lenguajes de script del lado del navegador
  • VBScript (IE)
  • JavaScript (IE, Netscape)
  • PerlScript (IE)
  • Java (IE, Netscape)

10.2. Dónde encontrar las herramientas

Netscape
http://www.netscape.com/ (enlace de descargas)
Internet Explorer
http://www.microsoft.com/windows/ie/default.asp
Mozilla
http://www.mozilla.org
PHP
http://www.php.net
Active PERL
http://www.activestate.com
Vbscript, Javascript
http://msdn.microsoft.com/scripting (sigue el enlace «Windows Script»)
JAVA
http://java.sun.com/
Apache
http://www.apache.org/
PWS
incluido en el paquete de opciones NT 4.0 para Windows 95
incluido en el CD de Windows 98
http://www.microsoft.com/ntserver/nts/downloads/recommended/NT4OptPk/win95.asp
IIS (windows NT/2000)
http://www.microsoft.com
Tomcat
http://jakarta.apache.org/tomcat/
JBuilder
http://www.borland.com/jbuilder/
EasyPHP
http://www.easyphp.org/
Cassini
http://www.asp.net

10.3. EasyPHP

Esta aplicación resulta muy práctica, ya que reúne en un mismo paquete:

  • el servidor web Apache
  • un intérprete PHP
  • el SGBD MySQL (3.23.x)
  • una herramienta de administración de MySQL: PhpMyAdmin

La aplicación de instalación tiene el siguiente aspecto:

Image

La instalación de EasyPHP no presenta ningún problema y se crea una estructura de directorios en el sistema de archivos:

Image

easyphp.exe
el ejecutable de la aplicación
apache
la estructura de directorios del servidor Apache
mysql
la estructura de directorios de MySQL SGBD
phpmyadmin
la estructura de directorios de la aplicación phpMyAdmin
php
la estructura de directorios de PHP
www
Raíz de la estructura de las páginas web servidas por el servidor Apache de EasyPHP
cgi-bin
árbol en el que se pueden colocar scripts CGI para el servidor Apache

La principal ventaja de EasyPHP es que la aplicación viene preconfigurada. De este modo, Apache, PHP y MySQL ya están configurados para funcionar conjuntamente. Al iniciar EasyPhp mediante su enlace en el menú de programas, aparece un icono en la parte inferior derecha de la pantalla.

Es la «E» con un punto rojo la que debe parpadear si el servidor web Apache y la base de datos MySQL están operativos. Al hacer clic con el botón derecho del ratón sobre ella, se accede a las opciones del menú:

Image

La opción Administration permite realizar ajustes y pruebas de funcionamiento:

Image

10.3.1. Configuración del intérprete PHP

El botón «Información de PHP» te permitirá comprobar el correcto funcionamiento del binomio Apache-PHP: debería aparecer una página de información PHP:

Image

El botón «Extensiones» muestra la lista de extensiones instaladas para PHP. En realidad, se trata de bibliotecas de funciones.

Image

La pantalla anterior muestra, por ejemplo, que las funciones necesarias para utilizar la base de datos MySQL están presentes.

El botón «Parámetros» muestra el login/motdepasse del administrador de la base de datos MySQL.

Image

El uso de la base de datos MySQL excede el alcance de esta breve presentación, pero queda claro aquí que habría que establecer una contraseña para el administrador de la base de datos.

10.3.2. Administración de Apache

También en la página de administración de EasyPHP, el enlace «Tus alias» permite definir alias asociados a un directorio. Esto permite colocar páginas web en ubicaciones distintas al directorio www del árbol de directorios de easyPhp.

Image

Si en la página anterior se introduce la siguiente información:

Image

y se utiliza el botón valider, se añaden las siguientes líneas al archivo <easyphp>\apache\conf\httpd.conf:

    Alias /st/ "e:/data/serge/web/"

    <Directory "e:/data/serge/web">
        Options FollowSymLinks Indexes
        AllowOverride None
        Order deny,allow
        allow from 127.0.0.1
        deny from all
    </Directory>

<easyphp> hace referencia al directorio de instalación de EasyPHP. httpd.conf es el archivo de configuración del servidor Apache. Por lo tanto, se puede hacer lo mismo editando directamente este archivo. Normalmente, Apache aplica inmediatamente cualquier modificación realizada en el archivo httpd.conf. Si no fuera así, habría que detenerlo y volver a iniciarlo, siempre mediante el icono de EasyPHP:

Image

Para terminar nuestro ejemplo, ahora podemos colocar páginas web en el árbol de directorios e:\data\serge\web:

dos>dir e:\data\serge\web\html\balises.htm

14/07/2002  17:02                3 767 balises.htm

y acceder a esta página utilizando el alias «st»:

Image

En este ejemplo, el servidor Apache se ha configurado para funcionar en el puerto 81. Su puerto por defecto es el 80. Esto se controla mediante la siguiente línea del archivo httpd.conf que ya hemos visto:

Port 81

10.3.3. El archivo de configuración de Apache [htpd.conf] htpd.conf

Cuando se quiere configurar Apache con mayor precisión, hay que modificar «a mano» su archivo de configuración httpd.conf, que se encuentra aquí, en la carpeta <easyphp>\apache\conf:

Image

Estos son algunos puntos a tener en cuenta de este archivo de configuración:


ligne(s)
función
ServerRoot "D:/Program Files/Apache Group/Apache"
indica la carpeta donde se encuentra el árbol de directorios de Apache
Port 80
indica en qué puerto va a funcionar el servidor web. Normalmente es el 80. Al cambiar esta línea, se puede hacer que el servidor web funcione en otro puerto
ServerAdmin root@istia.univ-angers.fr
la dirección de correo electrónico del administrador del servidor Apache
ServerName stahe.istia.uang
el nombre del equipo en el que «se ejecuta» el servidor Apache
ServerRoot "E:/Program Files/EasyPHP/apache"
el directorio de instalación del servidor Apache. Cuando en el archivo de configuración aparecen nombres de archivos relativos, estos se refieren a esta carpeta.
DocumentRoot "E:/Program Files/EasyPHP/www"
la carpeta raíz del árbol de páginas web servidas por el servidor. En este caso, la URL http://machine/rep1/fic1.html corresponderá al archivo E:\Program Files\EasyPHP\www\rep1\fic1.html
<Directory "E:/Program Files/EasyPHP/www">
establece las propiedades de la carpeta anterior
ErrorLog logs/error.log
carpeta de registros, es decir, en realidad <ServerRoot>\logs\error.log: E:\Archivos de programa\EasyPHP\apache\logs\error.log. Este es el archivo que debes consultar si observas que el servidor Apache no funciona.
    ScriptAlias /cgi-bin/ "E:/Program Files/EasyPHP/cgi-bin/"
E:\Archivos de programa\EasyPHP\cgi-bin será la raíz del árbol de directorios donde se podrán colocar los scripts CGI. Así, la URL del script CGI será http://machine/cgi-bin/rep1/script1.pl, y el script URL se encontrará en E:\Program Files\EasyPHP\cgi-bin\rep1\script1.pl.
<Directory "E:/Program Files/EasyPHP/cgi-bin/">
establece las propiedades de la carpeta anterior
LoadModule php4_module "E:/Program Files/EasyPHP/php/php4apache.dll"
AddModule mod_php4.c
líneas de carga de los módulos que permiten a Apache funcionar con PHP4.
    AddType application/x-httpd-php .phtml .pwml .php3 .php4 .php .php2 .inc
establece los sufijos de los archivos que deben considerarse como archivos que deben ser procesados por PHP

10.3.4. Administración de MySQL con PhpMyAdmin

En la página de administración de EasyPhp, haz clic en el botón PhpMyAdmin:

Image

El menú desplegable situado debajo de Accueil permite ver las bases de datos actuales.
El número entre paréntesis indica el número de tablas. Si se selecciona una base de datos, se muestran las tablas que contiene:

La página web ofrece una serie de operaciones sobre la base de datos:

Image

Si se hace clic en el enlace Afficher de user:

Image

Aquí solo hay un usuario: root, que es el administrador de MySQL. Al seguir el enlace Modifier, se podría cambiar su contraseña, que actualmente está vacía, lo cual no es recomendable para un administrador. No diremos nada más sobre PhpMyAdmin, que es un programa muy completo y que merecería una explicación de varias páginas.

10.4. PHP

Hemos visto cómo obtener PHP a través de la aplicación EasyPhp. Para obtener PHP directamente, accederemos a la página web http://www.php.net. PHP no solo se puede utilizar en el ámbito web. También se puede emplear como lenguaje de scripts en Windows. Crea el siguiente script y guárdalo con el nombre date.php:

<?
   // script PHP que muestra la hora
  $maintenant=date("j/m/y, H:i:s",time());
  echo "Nous sommes le $maintenant";
?>

En una ventana de DOS, acceda al directorio de [date.php] y ejecútelo:

dos>"e:\program files\easyphp\php\php.exe" date.php
X-Powered-By: PHP/4.2.0
Content-type: text/html

Nous sommes le 18/07/02, 09:31:01

10.5. PERL

Es recomendable que Internet Explorer ya esté instalado. Si está presente, Active Perl lo configurará para que acepte scripts PERL en las páginas HTML, scripts que serán ejecutados por el propio IE en el lado del cliente. La página web de Active Perl se encuentra en URL http://www.activestate.comA. Tras la instalación, PERL se instalará en un directorio que llamaremos <perl>. Contiene la siguiente estructura de directorios:

DEISL1   ISU        32 403  23/06/00  17:16 DeIsL1.isu
BIN            <REP>        23/06/00  17:15 bin
LIB            <REP>        23/06/00  17:15 lib
HTML           <REP>        23/06/00  17:15 html
EG             <REP>        23/06/00  17:15 eg
SITE           <REP>        23/06/00  17:15 site
HTMLHELP       <REP>        28/06/00  18:37 htmlhelp

El ejecutable perl.exe se encuentra en <perl>\bin. Perl es un lenguaje de scripting que funciona en Windows y Unix. Además, se utiliza en la programación de WEB. Escribamos un primer script:

# script PERL que muestra la hora

# módulos
use strict;

# programa
my ($secondes,$minutes,$heure)=localtime(time);
print "Il est $heure:$minutes:$secondes\n";

Guarda este script en un archivo llamado heure.pl. Abre una ventana DOS, ve al directorio donde se encuentra el script anterior y ejecútalo:

dos>e:\perl\bin\perl.exe heure.pl
Il est 9:34:21

10.6. VBScript, JavaScript, PerlScript

Estos lenguajes son lenguajes de script para Windows. Pueden ejecutarse en diferentes entornos, como

  • Windows Scripting Host para su uso directo en Windows, especialmente para escribir scripts de administración del sistema
  • Internet Explorer. En este caso, se utiliza dentro de páginas HTML, a las que aporta una cierta interactividad imposible de lograr únicamente con el lenguaje HTML.
  • Internet Information Server (IIS), el servidor web de Microsoft en NT/2000, y su equivalente, Personal Web Server (PWS), en Win9x. En este caso, se utiliza VBScript para la programación del lado del servidor web, una tecnología denominada ASP (Active Server Pages) por Microsoft.

Se descarga el archivo de instalación de URL: http://msdn.microsoft.com/scripting y se siguen los enlaces de Windows Script. Se instalan:

  • el contenedor Windows Scripting Host, que permite utilizar diversos lenguajes de script, como VBScript y JavaScript, pero también otros como PerlScript, que viene incluido con Active Perl.
  • un intérprete VBscript
  • un intérprete de JavaScript

Veamos algunas pruebas rápidas. Creemos el siguiente programa vbscript:

' una clase
class personne
  Dim nom
  Dim age
End class

' creación de un objeto «persona»
Set p1=new personne
With p1
  .nom="dupont"
  .age=18
End With

' visualización de las propiedades de la persona p1
With p1
  wscript.echo "nom=" & .nom
  wscript.echo "age=" & .age
End With

Este programa utiliza objetos. Llamémoslo objets.vbs (el sufijo «vbs» indica que se trata de un archivo VBScript). Accedamos al directorio en el que se encuentra y ejecutémoslo:

dos>cscript objets.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

nom=dupont
age=18

Ahora vamos a crear el siguiente programa en JavaScript que utiliza matrices:

// matriz en una variante
// matriz vacía
tableau=new Array();
affiche(tableau);
// tabla que crece dinámicamente
for(i=0;i<3;i++){
  tableau.push(i*10);
}
// Visualización de la tabla
affiche(tableau);
// otra vez
for(i=3;i<6;i++){
  tableau.push(i*10);
}
affiche(tableau);

// tablas multidimensionales
WScript.echo("-----------------------------");

tableau2=new Array();
for(i=0;i<3;i++){
  tableau2.push(new Array());
  for(j=0;j<4;j++){
    tableau2[i].push(i*10+j);
  }//«for j»
}// for i
affiche2(tableau2);

// fin
WScript.quit(0);

// ---------------------------------------------------------
function affiche(tableau){
  // visualización de la tabla
  for(i=0;i<tableau.length;i++){
    WScript.echo("tableau[" + i + "]=" + tableau[i]);
  }//para
}//función

// ---------------------------------------------------------
function affiche2(tableau){
  // visualización de tabla
  for(i=0;i<tableau.length;i++){
    for(j=0;j<tableau[i].length;j++){
      WScript.echo("tableau[" + i + "," + j + "]=" + tableau[i][j]);
    }// for j
  }//«for i»
}//función

Este programa utiliza matrices. Llamémoslo tableaux.js (el sufijo «js» indica que se trata de un archivo JavaScript). Accedamos al directorio en el que se encuentra y ejecutémoslo:

dos>cscript tableaux.js
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.

tableau[0]=0
tableau[1]=10
tableau[2]=20
tableau[0]=0
tableau[1]=10
tableau[2]=20
tableau[3]=30
tableau[4]=40
tableau[5]=50
-----------------------------
tableau[0,0]=0
tableau[0,1]=1
tableau[0,2]=2
tableau[0,3]=3
tableau[1,0]=10
tableau[1,1]=11
tableau[1,2]=12
tableau[1,3]=13
tableau[2,0]=20
tableau[2,1]=21
tableau[2,2]=22
tableau[2,3]=23

Un último ejemplo en Perlscript para terminar. Es necesario tener instalado Active Perl para poder acceder a Perlscript.

<job id="PERL1">
  <script language="PerlScript">
       # de Perl clásico
    %dico=("maurice"=>"juliette","philippe"=>"marianne");
    @cles= keys %dico;
    for ($i=0;$i<=$#claves;$i++){
        $cle=$cles[$i];
      $valeur=$dico{$cle};
        $WScript->echo ("clé=".$cle.", valeur=".$valeur);
    }
     # de PerlScript utilizando objetos de Windows Script
    $dico=$WScript->CreateObject("Scripting.Dictionary");
    $dico->add("maurice","juliette");
    $dico->add("philippe","marianne");
    $WScript->echo($dico->item("maurice"));
    $WScript->echo($dico->item("philippe"));    
  </script>
</job>

Este programa muestra la creación y el uso de dos diccionarios: uno al estilo clásico de Perl y otro con el objeto «Scripting Dictionary» de Windows Script. Guardemos este código en el archivo dico.wsf (wsf es la extensión de los archivos de Windows Script). Vayamos a la carpeta de este programa y ejecutémoslo:

dos>cscript dico.wsf
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.

clé=philippe, valeur=marianne
clé=maurice, valeur=juliette
juliette
marianne

Perlscript puede utilizar los objetos del contenedor en el que se ejecuta. En este caso, se trataba de objetos del contenedor Windows Script. En el contexto de la programación web, los scripts VBscript, JavaScript y Perlscript pueden ejecutarse bien en el navegador IE, bien en un servidor PWS o IIS. Si el script es algo complejo, puede resultar conveniente probarlo fuera del contexto web, dentro del contenedor de Windows Script, tal y como se ha visto anteriormente. De este modo, solo se podrán probar las funciones del script que no utilicen objetos propios del navegador o del servidor. A pesar de esta restricción, esta opción sigue siendo interesante, ya que, por lo general, resulta bastante poco práctico depurar scripts que se ejecutan en servidores web o navegadores.

10.7. JAVA

Java está disponible en URL: http://www.sun.com y se instala en una estructura de directorios que denominaremos <java>, que contiene los siguientes elementos:

22/05/2002  05:51       <DIR>          .
22/05/2002  05:51       <DIR>          ..
22/05/2002  05:51       <DIR>          bin
22/05/2002  05:51       <DIR>          jre
07/02/2002  12:52                8 277 README.txt
07/02/2002  12:52               13 853 LICENSE
07/02/2002  12:52                4 516 COPYRIGHT
07/02/2002  12:52               15 290 readme.html
22/05/2002  05:51       <DIR>          lib
22/05/2002  05:51       <DIR>          include
22/05/2002  05:51       <DIR>          demo
07/02/2002  12:52           10 377 848 src.zip
11/02/2002  12:55       <DIR>          docs

En la carpeta «bin» se encuentran javac.exe, el compilador de Java, y java.exe, la máquina virtual de Java. Se pueden realizar las siguientes pruebas:

  1. Escribir el siguiente script:
//: programa Java que muestra la hora

import java.io.*;
import java.util.*;

public class heure{
  public static void main(String arg[]){
     // se recuperan la fecha y la hora
     Date maintenant=new Date();
      // se muestra
     System.out.println("Il est "+maintenant.getHours()+
        ":"+maintenant.getMinutes()+":"+maintenant.getSeconds());
  }//main
}//clase
  1. Guarda este programa con el nombre heure.java. Abre una ventana DOS. Ve al directorio del archivo heure.java y compílalo:
dos>c:\jdk1.3\bin\javac heure.java
Note: heure.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.

En el comando anterior, hay que sustituir [c:\jdk1.3\bin\javac] por la ruta exacta del compilador javac.exe. Debes obtener, en el mismo directorio que heure.java, un archivo heure.class, que es el programa que ahora va a ejecutar la máquina virtual java.exe.

  1. Ejecuta el programa:
dos>c:\jdk1.3\bin\java heure
Il est 10:44:2

En el comando anterior, [c:\jdk1.3\bin\java] debe sustituirse por la ruta exacta de la máquina virtual Java [java.exe].

10.8. Servidor Apache

Hemos visto que se puede obtener el servidor Apache con la aplicación EasyPhp. Para conseguirlo directamente, iremos a la página web de Apache: http://www.apache.org. La instalación crea una estructura de directorios en la que se encuentran todos los archivos necesarios para el servidor. Llamemos a este directorio <apache>. Contiene una estructura similar a la siguiente:

UNINST   ISU       118 805  23/06/00  17:09 Uninst.isu
HTDOCS         <REP>        23/06/00  17:09 htdocs
APACHE~1 DLL       299 008  25/02/00  21:11 ApacheCore.dll
ANNOUN~1             3 000  23/02/00  16:51 Announcement
ABOUT_~1            13 197  31/03/99  18:42 ABOUT_APACHE
APACHE   EXE        20 480  25/02/00  21:04 Apache.exe
KEYS                36 437  20/08/99  11:57 KEYS
LICENSE              2 907  01/01/99  13:04 LICENSE
MAKEFI~1 TMP        27 370  11/01/00  13:47 Makefile.tmpl
README               2 109  01/04/98   6:59 README
README   NT          3 223  19/03/99   9:55 README.NT
WARNIN~1 TXT           339  21/09/98  13:09 WARNING-NT.TXT
BIN            <REP>        23/06/00  17:09 bin
MODULES        <REP>        23/06/00  17:09 modules
ICONS          <REP>        23/06/00  17:09 icons
LOGS           <REP>        23/06/00  17:09 logs
CONF           <REP>        23/06/00  17:09 conf
CGI-BIN        <REP>        23/06/00  17:09 cgi-bin
PROXY          <REP>        23/06/00  17:09 proxy
INSTALL  LOG         3 779  23/06/00  17:09 install.log
conf
carpeta de archivos de configuración de Apache
logs
carpeta de los archivos de registro (seguimiento) de Apache
bin
Los ejecutables de Apache

10.8.1. Configuración

En la carpeta <Apache>\conf se encuentran los siguientes archivos: httpd.conf, srm.conf, access.conf. En las últimas versiones de Apache, los tres archivos se han fusionado en httpd.conf. Ya hemos presentado los puntos importantes de este archivo de configuración. En los ejemplos que siguen se ha utilizado para las pruebas la versión de Apache de EasyPhp y, por lo tanto, su archivo de configuración. En este, DocumentRoot, que designa la raíz del árbol de páginas web, es e:\program files\easyphp\www.

10.8.2. Enlace PHP - Apache

Para realizar la prueba, crea el archivo intro.php con la siguiente línea:

<? phpinfo() ?>

y colócalo en la raíz de las páginas del servidor Apache (DocumentRoot, mencionado anteriormente). Accede a http://localhost/intro.php. Debería aparecer una lista de información php:

Image

El siguiente script PHP muestra la hora. Ya lo hemos visto antes:

<?
   // tiempo: número de milisegundos desde el 01/01/1970
   // «formato de visualización de fecha y hora»
   // d: día con 2 dígitos
   // m: mes en dos cifras
   // y: año en dos cifras
   // H: hora 0,23
   // i: minutos
   // s: segundos
  print "Nous sommes le " . date("d/m/y H:i:s",time());
?>

Colocamos este archivo de texto en el directorio raíz de las páginas del servidor Apache (DocumentRoot) y lo llamamos date.php. Accedamos con un navegador a la dirección http://localhost/date.phpURL. Aparecerá la siguiente página:

Image

10.8.3. Enlace PERL-APACHE

Se crea mediante una línea con el siguiente formato: ScriptAlias /cgi-bin/ "E:/Program Files/EasyPHP/cgi-bin/" del archivo <apache>\conf\httpd.conf. Su sintaxis es ScriptAlias /cgi-bin/ "<cgi-bin>", donde <cgi-bin> es la carpeta en la que se pueden colocar los scripts CGI. CGI (Common Gateway Interface) es un estándar de comunicación entre el servidor WEB y las aplicaciones. Un cliente solicita al servidor web una página dinámica, c.a.d, es decir, una página generada por un programa. Por lo tanto, el servidor WEB debe solicitar a un programa que genere la página. CGI define la comunicación entre el servidor y el programa, en particular el modo de transmisión de la información entre estas dos entidades. Si es necesario, modifica la línea ScriptAlias /cgi-bin/ «<cgi-bin>» y reinicia el servidor Apache. A continuación, realiza la siguiente prueba:

  1. Escriba el script:
#!c:\perl\bin\perl.exe

# script PERL que muestra la hora

# módulos
use strict;

# programa
my ($secondes,$minutes,$heure)=localtime(time);
print <<FINHTML
Content-Type: text/html

<html>
 <head>
  <title>heure</title>
 </head>
 <body>
  <h1>Il est $heure:$minutes:$secondes</h1>
 </body>
FINHTML
;
  1. Coloca este script en <cgi-bin>\heure.pl, donde <cgi-bin> es la carpeta que puede contener scripts CGI (véase httpd.conf). La primera línea #!c:\perl\bin\perl.exe indica la ruta del ejecutable perl.exe. Modifíquela si es necesario.
  2. Inicie Apache si aún no lo ha hecho
  3. Accede con un navegador a URL http://localhost/cgi-bin/heure.pl. Aparecerá la siguiente página:

Image

10.9. El servidor PWS

10.9.1. Instalación de t

El servidor PWS (Personal Web Server) es una versión personal del servidor IIS (Internet Information Server) de Microsoft. Este último está disponible en los equipos con NT y 2000. En los equipos con Win9x, PWS suele estar disponible con el paquete de instalación de Internet Explorer. Sin embargo, no se instala de forma predeterminada. Es necesario realizar una instalación personalizada de IE y solicitar la instalación de PWS. Además, está disponible en el «NT 4.0 Option Pack for Windows 95».

10.9.2. Primeras pruebas

La ruta de las páginas web del servidor PWS es unidad:\inetpub\wwwroot, donde unidad es el disco en el que has instalado PWS. A partir de ahora, supondremos que esta unidad es D. Por lo tanto, la URL http://machine/rep1/page1.html corresponderá al archivo d:\inetpub\wwwroot\rep1\page1.html. El servidor PWS interpreta cualquier archivo con la extensión .asp (Active Server Pages) como un script que debe ejecutar para generar una página HTML. PWS funciona por defecto en el puerto 80. El servidor web Apache también... Por lo tanto, hay que detener Apache para poder trabajar con PWS si se dispone de ambos servidores. La otra solución es configurar Apache para que funcione en otro puerto. Así, en el archivo de configuración de Apache, se sustituye la línea «Port 80» por «Port 81»; a partir de ese momento, Apache funcionará en el puerto 81 y podrá utilizarse al mismo tiempo que PWS. Si, una vez iniciado PWS, se accede a http://localhost, se obtiene una página similar a la siguiente:

Image

10.9.3. Enlace PHP - PWS

  1. A continuación encontrarás un archivo .reg destinado a modificar el registro. Haz doble clic en este archivo para modificar el registro. En este caso, el archivo dll necesario se encuentra en d:\php4 junto con el ejecutable de PHP. Modifícalo si es necesario. Las barras invertidas (\) deben duplicarse en la ruta de la DLL.
REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map]
".php"="d:\\php4\\php4isapi.dll"
  1. Reinicia el equipo para que se apliquen los cambios en el Registro.
  1. Crea una carpeta «php» en d:\inetpub\wwwroot, que es la raíz del servidor PWS. Una vez hecho esto, activa PWS y ve a la pestaña «Avanzado». Selecciona el botón «Añadir» para crear una carpeta virtual:
Répertoire/Parcourir : d:\inetpub\wwwroot\php
Alias : php
Cocher la case exécuter.
  1. Confirme los cambios y vuelva a ejecutar PWS. Introduzca en d:\inetpub\wwwroot\php el archivo intro.php, que contiene únicamente la siguiente línea:
<? phpinfo() ?>
  1. Solicitar al servidor PWS el archivo URL http://localhost/php/intro.php. Debería aparecer la lista de información PHP que ya se muestra con Apache.

10.10. Tomcat: servlets Java y páginas JSP (Java Server Pages)

Tomcat es un servidor web que permite generar páginas HTML mediante servlets (programas Java ejecutados por el servidor web) o páginas JSP (Java Server Pages), que combinan código Java y código HTML. Es el equivalente a las páginas ASP (Active Server Pages) del servidor IIS/PWS de Microsoft, en las que se mezcla código VBScript o JavaScript con código HTML.

10.10.1. Instalación

Tomcat está disponible en la dirección URL: http://jakarta.apache.org. Se descarga un archivo .exe de instalación. Al ejecutar este programa, lo primero que hace es indicar qué JDK va a utilizar. De hecho, Tomcat necesita un JDK para instalarse y, posteriormente, compilar y ejecutar los servlets de Java. Por lo tanto, es necesario que tengas instalado un JDK de Java antes de instalar Tomcat. Se recomienda utilizar la versión más reciente de JDK. La instalación creará una estructura de directorios <tomcat>:

Image

consiste simplemente en descomprimir este archivo en un directorio. Elige un directorio cuya ruta contenga únicamente nombres sin espacios (por ejemplo, no «Program Files»), ya que existe un error en el proceso de instalación de Tomcat. Por ejemplo, C:\tomcat o D:\tomcat. Llamemos a este directorio <tomcat>. En su interior encontrarás una carpeta llamada jakarta-tomcat y, dentro de ella, la siguiente estructura de directorios:

LOGS           <REP>        15/11/00   9:04 logs
LICENSE              2 876  18/04/00  15:56 LICENSE
CONF           <REP>        15/11/00   8:53 conf
DOC            <REP>        15/11/00   8:53 doc
LIB            <REP>        15/11/00   8:53 lib
SRC            <REP>        15/11/00   8:53 src
WEBAPPS        <REP>        15/11/00   8:53 webapps
BIN            <REP>        15/11/00   8:53 bin
WORK           <REP>        15/11/00   9:04 work

10.10.2. Inicio/parada del servidor web Tomcat

Tomcat es un servidor web, al igual que Apache o PWS. Para iniciarlo, hay enlaces disponibles en el menú de programas:

Start Tomcat
para iniciar Tomcat
Stop Tomcat
para detenerlo

Al iniciar Tomcat, aparece una ventana de DOS con el siguiente contenido:

Image

Esta ventana de DOS se puede minimizar. Permanecerá abierta mientras Tomcat esté activo. A continuación, podemos pasar a las primeras pruebas. El servidor web Tomcat funciona en el puerto 8080. Una vez iniciado Tomcat, abre un navegador web y accede a la dirección http://localhost:8080. Deberías ver la siguiente página:

Image

Sigue el enlace «Servlet Examples»:

Image

Haz clic en el enlace Execute de RequestParameters y, a continuación, en el de Source. Así obtendrás una primera idea de lo que es un servlet de Java. Puedes hacer lo mismo con los enlaces de las páginas JSP.

Para detener Tomcat, utilizaremos el enlace «Stop Tomcat» del menú de programas.

10.11. Jbuilder

JBuilder es un entorno de desarrollo de aplicaciones Java. Para crear servlets Java que no tengan interfaces gráficas, no es imprescindible disponer de un entorno de este tipo. Un editor de texto y un JDK son suficientes. Sin embargo, JBuilder aporta algunas ventajas adicionales con respecto a la técnica anterior:

  • facilidad de depuración: el compilador señala las líneas con errores de un programa y es fácil situarse en ellas
  • sugerencias de código: cuando se utiliza un objeto Java, JBuilder muestra en línea la lista de sus propiedades y métodos. Esto resulta muy práctico, ya que la mayoría de los objetos Java tienen numerosas propiedades y métodos que son difíciles de recordar.

JBuilder se puede encontrar en la página web http://www.borland.com/jbuilder. Hay que rellenar un formulario para obtener el software. Se envía una clave de activación por correo electrónico. Para instalar JBuilder 7, por ejemplo, se procedió de la siguiente manera:

  • se obtuvieron tres archivos zip: uno para la aplicación, otro para la documentación y otro para los ejemplos. Cada uno de estos archivos zip tiene su propio enlace en la página web de JBuilder.
  • Primero se instaló la aplicación, luego la documentación y, por último, los ejemplos
  • Al iniciar la aplicación por primera vez, se solicita una clave de activación: es la que se le ha enviado por correo electrónico. En la versión 7, esta clave es, de hecho, el contenido completo de un archivo de texto que se puede colocar, por ejemplo, en la carpeta de instalación de JB7. En el momento en que se solicite la clave, hay que indicar dicho archivo. Una vez hecho esto, ya no se volverá a solicitar la clave.

Hay algunas configuraciones útiles que hay que realizar si se quiere utilizar JBuilder para crear servlets de Java. De hecho, la versión denominada «Jbuilder personal» es una versión simplificada que, entre otras cosas, no incluye todas las clases necesarias para el desarrollo web en Java. Se puede hacer que JBuilder utilice las bibliotecas de clases que proporciona Tomcat. Para ello, se procede de la siguiente manera:

  • ejecutar JBuilder

Image

  • activar la opción Tools/Configure JDKs

Image

En la sección «JDK Settings» anterior, normalmente aparece en el campo «Name» un «JDK 1.3.1». Si dispone de una versión más reciente de JDK, utilice el botón Change para indicar el directorio de instalación de esta última. En el ejemplo anterior, se ha especificado el directorio E:\Program Files\jdk14, donde se había instalado un JDK 1.4. A partir de ahora, JBuilder utilizará este JDK para sus compilaciones y ejecuciones. En la sección (Clase, Fuente, Documentación) aparece la lista de todas las bibliotecas de clases que explorará JBuilder; en este caso, las clases de JDK 1.4. Las clases de este último no son suficientes para desarrollar aplicaciones web en Java. Para añadir otras bibliotecas de clases, se utiliza el botón Add y se seleccionan los archivos .jar adicionales que se deseen utilizar. Los archivos .jar son bibliotecas de clases. Tomcat 4.x incluye todas las bibliotecas de clases necesarias para el desarrollo web. Se encuentran en <tomcat>\common\lib, donde <tomcat> es el directorio de instalación de Tomcat:

Image

Con el botón Add, añadiremos estas bibliotecas, una por una, a la lista de bibliotecas exploradas por JBuilder:

Image

A partir de ahora, podemos compilar programas Java que cumplan con el estándar J2EE, en particular los servlets Java. JBuilder solo sirve para la compilación; la ejecución la lleva a cabo posteriormente Tomcat, según las modalidades explicadas en el curso.

10.12. El servidor web Cassini

Para trabajar con la plataforma .NET de Microsoft, se puede utilizar el servidor web Cassini. Este está disponible a través de otro producto llamado [WebMatrix], que es un entorno gratuito de desarrollo web para las plataformas .NET, disponible en la URL:

Image

Seguiremos atentamente los pasos de instalación del producto:

  • descargar e instalar la plataforma .NET (versión 1.1 de marzo de 2004)
  • descargar e instalar WebMatrix
  • descargar e instalar MSDE (Microsoft Data Engine), que es una versión limitada de SQL Server.

Una vez finalizada la instalación, el producto [WebMatrix] estará disponible en los programas instalados:

Image

El enlace [ASP.NET] de Web Matrix inicia el desarrollo de IDE a partir de ASP.NET:

Image

El enlace [Class Browser] inicia una herramienta de exploración de clases .NET:

Image

Para probar la instalación, ejecutemos [WebMatrix]:

4231

Image

Al iniciarse por primera vez, [WebMatrix] solicita las características del nuevo projet.C; esta es su configuración por defecto. Se puede configurar para que no aparezca este cuadro de diálogo al iniciarse. Para ello, se utiliza la opción [File/New File]. [WebMatrix] permite crear plantillas para diferentes aplicaciones web. Arriba, hemos especificado con (1) que queríamos crear una aplicación [ASP.ET Page], que es una página web. Con (2), especificamos la carpeta en la que se guardará esta página web. En (3) indicamos el nombre de la página. Debe tener la extensión .aspx. Por último, en (4), especificamos que queremos trabajar con el lenguaje VB.NET, ya que [WebMatrix] también es compatible con los lenguajes C# y J#.

Una vez hecho esto, [WebMatrix] muestra una página de edición del archivo [demo1.aspx]. En ella introducimos el siguiente código:

Image

  • La pestaña [Design] permite «dibujar» la página web que queremos crear. El proceso es similar al de un IDE para la creación de aplicaciones de Windows.
  • El diseño gráfico de la página web en [Design] generará código HTML en la pestaña [HTML]
  • La página web puede contener controles que generen eventos a los que hay que responder, como por ejemplo un botón. Estos eventos serán gestionados por el código VB.NET, que se colocará en la pestaña [Code]
  • en definitiva, el archivo demo1.aspx es un archivo de texto que combina el código HTML y el código VB.NET, resultado del diseño gráfico realizado en [Design], del código HTML que se ha podido añadir manualmente en [HTML] y del código VB.NET incluido en [Code]. El archivo completo está disponible en la pestaña [All].
  • Un desarrollador con experiencia en ASP.ET puede crear el archivo demo1.aspx directamente con un editor de texto sin necesidad de utilizar ningún IDE.

Seleccionemos la opción [All]. Observamos que [WebMatrix] ya ha generado código:

<%@ Page Language="VB" %>
<script runat="server">

    ' Insertar aquí el código de la página
    '

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <!-- Insertar contenido aquí -->
    </form>
</body>
</html>

No vamos a intentar explicar aquí este código. Lo transformamos de la siguiente manera:

<html>
<head>
    <title>Démo asp.net </title>
</head>
<body>
    Il est <% =Date.Now.ToString("hh:mm:ss") %>
</body>
</html>

El código anterior es una combinación de HTML y del código VB.NET. Este se ha colocado entre las etiquetas <% ... %>. Para ejecutar este código, utilizamos la opción [View/Start]. [WebMatrix] inicia entonces el servidor web Cassini si aún no está en marcha

Image

Podemos aceptar los valores por defecto que se proponen en este cuadro de diálogo y seleccionar la opción [Start]. El servidor web ya está activo. A continuación, [WebMatrix] iniciará el navegador predeterminado del equipo en el que se encuentra y solicitará la página URL http://localhost:8080/demo1.aspx:

Image

Es posible utilizar el servidor Cassini fuera de [WebMatrix]. El ejecutable del servidor se encuentra en <WebMatrix>\<versión>\WebServer.exe, donde <WebMatrix> es el directorio de instalación de [WebMatrix] y <versión> es su número de versión:

Image

Abramos una ventana de DOS y accedamos a la carpeta del servidor Cassini:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>dir
...
29/05/2003  11:00               53 248 WebServer.exe
...

Ejecutemos [WebServer.exe] sin parámetros:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver

Aparece una ventana de ayuda:

Image

La aplicación [WebServer], también conocida como servidor web Cassini, admite tres parámetros:

  • /port: número de puerto del servicio web. Puede ser cualquiera. Por defecto, el valor es 80
  • /path: ruta física de una carpeta del disco
  • /vpath: carpeta virtual asociada a la carpeta física anterior. Hay que tener en cuenta que la sintaxis no es /path=ruta, sino /vpath:ruta, al contrario de lo que indica el panel de ayuda anterior.

Colocamos el archivo [demo1.aspx] en la siguiente carpeta:

Image

Asociemos a la carpeta física [d:\data\devel\webmatrix] la carpeta virtual [/webmatrix]. El servidor web se podría iniciar de la siguiente manera:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver /port:100 /path:"d:\data\devel\webmatrix" /vpath:"/webmatrix"

El servidor Cassini queda entonces activo y su icono aparece en la barra de tareas. Si hacemos doble clic sobre él:

Image

Aparecen los parámetros de inicio del servidor. También existe la posibilidad de detener [Stop] o reiniciar [Restart] el servidor web. Si se hace clic en el enlace [Root URL], se muestra la raíz del árbol web del servidor en un navegador:

Image

Sigamos el enlace [demos]:

Image

y el enlace [demo1.aspx]:

Image

Así pues, vemos que si la carpeta física P=[d:\data\devel\webmatrix] se ha asociado a la carpeta virtual V=[/webmatrix] y el servidor funciona en el puerto 100, la página web [demo1.aspx], que se encuentra físicamente en [P\demos], será accesible localmente a través de URL y [http://localhost:100/V/demos/demo1.aspx].

Hemos demostrado, en este caso concreto, que el desarrollo web ASP.NET se puede llevar a cabo con un simple editor de texto para escribir las páginas web y el servidor web Cassini para probarlas. Esto es así independientemente de la complejidad de la aplicación. El IDE [WebMatrix] aporta ciertas facilidades en el desarrollo, pero son escasas. Una herramienta como Visual Studio.NET es mucho más eficaz, pero se trata de un producto comercial.