Google+

30 marzo 2014

Instalación de Apache en Linux (Ubuntu)

El Servidor Web Apache 

El servidor web apache es una de las aplicaciones estrella del mundo Linux. Es el servidor web más implantado entre los distintos servidores que ofertan servicios web en Internet. 

Entre las características más significativas destacamos: 

  • Es modular 
  • Capacidad para crear servidores virtuales 
  • Capacidad para crear servidores seguros https 
  • Capacidad para crear sitios privados 
  • En este curso haremos uso de éstas y otras características de apache. 

Organización del sitio web 

La organización que realizaremos de nuestro servidor Apache, será la clásica en los sistemas Unix: la página web de la intranet se almacenará en la carpeta raíz del servidor web, las páginas de los usuarios se almacenarán en la carpeta home de cada usuario y para albergar las páginas web de los distintos departamentos, lo más práctico es crear nuevos usuarios con el nombre del departamento. 

Instalación de Apache2 

Disponer de un servidor web nos permitirá alojar nuestras propias páginas y aplicaciones web de forma que den servicio tanto desde dentro de la intranet como desde Internet. Serán la base que facilitará el acceso a la información. 

apt-get install apache2 

Con lo cual se instalarán los archivos necesarios para que funcione nuestro servidor web. Se instalará apache v2. 


Configuración de Apache 

Los archivos de configuración de apache2 se encuentran en la carpeta /etc/apache2. El archivo principal de configuración es /etc/apache2/apache2.conf. Antes de realizar cualquier cambio en este archivo, es conveniente realizar una copia de seguridad del mismo ya que si apache encuentra algún error en el archivo de configuración, no arrancará. 

Se pueden configurar infinidad de parámetros. Aquí, para poner en marcha el servidor, editaremos el archivo apache2.conf y añadiremos únicamente el siguiente parámetro: 

ServerName www.iescesarmanrique.com 

Para que los PCs de la red local sepan que www.iescesarmanrique.com es nuestro servidor web, debemos crear una entrada 'www' hacia su dirección IP en el servidor DNS. Si no, no quedará más remedio que acceder utilizando la dirección IP del servidor. 


Arranque y parada del servidor web apache 

El servidor web apache2, al igual que todos los servicios en Debian, dispone de un script de arranque y parada en la carpeta /etc/init.d.

// Arrancar o reiniciar el servidor apache2 
/etc/init.d/apache2 restart 

// Parar el servidor apache 
/etc/init.d/apache2 stop 

Consultar la versión instalada 

/usr/sbin/apache2 -v 

Espacio web para la Intranet 

Por defecto, la carpeta raiz del servidor web es la carpeta /var/www. Todos los documentos que se encuentren dentro de la carpeta raíz del servidor web, serán accesibles vía web. Dentro del raiz de documentos crearemos la página web de nuestra intranet. 

Carpeta principal del servidor web (DocumentRoot) 

- Carpeta raíz del servidor web: /var/www 
- Acceso a la web principal: http://ip-del-servidor ó http://nombre-del-servidor 

Para acceder vía web a la página almacenada en la carpeta raíz del servidor, desde un navegador debemos acceder directamente con la dirección IP a: http://ip-del-servidor o bien utilizando el nombre del mismo si tenemos el DNS funcionando: http://nombre-del-servidor. Solamente si no tenemos el DNS funcionando, podemos añadir el nombre y la IP en /etc/hosts para resolver localmente. 

Desde el navegador debe aparecer un mensaje como el siguiente: 

It works! 

Lo que siempre funcionará es ir con la dirección IP. Ejemplo, si la dirección IP de nuestro servidor fuera 192.168.1.239, podemos ir con el navegador a la dirección http://192.168.1.239 y obtendremos el mismo resultado. Podemos personalizar nuestra página modificando el archivo index.html que hay dentro de la carpeta /var/www. 

Archivos y directorios de configuración 

Los archivos de configuración más utilitzados son: 

/etc/apache2/apache2.conf 
/etc/apache2/ports.conf 

