educación, informática y demás

HTTP

Servidor HTTP. Apache2

Instalando el servidor HTTP

Vamos a instalar un servidor HTTP en nuestro sistema GNU/Linux Debian 11. El servidor elegido será apache2. Para ello, vamos a actualizar la lista de paquetes y después instalaremos el paquete apache2.

Actualizamos la lista de paquetes

Instalamos el paquete apache2

Instalamos el paquete apache2

Directorio raíz de apache

El servicio HTTP necesita poder acceder a los sitios webs almacenados en el sistema para poder servirlos a los clientes HTTP.

El directorio raíz de apache, es decir dónde se almacenan los sitios web por defecto es /var/www/html. Todo lo que pongamos en este directorio estará disponible para que lo consulten los clientes web a través de la red con el protocolo http.

Echa un vistazo al contenido de dicho directorio y del fichero de índice que aparece ahí.

Mostramos el contenido del directorio /var/www/html y los permisos del directorio, para saber quienes pueden acceder y qué tipo de operaciones pueden hacer.

Accediendo desde Windows a nuestro servidor web

Desde Windows, con el navegador web, accede al servidor GNU/Linux. Tan solo tendrás que escribir en la barra de direcciones la dirección IP del sistema GNU/Linux. El navegador, que es un cliente HTTP, por defecto se conectará al puerto HTTP y nos debería mostrar una página web.

Estamos accediendo al serbvidor GNU/Linux Debian 11 dónde está instalado el servidor http apache2.

Se carga una página por defecto con información de apache2. Esta página es la que está almacenada en /var/www/html con el nombre index.html

Creando una página de índice personalizada

Crea un fichero index.html en tu directorio personal que muestre tu nombre y apellidos y alguna cosa más que creas interesante.

Ahora, vamos a renombrar el fichero de índice que está en /var/www/html con el nombre index.OLD. Por último, copiamos el fichero index.html al directorio /var/www/html.

Accede al servidor Web de GNU/Linux desde Windows. Como puedes observar, se carga la nueva página web.

Ahora accedemos desde Windows.

Compartiendo ficheros

Como hemos dicho, todos los ficheros y directorios que creemos dentro del directorio raíz del servidor apache2 estará disponible para los clientes, siempre y cuando los permisos locales lo permitan.

Este directorio raíz se le conoce como DocumentRoot, o raíz de documentos. Por defecto este directorio es /var/www/html.

En este ejemplo, vamos a crear un fichero llamado saludo.txt cuyo contenido será nuestro nombre y otro fichero llamado examenes.txt cuyo contenido será nuestro nombre también.

Creamos el fichero saludo.txt en nuestro directorio personal

Vamos a crear un directorio llamado datos en /var/www/html

A continuación, moveremos saludo.txt a /var/www/html. Después, vamos a crear un directorio llamado datos dentro de /var/www/html y moveremos el fichero examenes.txt al directorio /var/www/html/datos.

Vamos a comprobar que se han movido dónde queríamos

Si nos fijamos, según los permisos locales de los ficheros, todo el mundo puede leerlos y en el directorio datos todo el mundo puede acceder para leer.

Bien, como este es el directorio raíz del servidor, todo lo que hemos dejado aquí estará disponible a través del servidor HTTP. Tan solo tendremos que utilizar la URL adecuada para acceder a dichos ficheros.

Si intentamos acceder al servidor web utilizando como URL http://192.168.100.250/ estamos accediendo al directorio raíz que está en la máquina 192.168.100.250 con el protocolo htttp. Cómo no le damos en la ruta del recurso remoto el nombre de ningún fichero, por defecto nos está cargando index.html (esto es cosa de apache2).

¿Cómo podemos cargar el fichero saludo.txt que está en el DocumentRoot o raíz del servidor http? Pues poniendo la ruta de ese recurso: http://192.168.100.250/saludo.txt

Cargando el fichero saludo.txt que está dentro del raíz del servidor HTTP.

