Contenidos
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
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.
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.
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?
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.
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
Podemos comprobar que está accesible si queremos, aunque no se mostrará nada de nada porque no tiene contenido.
Ahora vamos a crear una página de índice, podemos aprovechar la que hemos creado para el sitio web principal.
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.
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
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.
¿Y si esto… se pudiera hacer desde el servidor FTP?
Dejar una respuesta