La carpeta que contiene todas la webs disponibles esta en: 

/etc/apache2/sites-available 

Los enlaces simbólicos que habilitan las páginas web estan en el directorio: 

/etc/apache2/sites-enabled 

Cofiguración de los VirtualHost 

Toda la configuración de carpetas, nombres y puertos que puede el servidor mostrar se establece en el directorio /etc/apache2/sites-available/ 

En el directorio /etc/apache2/sites-enabled deberan estar los enlaces simbólicos a los sitos web que estan habilitados, o sea los enlaces simbolicos a la carpeta /etc/apache2/sites-available/ 

Por defecto el fichero de configuración es /etc/apache2/sites-available/default y su contenido debe ser algo parecido a : 

<VirtualHost *:80> 
ServerAdmin webmaster@localhost 
DocumentRoot /var/www/ 
<Directory /> 
Options FollowSymLinks 
AllowOverride None 
</Directory> 
<Directory /var/www/> 
Options Indexes FollowSymLinks MultiViews 
AllowOverride None 
Order allow,deny 
allow from all 
</Directory> 
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
<Directory "/usr/lib/cgi-bin"> 
AllowOverride None 
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
Order allow,deny 
Allow from all 
</Directory> 
ErrorLog /var/log/apache2/error.log 
# Possible values include: debug, info, notice, warn, error, crit, 
# alert, emerg. 
LogLevel warn 
CustomLog /var/log/apache2/access.log combined 
Alias /doc/ "/usr/share/doc/" 
<Directory "/usr/share/doc/"> 
Options Indexes MultiViews FollowSymLinks 
AllowOverride None 
Order deny,allow 
Deny from all 
Allow from 127.0.0.0/255.0.0.0 ::1/128 
</Directory> 
</VirtualHost> 

En la carpeta /etc/apache2/sites-enabled creamos el enlace: 

ln -s /etc/apache2/sites-available/default /etc/apache2/sites-enabled/default 

Para que el apache2 cargue esta configuración se debe indicar el el fichero de configuración :

/etc/apache2/apache2.conf. Se debe añadir/descomentar al final del fichero apache2.conf la línea: 

Include /etc/apache2/sites-enabled/ 

Opcionalmente podemos copiar la carpeta /var/www/apache-default a la carpeta /var/www/ 

Dominios Virtuales 

Para que funcionen varios dominios virtuales en un host que tiene asociado los dominios a una única IP se debe utilizar la cláusula NameVirtualHost y VirtualHost. 

En /etc/apache2/sites-available vamos a tener un archivo por cada uno de nuestros sitios, que luego serán enlazados dinámicamente desde /etc/apache2/sites-enabled 

Cada uno de estos archivos (relacionados con cada sitio) van a vincular el contenido real del sitio web. 

Vamos a los bifes, tengo dos dominios: 

- www.uno.com 
- www.dos.com 

El dominio uno.com debe aceptar las consultas al puerto 80 pero redirigirlas al puerto 8080. El segundo, funciona solo en el puerto 8080. 

Creamos estos dos archivos y los enlazamos como dijimos: 
/etc/apache2/sites-available# touch www.uno.com /etc/apache2/sites-available# touch www.dos.com /etc/apache2/sites-available#cd ../sites-enabled /etc/apache2/sites-enabled#ln -s ../sites-available/www.uno.com uno /etc/apache2/sites-enabled#ln -s ../sites-available/www.dos.com dos 
Vamos a encontrar bajo este directorio también un archivo que es el que trae apache por defecto, este es el famoso It works!. 

Antes de ver cómo configurar cada uno de estos dominios vale la pena aclarar que la cláusula NameVirtualHost debe ir en uno solo de los archivos que se encuentren en /sites-available/ , esto le indica a apache que se están utilizando varios hostvirtuales. En nuestro caso lo vamos a incluir en www.uno.com pero podría ir en cualquiera. 

Ahora sí, veamos lo que ponemos en www.uno.com: 

