Rocío Alt. Abreu Ortiz 2009-3393 Servidor Web: Apache Un servidor web es un programa que se ejecuta continuamente en un computador, manteniéndose a la espera de peticiones de ejecución que le hará un cliente o un usuario de Internet. El servidor web se encarga de contestar a estas peticiones de forma adecuada, entregando como resultado una página web o información de todo tipo de acuerdo a los comandos solicitados. Apache es un servidor Open Source, para plataformas Unix, Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la noción de sitio virtual. Es el más usado por los servidores en todo Internet. Características de Apache Soporte para los lenguajes perl, python, tcl y PHP. Módulos de autenticación: mod_access, mod_auth y mod_digest. Soporte para SSL y TLS. Permite la configuración de mensajes de errores personalizados y negociación de contenido. Permite autenticación de base de datos basada en SGBD. En este tutorial instalaremos y configuraremos el servidor web: Apache2, en el sistema operativo Debian Squeeze. 1- Debes abrir la terminal root, para lo cual debes hacer click en Aplicaciones Accesorios Terminal root.
Instalación del servidor Apache 1- Antes de realizar la instalación del servidor Apache, es recomendable que actualices los repositorios, utilizando el comando apt-get update, y luego instales esas aplicaciones con el comando apt-get install update. 2- Luego de haber actualizado los repositorios, nos toca instalar el servidor Apache, para eso utiliza el comando apt-get install apache2 En mi caso el servidor Apache está instalado y actualizado, como podrán observar en la imagen; esto no quiere decir que todas las veces sucederá lo mismo. 3- Para comprobar que efectivamente tenemos el servidor web Apache instalado, podemos hacer uso del comando service status-all, que nos mostrará una lista con todos los servicios activos.
4- Una vez que hemos comprobado que el servicio del servidor Apache 2 esta instalado en nuestro sistema operativo, es momento de reiniciarlo empleando la siguiente línea /etc/init.d/apache2 restart y presiona Enter. Para iniciar el servidor Apache. 5- Ahora haremos una prueba para ver si esta funcionando, abriendo el navegador y escribiendo localhost ó 127.0.0.1 y si estas en otro computador escribe la dirección ip de la pc que posee el servicio activo. Esta es la página predeterminada del servidor.
Publicar una página web en el servidor Apache 1- Para la publicación de una página web en el servidor Apache, debemos de dirigirnos al directorio /var/www, mediante el comando cd /var/www. Este es el directorio por defecto del servidor, todo lo que se encuentre ahí, será accesible por la web. 2- Como podrás observar dentro se encuentra el archivo index.html, vamos a modificarlo y para eso debes escribir nano index.html y presiona Enter. Puedes hacerle los cambios que desees, empleando sintaxis básicas del lenguaje HTML. 3- Antes de visualizar los cambios en el archivo index.html, modificaremos el archivo /etc/hosts para ponerle una dirección web (nombre) a nuestra dirección IP, de manera que solo tengamos que introducir el nombre y se nos re-direccione a los archivos que estén en /var/www. En la terminal escribe nano /etc/hosts. Cuando hayas modificado, guarda los cambios (CTRL + O) y cierra la ventana (CTRL + X)
4- Ahora iremos al navegador, he introduciremos el nombre del servidor que en este caso es www.rox-debian.com, para visualizar los cambios que hemos hecho en el archivo index.html.
Directorio de datos que permita bajarse los archivos 1- En la terminal escribe cd /var/www, dentro de este directorio, crearemos la carpeta que tendrá los archivos para la descarga. 2- Al introducir el comando ls, podemos observar que nuestro directorio Estudiantes, ha sido creado. 3- Agrégale los archivos que deseas compartir por medio del directorio. Puedes hacerlo por gráfico, como por la terminal. En mi caso lo hare por la terminal, pues ya sé que archivo deseos compartir y en que lugar están. Primero, dirígete al directorio en donde se encuentran los archivos. Segundo, verifica que están ahí. Por último, utilizando el comando mv [nombre del archivo] /var/www/estudiantes Comprueba que efectivamente se encuentran en la carpeta Estudiantes. 4- Luego, de haber hecho estos cambios en el servidor, debemos de reiniciarlo escribiendo /etc/init.d/apache2 restart
5- En el navegador, escribe la dirección del servidor/estudiantes. De esta manera podemos visualizar los archivos que se encuentran en el servidor. En mi caso sería www.rox-debian/estudiantes Si haces click encima de algún archivo se te abrirá en una ventana, por ejemplo si haces click encima de Hola.doc, podrás leer su contenido.
PSD: Si deseas renombrar ó borrar el archivo index.html, que trae nuestro servidor apache, debes registrarte como nautilus, porque ni siquiera estando en superusuario ó root lo permite. Nautilus es el gestor de archivos oficial del escritorio GNOME. Permite navegar entre directorios, previsualizar archivos y ejecutar las aplicaciones asociadas a éstos. También es el responsable de gestionar los iconos del escritorio GNOME. Funciona con sistemas de ficheros locales y remotos. Espacio web para cada usuario Ahora crearemos algunos directorios para usuarios dentro del servidor Apache, de modo que crearemos un espacio con su propio index para cada usuario del sistema. 1- Cada usuario del sistema dispondrá de un espacio web que se almacenará dentro de /home en una carpeta llamada public_html. Esta carpeta debemos de crearla nosotros, por lo tanto debemos de dirigirnos al directorio /home/[nombre del usuario] y empleando el comando mkdir public_html crearemos el directorio. No olvides que debes que configurar los permisos de ese nuevo directorio usando en comando chmod. El permiso 644, quiere decir que el propietario de la carpeta, que en este caso será el usuario rocio tendrá acceso a lectura y escritura, y todos los demás solo tendrán permiso de lectura nada más. Para otorgar permiso full utiliza el código 777 2- Realiza el paso anterior usando otras cuentas de usuarios que ya tengas creadas en el sistema.
3- Para que cada usuario tenga su propio espacio personal, debemos activar el módulo de Apache userdir. Para esto, escribimos en la terminal el comando a2enmod userdir y presiona Enter. 4- Para que a2enmod userdir, tenga efecto debemos de reiniciar el servidor Apache, empleando la siguiente línea: /etc/init.d/apache2 restart 5- Antes, de acceder al espacio web de los usuarios, vamos a crearle el archivo index.html Aquí mostraré como crearlo, y ustedes harán los demás para los otros usuarios siguiendo este patrón. Escribe en la terminal gedit index.html
6- Redacta algo sencillo empleando algunas sintaxis básicas de HTML, como puedes ver en la imagen. 7- Luego, haz click en Archivo Guardar como. Para especificar el lugar donde se guardará. 8- En Guardar en la carpeta: Selecciona Escritorio para que sea más fácil ubicarlo.
9- Regresa a la terminal, y escribe cd Desktop y luego ls. Como verás el archivo está presente. Entonces ahora lo moveremos a la carpeta public_html del usuario rocio, para eso empleamos el comando mv (mover). Sintaxis para el comando mv mv [nombre del archivo] /ruta completa hacia donde se moverá 10- Por último, vamos a dirigirnos a la ruta /home/rocio/public_html para comprobar que se ha movido correctamente. 11- Para acceder a estos espacios web, solo debes escribir la dirección web ó IP que identifica el servidor seguido de ~nombre del usuario. El carácter ~ comúnmente conocido como gusanillo sirve para indicarle a Apache que debe servir la página desde el home del usuario (en Linux el gusanillo equivale a la carpeta home). En el navegador introduce los siguiente: http:// ip-del-servidor/~nombre del usuario. En mi caso es www.rox-debian.com/~rocio www.rox-debian.com/~rochell www.rox-debian.com/~maris0l
Para ir un poco más allá de lo que te presento en este How to, puede crear directorio dentro de cada carpeta public_html de los usuarios y agregarle archivos para que se pueden compartir y descargar. Dominios virtuales ó VirtualHost Los dominios virtuales consisten en utilizar un mismo servidor web para atender varios dominios. Se utiliza en el caso en el que se dispone de una sola dirección IP pública y la misma está asociada a varios nombres de dominio. Por ejemplo, la IP X.Y.Z.W está asociada a mi_dominio.com.do y a tu_dominio.com.do y los sitios alojados en un mismo servidor. Para que funcionen varios dominios virtuales en un host que tiene asociado una única IP se debe utilizar la cláusula VirtualHost.
En /etc/apache2/site-available vamos a tener un archivo por cada uno de nuestros sitios, que luego serán enlazados dinámicamente desde /etc/apache2/sites-enabled 1- En la terminal escribe cd /etc/apache2/site-available y presiona Enter. Dentro de este directorio creamos los dominios para nuestro servidor web. Yo crearé: www.so3.com Para crear los sitios, emplearemos el comando Touch utilizado para crear ficheros. 2- Para enlazar estos ficheros a los sitios habilitados, debemos de estar en el directorio /etc/apache2/sites-enabled Dentro de este directorio crearemos los enlaces simbólico hacia los ficheros, empleando el comando ln. Nota:../ sustituye la parte de /etc/apache2, es decir viene siendo lo mismo que escribas /etc/apache2/sites-available/ ln =Este comando sirve para establecer enlaces entre archivos. Y el parámetro s indica que el enlace es simbólico. El enlace simbólico es un archivo que apunta a otro archivo o directorio. 3- Para ver los enlaces que contiene el directorio /etc/apache2/sites-enabled escribe ls l 4- Ahora crearemos los archivos que tendrán la configuración del dominio virtual. Pero, ten presente que la cláusula VirtualHost debe ir al principio de los archivos que se encuentren en /sites-available/ esto le indica a Apache que es un hostvirtuales. En nuestro caso lo vamos a incluir en www.so3.com.
El archivo estará vacío, por lo que nosotros debemos de insertarle todos los campos Estos campos lo puedes encontrar si entrar a gedit /etc/apache2/sitesavailable/default, lo copias y lo pegas en el archivo del sitio nuevo, y solo tienes que modificarlo como esta en la imagen. 5- Antes de reiniciar el servidor Apache, debemos de crear las carpetas que configuramos en los archivos, en la parte de DocumentRoot. Por lo tanto, escribimos cd /var/www y luego con el comando mkdir creamos los directorios.
Y creamos el directorio para el sitio www.so3.com. Luego debemos de darle permisos full (777) para que los usuarios al entrar no tenga inconvenientes o problemas de accesos. 6- Ahora debemos de crear el archivo index.html dentro del directorio so3. Primero tenemos que entrar con ayuda del comando cd so3, y luego con el editor nano index.html. 7- Redacta en el archivo index.html, lo que deseas que se muestre en la página. Como puedes ver he utilizado unas pocas sintaxis básica del lenguaje HTML. 8- Procedemos a reiniciar el servidor para que los cambios hagan efecto. 9- Para que la computadora reconozca la dirección de los dominios que acabamos de crear, tenemos que modificar el archivo /etc/hosts y agregarlo. En la terminal escribe nano /etc/hosts.
Ve a tu navegador y prueba que tu sitio funciona introduciendo la dirección (www.so3.com). Acceso seguro La autentificación es cualquier proceso mediante el cual se verifica que alguien es quien dice ser. La autorización es cualquier proceso por el cual a alguien se le permite estar donde quiere ir, o tener la información que quiere tener. Para brindar acceso seguro al dominio virtual, utilizaremos la utilidad htpasswd que viene con Apache, para crear un archivo de contraseñas. Ésta utilidad puede encontrarla en el directorio bin de cualquier sitio en que haya instalado Apache. Para crear el archivo, escribe: htpasswd -c /etc/apache2/password rocio
rocio = es el nombre del usuario que tendrá acceso. Deberás indicar una contraseña para el usuario que indicaste, en mi caso rocio. Si te diriges a la ruta /etc/apache2 verás que el archivo password está creado. Escribe nano password, para que veas que la contraseña está encriptada. Ahora dirígete a la ruta /etc/apache2/sites-available para modificar el sitio www.so3.com Agrega las siguientes líneas debajo de allow from all AuthType Basic AuthName "Restricted Files" AuthUserFile /etc/apache2/password Require user rocio
Vete al navegar e ingresa la dirección del sitio. Chequea que nos pide Identificación, ahí pones el nombre de usuario que especificaste en el archivo password. Y listo, como la contraseña es correcta te permitirá visualizar la página.
Las directivas anteriores sólo permiten que una persona (específicamente alguien con un nombre de usuario rocio) acceda al directorio. En la mayoría de los casos, usted querrá permitir el acceso a más de una persona. Aquí es donde entra la directiva AuthGroupFile. Si desea permitir la entrada a más de una persona, necesitará crear un archivo de grupo que asocie nombres de grupo con una lista de usuarios perteneciente a ese grupo. El formato de este archivo es muy sencillo, y puede crearlo con su editor favorito. El contenido del archivo será parecido a este: Esto es solo una lista de miembros del grupo escritos en una línea separados por espacios. Para agregar un usuario a un archivo de contraseñas ya existente, escribe: htpasswd /etc/apache2/password rochell Esto lo harás por cada usuario que este agregado en el archivo GroupName. Se creará en el mismo archivo password. Es la opción -c la que se cree un nuevo archivo de contraseñas. Ahora, necesita modificar su archivo www.s03.com, ubicado en /etc/apache2/sitesavailable para que sea como el siguiente: AuthType Basic AuthName "By Invitation Only" AuthUserFile /etc/apache2/password AuthGroupFile /etc/apache2/groupname Require group GroupName
Luego ve a tu navegador e introduce la dirección web. En el recuadro de autenticación pon el otro usuario que agregaste al archivo passwod, y notarás que todo funciona correctamente.