Ejercicios (puesta en marcha) - Apache (1) - Enunciados

Puede consultar unas posibles soluciones de estos ejercicios.

Apache (1) 0 - Copia de seguridad

Realice una copia de seguridad de los archivos de configuración de Apache, PHP, MariaDB y phpMyAdmin que se encuentran en la carpeta de XAMPP (en principio, C:\xampp).

  1. Cree una carpeta donde guardar las sucesivas copias de seguridad. Por ejemplo: IAW > Backups Configuración XAMPP > Backup Configuración XAMPP 2025-09-25
  2. Copie la carpeta y ficheros de configuración siguientes:
    • Apache: carpeta apache/conf
    • PHP: fichero php/php.ini
    • MariaDB: fichero mysql/bin/my.ini
    • phpMyAdmin: fichero phpmyadmin/config.inc.php

Ejercicios Apache (1) 0

Apache (1) 1 - Directiva DocumentRoot

El objetivo de este ejercicio es comprobar que Apache sirve los ficheros existentes en el directorio indicado por la directiva DocumentRoot del archivo de configuración httpd.conf.

  1. Detenga Apache si lo había iniciado. Abra la dirección http://localhost y que compruebe que no se recibe respuesta:

    Ejercicios Apache (1) 1

  2. En el caso de Firefox, cuando no se recibe respuesta, Firefox suele modificar automáticamente la petición de http a htpps. Compruébelo haciendo clic en la barra de dirección para ver el protocolo:

    Ejercicios Apache (1) 1

  3. Si iniciáramos Apache y recargáramos la página, Firefox mostraría un aviso de seguridad indicando que el certificado de seguridad de Apache no es válido. Efectivamente, XAMPP no incluye un certificado válido, es el usuario el que debe obtener un certificado válido para el servidor.

    Ejercicios Apache (1) 1

    ¡Atención! Para evitar este problema, en estos apuntes utilizaremos siempre el protocolo http, nunca el https.

  4. Inicie Apache y compruebe que escribiendo la dirección http://localhost se muestra la página de inicio de XAMPP (concretamente, se produce una redirección a la URL http://localhost/dashboard/):

    Ejercicios Apache (1) 1

  5. Abra el archivo principal de configuración de Apache httpd.conf con el Panel de control de XAMPP.
  6. Compruebe que en el archivo httpd.conf la directiva DocumentRoot tiene el valor "C:/xampp/htdocs":
    DocumentRoot "C:/xampp/htdocs"
    <Directory "C:/xampp/htdocs">
        #
    ...
    
  7. En el directorio C:/xampp/htdocs, cree con un editor de texto plano el fichero e01-1.html. Por ejemplo, con el contenido siguiente:
    <!DOCTYPE html>
    <html lang="es">
    <head>
      <meta charset="utf-8">
      <title>Ejercicio Apache (1) 1</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
      <h1>¡Hola, amigo!</h1>
    </body>
    </html>
    
  8. Compruebe en el navegador que puede ver esta página web escribiendo la dirección http://localhost/e01-1.html

    Ejercicios Apache (1) 1

Apache (1) 2 - Modificar directiva DocumentRoot

El objetivo de este ejercicio es comprobar que es posible alojar páginas web en una carpeta distinta a la predeterminada.

  1. Modifique en el fichero httpd.conf la directiva DocumentRoot de manera que apunte a la carpeta "C:\tmp\apache-1\". Modifique únicamente la línea de la directiva DocumentRoot.
  2. Abra la URL http://localhost en el navegador y compruebe que sigue viendo la página de inicio de XAMPP.

    Ejercicios Apache (1) 2

    ¡Atención! Esto se debe a que no ha reiniciado el servidor. Recuerde reiniciar siempre el servidor tras modificar el archivo de configuración.

  3. Reinicie el servidor y compruebe que Apache no puede iniciarse.

    Ejercicios Apache (1) 2

    ¡Atención! Esto se debe a que la directiva está haciendo una referencia a un directorio que no existe. Recuerde hacer siempre referencia a directorios que ya existen o cree los directorios a los que haga referencia.

  4. Cree la carpeta "C:\tmp\apache-1\". Reinicie el servidor y compruebe que puede iniciarse.
  5. Abra la URL http://localhost en el navegador y compruebe que el acceso a la carpeta no está permitido (el código de error HTTP correspondiente es 403).

    Ejercicios Apache (1) 2

    ¡Atención! Esto se debe a que en el archivo de configuración de Apache hay ahora una referencia a una carpeta del sistema de archivos sin que haya también una directiva Directory para ella.

  6. Modifique la directiva Directory que se encuentra a continuación de la directiva DocumentRoot de manera que apunte a la misma carpeta "C:\tmp\apache-1\". Reinicie el servidor y compruebe que puede iniciarse.
  7. Abra la URL http://localhost en el navegador y compruebe que puede acceder a la carpeta. Compruebe que Apache le muestra el contenido de la carpeta (vacía).

    Ejercicios Apache (1) 2

  8. Cree con un editor de texto plano en la carpeta C:\tmp\apache-1\ un fichero que se llame prueba-1.html con el siguiente contenido:
    <!DOCTYPE html>
    <html lang="es">
    <head>
      <meta charset="utf-8">
      <title>prueba-1</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
      <h1>Esta es la página prueba-1.html</h1>
    </body>
    </html>
    
  9. Recargue la URL http://localhost en el navegador y compruebe que Apache muestra el fichero prueba-1.html en la carpeta.

    Ejercicios Apache (1) 2

  10. Haga clic en el nombre del fichero y compruebe que Apache muestra el contenido de la página prueba-1.html. Compruebe también que el navegador muestra en la barra de dirección el camino hasta el fichero.

    Ejercicios Apache (1) 2

