Configuración y Ejecución de Apache

Ejecución

Apache posee un comando llamado apachectl, el cual facilita el arranque y terminación de Apache.

  1. apachectl start : Inicia el Servidor de Páginas
  2. apachectl stop : Termina el Servidor Apache
  3. apachectl restart : Re-Inicializa el proceso Apache

Al momento de ejecutar cualquier variación de apachectl, se lee el archivo principal de configuración de Apache, httpd.conf, ubicado en el directorio /usr/local/apache/conf.

httpd.conf

Después de la instalación inicial el archivo httpd.conf contiene valores razonables de ejecución, sin embargo, en ocasiones es necesario modificar ciertos parámetros, inclusive las demás secciones de esta guia se basan en cambios significantes a este archivo.

Validación, # y valores "Default"

Todos los parámetros que se incluyan en httpd.conf serán validados previo arranque de Apache, esto es, al ejecutar apachectl start (o apachectl restart); la única excepción a esto son los renglones que inicien con el signo: #, ya que estos indican un comentario (al igual que otros archivos en sistemas *nix).

Debido a la gran cantidad de parámetros modificables en el archivo httpd.conf no serán descritos todos en esta guia, sin embargo, como ya fue mencionado todos los parámetros poseen valores razonables por "default".

User, Group, ServerName, Port

Los parámetros User y Group indican el Usuario y Grupo al cual pertenece el proceso de Apache, estos parámetros básicamente indican que usuario será capaz de inicializar y terminar el Servidor Apache, por lo general se recomienda generar un usuario y grupo especial para esta tarea (Véase Administración de Usuarios en Linux ).

User web 
Group web 

El parámetro ServerName indica el nombre del Servidor que administra Apache, en otras palabras el sitio en cuestión; esto puede ser www.osmosislatina.com, www.google.com.

Este parámetro no puede ser inventado y dependerá fuertemente de su configuración DNS , sin embargo, si solo esta instalando Apache en un ambiente local ("Workstation","Intranet") se puede realizar sin necesidad de DNS.

Para realizarse en ambiente local es necesario modificar el archivo /etc/hosts para que pueda realizarse la resolución correspondiente, un ejemplo seria:

127.0.0.1 www.osmosislatina.com
127.0.0.1 www.miservidor.com

Lo anterior indica que la maquina local (127.0.0.1) también puede ser llamada : www.osmosislatina.com y www.miservidor.com. (Vea también Resolvers en DNS )

Una vez configurado DNS o la resolución local, se puede definir el parámetro ServerName dentro de httpd.conf, el parámetro Port indica el puerto TCP sobre el cual responderá Apache, este valor en casi todo ambiente "Web" toma el ampliamente conocido Puerto 80.

ServerName www.osmosislatina.com
Port 80
DocumentRoot, DirectoryIndex

Los pasos anteriores indican a Apache el nombre del sitio que se administra , sin embargo, aun falta indicar donde se encuentra el contenido de este sitio , esto es, cuando se visite www.osmosislatina.com que aparecerá en Pantalla ? . Hasta este punto si ejecuta Apache y abre su navegador ("Netscape", "Lynx", "Opera") e intenta visitar el sitio definido en ServerName debe observar la página inicial de Documentación para Apache, pero como se pueden observar otros documentos ?

El parámetro DocumentRoot indica el directorio local donde reside la información del sitio en cuestión, el valor "default" en httpd.conf es /usr/local/apache/htdocs, en este directorio radica la documentación de Apache, desde luego es claro que debe modificar este parámetro hacia el directorio donde reside su propia documentación en HTML

El parámetro DirectoryIndex indica el Documento que debe ser enviado al accesar un directorio, generalmente toma el valor de index.html, inclusive puede tomar varios valores, esto es especialmente útil cuando se emplean ambientes más elaborados con Perl o Java.

DocumentRoot /usr/local/misitio/
DirecotryIndex index.html, index.htm, index.cgi, home.html

Lo anterior indica que al intentarse accesar cualquier directorio bajo /usr/local/misitio (siempre y cuando no se indique un archivo especifico), se intentará enviar el archivo index.html, si este no existe, se intenta con index.htm, seguido de index.cgi, y finalmente si no existiesen ninguno de los anteriores enviar home.html.

CustomLog y ErrorLog - Registros ("Logs")

Apache puede registrar los accesos y errores del sitio administrado , estos registros son los que ofrecen estadísticas sobre el numero de visitantes, el origen de cada usuario ( Nodos IP ), los posibles errores, etc.

Los dos parámetros son CustomLog y ErrorLog los cuales se recomienda sean modificados a un directorio relacionado con DocumentRoot

Analice estos registros con Analog .

ScriptAlias

Este parámetro es requerido para sitios que utilizan "Scripts"(Programas), generalmente escritos en Perl , estos "Scripts"(Programas) son los que permiten la generación de información dinámica en un sitio de Internet. (Véase también Aplicaciones de Servidor )

ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"

Lo anterior indica que cualquier solicitud bajo el directorio cgi-bin, será atendida por el directorio /usr/local/apache/cgi-bin/, es dentro de este directorio donde se encontraran los "Scripts" que ejecutará Apache.

Aparentemente parece excesivo este tratamiento, porque no simplemente basarse en el antes definido DocumentRoot ? , la primer razón es Administrativa ya que estos "Scripts"(Programas) tienen mayor probabilidad de generar un error (son programas! y no documentos estáticos ) y la segunda razón es que estos "Scripts" pueden ser compartidos por varios "Sitios", esto se ejemplificará más en Virtual Hosting

Lo anterior conforma los parámetros de configuración básica para Apache, en las siguientes secciones se entrará en detalle sobre otras funcionalidades y sus aspectos de configuración.