NameVirtualHost *:80 NameVirtualHost *:8080 <VirtualHost *:80> 
ServerName www.uno.com 
ServerAlias uno.com 
DocumentRoot /var/www/sitiouno 
<Directory /var/www/sitiouno> 
AllowOverride All 
Options MultiViews Indexes SymLinksIfOwnerMatch 
Allow from All 
</Directory> 
# Redirigir a https 
RewriteEngine On RewriteRule ^(.*)$ https://www.dos.com$1 [R,L] 
</VirtualHost> 

Ahora veamos el contenido del sitio www.dos.com 

<VirtualHost *:8080> ServerName www.dos.com ServerAlias dos.com DocumentRoot/var/www/sitiodos<Directory /var/www/sitiodos> 
AllowOverride All 
Options MultiViews Indexes SymLinksIfOwnerMatch 
Allow from All 
</Directory> </VirtualHost> 
Solo queda reiniciar el apache2 y listo 

Espacio web para cada usuario 

Cada usuario del sistema dispondrá de un espacio web que se almacena dentro de su carpeta home en una carpeta llamada 'public_html'. Si dicha carpeta no existe, el propio usuario puede crearla y copiar dentro de ella su página web. Los permisos recomendados para carpetas son 655 para que el 'grupo' y el 'resto' de usuarios tengan acceso de lectura y así se puedan visualizar las páginas. 

Para acceder vía web a la página de un usuario, desde un navegador debemos acceder directamente con la dirección IP a: http://ip-del-servidor/~login-usuario/ 

El caracter '~'comúnmente conocido como gusanillo y que se obtiene con Alt Gr + 4 sirve para indicar a apache que debe servir la página desde el home del usuario (en Linux el 'gusanillo' equivale a la carpeta home). Ejemplo, si hemos creado un usuario javier y éste ha creado la carpeta /home/javier/public_html y ha copiado en ella su página web, desde cualquier PC de la red podremos acceder a dicha carpeta yendo a la dirección http://ip-del-servidor/~javier/. Para que la página aparezca automáticamente, es necesario crear un archivo llamado index.html.

Carpetas web de los usuarios 
- Carpeta web de javier: /home/javier/public_html 
- Acceso a la web de javier: http://ip-del-servidor/~javier/ 
Para configurar el apache para habilitar el espacio web para usuarios se puede hacer de dos maneras. La primera creando los enlaces simbólicos: 

cd /etc/apache2/mods-enabled 
ln -s ../mods-available/userdir.conf userdir.conf 
ln -s ../mods-available/userdir.load userdir.load 

Segunda simplemente ejecutando 

a2enmod userdir 

Sólo nos quedará reiniciar el apache 

/etc/init.d/apache2 restart 

Espacio web para los departamentos 

Para proporcionar espacio web a los departamentos, lo más sencillo es crear un usuario para cada departamento. Podemos crear los usuarios: compras, produccion (sin acentos), etc... Al igual que cada usuario del sistema, dispondrán de un espacio web dentro de su carpeta home en una carpeta llamada 'public_html'. Si dicha carpeta no existe, habrá que crearla y copiar dentro de ella la página web del departamento. 

Para acceder vía web a la página del departamento, desde un navegador debemos acceder directamente con la dirección IP a: http://ip-del-servidor/~departamento. Ejemplo, si hemos creado un usuario compras y hemos creado la carpeta /home/compras/public_html y copiado en ella la web del departamento de compras, desde cualquier PC de la red podremos acceder a dicha web yendo a la dirección http://ip-del-servidor/~compras. Para que la página aparezca automáticamente, es necesario crear un archivo llamado index.html. 

Carpetas web de los departamentos 

- Carpeta web del dpto. de compras: /home/compras/public_html 
- Acceso a la web de dpto. de compras: http://ip-del-servidor/~compras/ 

De la misma manera, se pueden crear usuarios para proporcionar espacio web a otros órganos, p.ej: equipodirectivo, conserjeria, etc... para que dispongan de su propio espacio web. 

LinkWithin

Related Posts Plugin for WordPress, Blogger...