Vamos a continuar configurando nuestro Apache, ahora vamos con los Hosting Virtuales.
Dentro del directorio de configuracion de apache2, encontramos diferentes archivos y subdirectorios.
El archivo ports.conf, es en el que se especifica los puertos por donde escuchara el apache2. Tiene un contenido asi:
NameVirtualHost *:80
Listen 80
Todos los virtualhost escuchara en el puerto 80 y por defecto escucha tambien en el puerto 80.
Sites-enabled y sites-available. El ultimo directorio son los sitios disponibles, pero que no están
funcionando, para que funcione debo hacerle un enlace simbolico en sites-enable.
Para hacer estos enlaces simbolicos usaremos a2ensite y a2dissite:
#a2ensite nombrearchivohostvirtual
#a2dissite nombrearchivohostvirtual
Lo mismo ocurrirá con los directorios mods-enable y mods-available. Para los mods tambien tenemos a2enmod y a2dismod
#a2enmod nombredelmod
#a2dismod nombredelmod
La configuracion de los distintos host virtuales se hace cada uno en su fichero correspondiente. Quedando asi:
NameVirtualHost 192.168.0.225:80
Le estamos indicando que para los host virtuales los escuchara por la direccion ip indicada. Si tuvieramos mas de un HostVirtual escuchando por esta direccion ip, esta linea solo la tendriamos que definir en un fichero.
<VirtualHost 192.168.0.225:80>
Contiene las directivas que se aplican solo a un nombre de host específico o dirección IP
DocumentRoot /var/www/ejemplo
Le estamos indicando el directorio raiz para este host virtual.
ServerName www.ejemplo.com:80
Especifica el nombre de host y el puerto que usa el servidor para identificarse. Esto se usa cuando se hace redirección de URLs. Por ejemplo, si el nombre de la maquina del servidor web es "web.ejemplo.com"
, pero el la maquina también tiene el alias DNS www.ejemplo.com
y quiere que el servidor web se identifique así.
ServerAlias web.ejemplo.es:80
Nombres alternativos usados para un host cuando se intentan encontrar equivalencias a hosts virtuales basados en el nombre. Por ejemplo si ponemos «*.ejemplo.com», todos los subdominios de ejemplo.com iran www.ejemplo.com
ServerAdmin juanjocm@gmail.com
Dirección de email que el servidor incluye en los mensajes de error que se envían al cliente
LogLevel warn
Controla el tipo de los mensajes que se almacenan en el ErrorLog. A continuacion voy a explicar los distintos tipos. Ira seguido del tipo de LogLevel, una descripcion y un ejemplo:
emerg
Emergencias – sistema inutilizable.
«Un proceso hijo no puede abrir el fichero de lock (lockfile). El programa va a terminar»
alert
Debe hacer algo inmediatamente.
«getpwuid: no pudo determinar el nombre de usuario a partir del uid»
crit
Condiciones críticas.
«socket: No se encontró un socket adecuado, el proceso hijo va a terminar»
error
Condiciones de error.
«Final prematuro de la cabecera del script»
warn
Condiciones de advertencia.
«el proceso hijo 1234 no ha terminado, enviando otra vez SIGHUP»
notice
Condición normal, pero significativa.
«httpsd: interceptada señal SIGBUS, intentando hacer un volcado de memoria en …»
info
Información.
«El servidor parece estar ocupado, (puede que necesite incrementar StartServers, o Min/MaxSpareServers)…»
debug
Mensajes de nivel debug
«Abriendo el fichero de configuración …»
Continuamos con nuestro VirtualHost
CustomLog /var/log/apache2/blog.access.log
Logs de acceso al servidor.
ErrorLog /var/log/apache2/blog.error.log
Ubicación del fichero en el que se almacenan los mensajes de error
Ahora vamos a pasar a darle unos permisos especiales a nuestros directorio raiz de nuestro blog.
Para ellos vamos a usar la directiva <Directory></Directory> que dentro englobaran unas directivas que seran solo para ese directorio.
Directory habria que ponerlo de la siguiente manera, seguido del raiz de nuestro sitio web.
<Directory /var/www/sitioweb/>
DirectoryIndex
Evita el listado de los directorios. Carga los index.php, index.html, index.htm…
Options ExecCGI FollowSymLinks
Permite la ejecucion de scripts CGI y seguira los enlaces simbolicos.
Options admite los siguientes valores. Cada valor puede ir precedido con un + o – para activar o desactivar esa opcion
<strong>All</strong>
- Todas las opciones excepto
MultiViews
. Este es el valor por defecto. <strong>ExecCGI</strong>
- Se permite la ejecución de scripts CGI usando mod_cgi.
<strong>FollowSymLinks</strong>
- El servidor seguirá los enlaces simbólicos en este directorio
<strong>Includes</strong>
- Permite el uso de Server-side includes, del módulo
mod_include.
<strong>IncludesNOEXEC</strong>
- Permite el uso de Server-side includes, pero
#exec cmd
y#exec cgi
son desactivados. Aunque es posible#include virtual
(incluir de forma virtual) scripts CGI desde directorios especificados con ScriptAlias. <strong>Indexes</strong>
- Si se produce una petición a una URL que se corresponde con un directorio, y no hay DirectoryIndex (por ejemplo,
index.html
) en ese directorio, entonces mod_autoindex devolverá una lista con los contenidos del directorio. <strong>MultiViews</strong>
- Se permiten «MultiViews» de contenido_negociado «MultiViews» usando mod_negotation.
<strong>SymLinksIfOwnerMatch</strong>
- El servidor seguirá los enlaces simbólicos en los que el fichero o directorio final pertenezca al mismo usuario que el enlace.
AllowOverride all
Activa o desactiva los archivos .htaccess. Por defecto viene a all, mas adelante en otro veremos la configuracion de los .htaccess.
Order allow,deny
Order simplemente controla el orden en que allow y deny se evaluan. El servidor está configurado para evaluar Allow antes que deny para el directorio DocumentRoot.
Allow from all
Allow from 10.1
Allow from 10 172.20 192.168.2
Allow from 10.1.0.0/255.255.0.0
Allow from 10.1.0.0/16
Allow from apache.org
Allow from .net example.edu
Allow especifica qué peticionario puede acceder un directorio dado. El peticionario puede ser all, un nombre de dominio, una dirección IP, una dirección IP parcial, un par red/máscara de red, etc. Se puede poner mas de una linea con Allow from. El directorio DocumentRoot está configurado para permitir peticiones de all (cualquiera).
Deny
Deny funciona como allow, pero especifica a quién se niega el acceso. DocumentRoot no está configurado para rechazar peticiones de nadie. Al estar vacio, no deniega ninguna peticion.
Deja un Comentario
Debes de estar logueado para comentar.