Apache (1) 3 - Directiva Listen

El objetivo de este ejercicio es comprobar que Apache "escucha" las peticiones en el puerto indicado por la directiva Listen del archivo de configuración httpd.conf.

  1. Inicie Apache y compruebe que escribiendo la dirección http://localhost se muestra el contenido de la carpeta indicada por la directiva DocumentRoot:

    Ejercicios Apache (1) 3

  2. Modifique la directiva Listen al valor 8000:
    Listen 8000
    
  3. Recargue la página en el navegador y compruebe que Apache no responde:

    Ejercicios Apache (1) 3

  4. Abra la dirección http://localhost:8000 para comprobar que el motivo por el que Apache no respodía es que Apache está atendiendo al puerto 8000. Compruebe que haciendo la petición al puerto que atiende Apache, sí que se muestra el contenido:

    Ejercicios Apache (1) 3

  5. Haga clic en el nombre del fichero y compruebe que Apache muestra el contenido de la página prueba-1.html. Compruebe también que el navegador muestra en la barra de dirección el camino hasta el fichero que es ahora http://localhost:8000/prueba-1.html .

    Ejercicios Apache (1) 2

  6. Devuelva la directiva Listen al valor 80:
    Listen 80
    
  7. Recargue la URL http://localhost:8000/prueba-1.html y en el navegador compruebe que Apache ya no atiende al puerto 8000:

    Ejercicios Apache (1) 3

  8. Abra la dirección http://localhost:80/prueba-1.html y compruebe que el navegador puede mostrar la dirección, aunque elimina la referencia al puerto 80 porque es el puerto habitual.

    Ejercicios Apache (1) 1

Apache (1) 4 - Directiva DirectoryIndex

  1. Cree con un editor de texto plano un archivo test.html en la carpeta "C:\tmp\apache-1\". Por ejemplo:
    <!DOCTYPE html>
    <html lang="es">
    <head>
      <meta charset="utf-8">
      <title>test</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
      <h1>Esta es otra página de prueba.</h1>
    </body>
    </html>
    
  2. Abra la URL http://localhost en el navegador y compruebe que Apache le muestra los dos ficheros.

    Ejercicios Apache (1) 3

  3. Cambie el nombre del fichero test.html a home.html y modifique su contenido.
    <!DOCTYPE html>
    <html lang="es">
    <head>
      <meta charset="utf-8">
      <title>home</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
      <h1>Esta es la página home.html</h1>
    </body>
    </html>
    
  4. Recargue la página en el navegador y compruebe que Apache le muestra la página home.html aunque la dirección siga siendo http://localhost.

    Ejercicios Apache (1) 4

    ¡Atención! Cuando se solicita una URL que corresponde a una carpeta, Apache puede entregar una página concreta, en este caso home.html.

  5. Cambie el nombre del fichero home.html a index.html y modifique su contenido.
    <!DOCTYPE html>
    <html lang="es">
    <head>
      <meta charset="utf-8">
      <title>index</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
      <h1>Esta es la página index.html</h1>
    </body>
    </html>
    
  6. Recargue la página en el navegador y compruebe que Apache le muestra la página index.html aunque la dirección siga siendo http://localhost.

    Ejercicios Apache (1) 4

    ¡Atención! Cuando se solicita una URL que corresponde a una carpeta, Apache puede entregar una página concreta, en este caso index.html.

  7. Compruebe en el archivo httpd.conf el valor de la directiva DirectoryIndex:
    <IfModule dir_module>
        DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
                       default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
                       home.php home.pl home.cgi home.asp home.shtml home.html home.htm
    </IfModule>
    

    Relacione la directiva DirectoryIndex con el comportamiento observado y conteste las siguientes preguntas (confirme sus respuestas aplicándolas):

    • ¿Qué otro nombre podríamos haber dado al archivo test.html para que se mostrara al abrir la dirección http://localhost?
    • ¿Qué ocurrirá si en la carpeta hay tanto un archivo index.html como un archivo home.html? ¿Cuál se abrirá?
    • ¿Cómo podríamos cambiar la directiva DirectoryIndex para que se abriera el otro archivo?
    • ¿Cómo podríamos cambiar la directiva DirectoryIndex para que se abriera el archivo prueba-1.html en vez de los archivos index.html o home.html?
  8. Restaure el valor de la directiva DirectoryIndex a su valor inicial:
    <IfModule dir_module>
        DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
                       default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
                       home.php home.pl home.cgi home.asp home.shtml home.html home.htm
    </IfModule>
    

