Upload
phamkiet
View
234
Download
0
Embed Size (px)
Citation preview
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.
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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.
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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.
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.
Para iniciar el servidor Apache.
Esta es la página predeterminada del
servidor.
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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)
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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.
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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.
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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.
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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.
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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.
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.
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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.
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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/sites-
available/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.
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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.
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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.
Servidor Web: Apache
Rocío Alt. Abreu O. 2009-3393
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/sites-
available para que sea como el siguiente:
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /etc/apache2/password
AuthGroupFile /etc/apache2/GroupName
Require group GroupName