Si nos fijamos, la ruta del fichero para el servidor HTTP será /saludo.txt. Cuando le llegue esta petición a apache2 se irá a buscar el fichero /saludo.txt a partir de su directorio raíz o DocumentRoot, que es por defecto /var/www/html. Por tanto, si unimos ambas rutas, la ruta del fichero en el sistema local será /var/www/html/saludo.txt

¿Qué pasará con el directorio datos? ¿Qué pasará con el fichero examenes.txt que está en el directorio datos?

Contenido del directorio /datos (/var/www/html/datos en local)

Si ponemos la ruta del recurs /datos en la url, es decir http://192.168.100.250/datos indicamos a apache2 que queremos que nos cargue ese recurso. Al tratarse de un directorio, apache2 por defecto busca un fichero de índice: index.html, index.php, index.htm, etc… si no encuentra un fichero de índice válido, muestra el contenido del directorio.

Pero, ¿qué pasa si queremos acceder directamente a un fichero que está dentro de un directorio? Pues ponemos la ruta del fichero partiendo del raíz.

Accediendo al fichero examenes.txt que está en /datos (DocumentRoot: /var/www/html + /datos/examenes = /var/www/html/datos/examenes.txt)

Si nos fijamos, al final una página web está compuesta por una serie de ficheros almacenados en un sistema de ficheros al que tiene acceso el servidor HTTP.

Creando nuestro sitio web 🙂

Crea un sitio web con tu nombre de pila dentro de tu servidor HTTP apache2. La URL de acceso a tu sitio web será: http://192.168.100.250/javier, dónde javier lo vas a sustituir por tu nombre de pila.

Dentro del directorio de tu sitio web, tendrás que crear un directorio, crea una página de índice dónde se muestre una imagen junto con tu nombre y apellidos.

¡Recuerda!

  • Apache buscará una página de índice válida cuando trate de acceder a un directorio.
  • Las imágenes digitales son ficheros que, en una página web, deberían estar dentro del directorio de la página web (mejor en un subdirectorio).

Solución

Lo primero que podemos hacer es crear el directorio que contendrá nuestro sitio web

Directorio que contendrá nuestra página web

Podemos comprobar que está accesible si queremos, aunque no se mostrará nada de nada porque no tiene contenido.

Accediendo al directorio /javier en 192.168.100.250 a través de http: http://192.168.100.250/javier

Ahora vamos a crear una página de índice, podemos aprovechar la que hemos creado para el sitio web principal.

Creando una página web simple

Ahora copiamos el fichero index.html al directorio donde está nuestro sitio web /var/www/html/javier

No obstante, hemos olvidado insertar la imagen en nuestra página web. No pasa nada, volvemos a editar el fichero de índice, pero antes nos descargamos una imagen.

Copiamos los ficheros index.html y linux.png.

Copiando los ficheros a nuestro sitio web

Vale, esto está bien, pero es un poco engorroso. Tenemos que copiar como superusuario el contenido de nuestra web a nuestro directorio y eso no lo puede hacer todo el mundo.

Sitio web gestionado por un usuario del sistema

Vamos a configurar un sitio web llamado sistemas que estará dentro del directorio /sistemas. Este sitio web será gestionado por el usuario marinapg de forma autónoma. Es decir, podrá dejar cualquier contenido cuando ella quiera.

Para ello, lo único que tenemos que hacer es crear el directorio sistemas dentro del DocumentRoot y configurar los permisos para que marinapg pueda hacer cualquier cosa dentro de ese directorio.

Comprobamos que marinapg existe

Creamos el directorio sistemas dentro de /var/www/html

El propietario tiene todos los permisos

Si queremos que marinapg gestione este sitio web, tan solo tenemos que cambiar el propietario de forma que marinapg podrá subir cualquier contenido en ese directorio para que esté disponible a través del servidor web.

Marinapg es la webmaster!

¿Y si esto… se pudiera hacer desde el servidor FTP?

Dejar una respuesta