Apache (1) 5 - Directiva Alias

  1. Cree en la carpeta Documentos las carpetas IAW IAW > PHP y IAW > PHP > prueba y cree en las dos últimas los ficheros test-1.html y test-2.html, respectivamente.
    <!DOCTYPE html>
    <html lang="es">
    <head>
      <meta charset="utf-8">
      <title>test 1</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
      <h1>Esta es la página test-1.html</h1>
    </body>
    </html>
    
    <!DOCTYPE html>
    <html lang="es">
    <head>
      <meta charset="utf-8">
      <title>test 2</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
      <h1>Esta es la página test-2.html</h1>
    </body>
    </html>
    

    Ejercicios Apache (1) 5

    Ejercicios Apache (1) 5

  2. Cree el alias /php que enlace a la carpeta "C:\Users\mclibre\Documents\IAW\PHP" (en el ejemplo XXX es el nombre del usuario de Windows)
        # Alias: Maps web paths into filesystem paths and is used to
        # access content that does not live under the DocumentRoot.
        # Example:
        # Alias /webpath /full/filesystem/path
        #
        # If you include a trailing / on /webpath then the server will
        # require it to be present in the URL.  You will also likely
        # need to provide a <Directory> section to allow access to
        # the filesystem path.
    
        Alias /php "C:\Users\XXX\Documents\IAW\PHP"
        <Directory "C:\Users\XXX\Documents\IAW\PHP">
            Options Indexes FollowSymLinks Includes ExecCGI
            AllowOverride All
            Require all granted
        </Directory>
    
  3. Abra la URL http://localhost/php en el navegador y compruebe que Apache le muestra el directorio:

    Ejercicios Apache (1) 5

  4. Haga clic en el archivo test-1.html y compruebe que Apache le muestra su contenido:

    Ejercicios Apache (1) 5

  5. Haga clic en el directorio prueba y compruebe que Apache le muestra el directorio:

    Ejercicios Apache (1) 5

  6. Haga clic en el archivo test-2.html y compruebe que Apache le muestra su contenido:

    Ejercicios Apache (1) 5

  7. Añada otro alias, /prueba, que enlace a la carpeta "C:\Users\mclibre\Documents\IAW\PHP\prueba"
  8. Abra la URL http://localhost/prueba en el navegador y compruebe que Apache le muestra el directorio:

    Ejercicios Apache (1) 5

  9. Haga clic en el archivo test-2.html y compruebe que Apache le muestra su contenido:

    Ejercicios Apache (1) 5

Apache (1) 6 - Configuración para el curso

  1. Recupere la configuración original de Apache copiando el archivo httpd.conf de la copia de seguridad en la carpeta C:\xampp\apache\conf.
  2. Cree el alias /iaw/php que enlace a la carpeta "C:\Users\XXX\Documents\IAW\PHP" (donde XXX es el nombre del usuario de Windows)
  3. Borre el contenido de la carpeta IAW > PHP y cree las carpetas ejercicios y pruebas

    Ejercicios Apache (1) 6

  4. Abra la URL http://localhost/iaw/php en el navegador y compruebe que Apache le muestra el directorio:

    Ejercicios Apache (1) 6