Versión 2.4 del Servidor HTTP Apache

Apache > Servidor HTTP > Documentación > Versión 2.4

# Iniciar Apache

En Windows, Apache se ejecuta normalmente como un servicio. Para obtener más información, consulte Ejecutar Apache como un servicio.

En Unix, el programa `httpd` se ejecuta como un demonio (daemon) de forma contíniua y en segundo plano y atiende las peticiones que le lleguen. Este documento describe cómo invocar el programa `httpd`.

### Consulte también

- Parar y reiniciar Apache
- `httpd`
- `apachectl`

## Cómo iniciar Apache

Si el puerto especificado en la directiva `Listen` del fichero de configuración es el que viene por defecto, es decir, el puerto 80 (o cualquier otro puerto por debajo del 1024), entonces es necesario tener privilegios de usuario root (superusuario) para iniciar Apache, de modo que pueda establecerse una conexión a través de esos puertos privilegiados. Una vez que el servidor Apache se ha iniciado y ha completado algunas tareas preliminares, tales como abrir sus ficheros log, lanzará varios procesos, procesos hijo, que hacen el trabajo de escuchar y atender las peticiones de los clientes. El proceso principal, `httpd` continúa ejecutándose con el usuario root, pero los procesos hijo se ejecutan con menores privilegios de usuario. Esto lo controla el Módulo de MultiProcesamiento (MPM) seleccionado.

La forma recomendada para invocar el ejecutable `httpd` es usando el script de control `apachectl`. Este script fija determinadas variables de entorno que son necesarias para que `httpd` funcione correctamente en el sistema operativo, y después invoca el binario `httpd`. `apachectl` pasa a `httpd` cualquier argumento que se le pase a través de la línea de comandos, de forma que cualquier opción de `httpd` puede ser usada también con `apachectl`. Puede editar directamente el script `apachectl` y cambiar la variable `HTTPD` variable que está al principio y que especifica la ubicación exacta en la que está el binario `httpd` y cualquier argumento de línea de comandos que quiera que esté siempre presente.

La primera cosa que hace `httpd` cuando es invocado es localizar y leer el fichero de configuración `httpd.conf`. El lugar en el que está ese fichero se determina al compilar, pero también es posible especificar la ubicación en la que se encuentra al iniciar el servidor Apache usando la opción de línea de comandos `-f`

`/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf`

Si todo va bien durante el arranque, la sesión de terminal se suspenderá un momento y volverá a estar activa casi inmediatamente. Esto quiere decir que el servidor está activo y funcionando. Puede usar su navegador para conectarse al servidor y ver la página de prueba que hay en el directorio de la directiva `DocumentRoot`.

## Errores Durante el Arranque

Si Apache encuentra una error irrecuperable durante el arranque, escribirá un mensaje describiendo el problema en la consola o en el archivo `ErrorLog` antes de abortar la ejecución. Uno de los mensajes de error más comunes es "`Unable to bind to Port ...`". Cuando se recibe este mensaje es normalmente por alguna de las siguientes razones:

- Está intentando iniciar el servidor Apache en un puerto privilegiado (del 0 al 1024) sin haber hecho login como usuario root; ó bien
- Está intentando iniciar el servidor Apache mientras está ya ejecutando Apache o algún otro servidor web en el mismo puerto.

Puede encontrar más información sobre cómo solucionar problemas, en la sección de Preguntas Frecuentes de Apache.

## Iniciar Apache al Iniciar el Sistema

Si quiere que el servidor Apache continúe su ejecución después de reiniciar el sistema, debe añadir una llamada a `apachectl` en sus archivos de arranque (normalmente `rc.local` o un fichero en ese directorio del tipo `rc.N`). Esto iniciará Apache como usuario root. Antes de hacer esto, asegúrese de que la configuración de seguridad y las restricciones de acceso de su servidor Apache están correctamente configuradas.

El script `apachectl` está diseñado para actuar como un script estándar de tipo `SysV init`; puede tomar los argumentos `start`, `restart`, y `stop` y traducirlos en las señales apropiadas para `httpd`. De esta manera, casi siempre puede simplemente enlazar `apachectl`con el directorio init adecuado. Pero asegúrese de comprobar los requisitos exactos de su sistema.

## Información Adicional

En la sección El Servidor y Programas de Soporte puede encontrar más información sobre las opciones de línea de comandos que puede pasar a `httpd` y `apachectl` así como sobre otros programas de soporte incluidos con el servidor Apache. También hay documentación sobre todos los módulos incluidos con la distribución de Apache y sus correspondientes directivas asociadas.