En Windows, Apache es ejecutado normalmente como servicio en Windows NT, o como aplicación de consola en Windows 95. Para más detalles, vea ejecutando Apache para Windows.
En Unix, el proceso httpd corre como demonio
que se ejecuta continuamente en background para manipular peticiones.
Es posible que Apache sea invocado por el demonio Internet
inetd
cada vez que se hace una conexión al servicio HTTP
usando la directiva ServerType,
pero esto no se recomienda.
Si el Puerto especificado en el
fichero de configuración es el puerto por defecto, 80 (o cualquier otro por debajo de
1024), es necesario tener privilegios de root para poder arrancar
Apache, para que pueda hacer bind a este puerto privilegiado. Una vez que el servidor
ha arrancado y completado algunas actividades preeliminares como la apertura de
sus ficheros de log, lanzará muchos procesos hijo que hacen el
trabajo de escuchar y responder las peticiones de los clientes. El proceso
principal httpd
continua corriendo como usuario root, pero
los procesos hijo se ejecutan con un usuario con menos privilegios. Esto se controla por
las process creation
directives (directivas de creación de procesos) de Apache.
Lo primero que hace httpd
cuando es invocado es
localizar y leer el fichero de configuración
httpd.conf
. La localización de este fichero es determinada en
el momento de la compilación, pero es posible especificar su situación en el
momento de ejecución, usando la opción -f
en la línea de comandos de la forma
/usr/local/apache/bin/httpd -f
/usr/local/apache/conf/httpd.conf
Como alternativa a invocar el código de httpd
directamente, un shell script llamado apachectl puede usarse
para controlar el proceso demonio con comandos simples como
apachectl start
y apachectl stop
.
Si todo va bien durante el arranque, el servidor se desenganchará del terminal y el símbolo del sistema reaparecerá casi inmediatamente. Esto indica que el servidor está funcionando. En ese momento, se puede usar un navegador para conectar con el servidor y ver la página de prueba en el directorioDocumentRoot y la copia local de la documentación, enlazada desde esa página.
Si Apache sufre un problema grave durante el arranque, escribirá un
mensaje describiendo el problema, bien en la consola, bien en el ErrorLog antes de salir y terminar. Uno de los
mensajes de error más comunes es "Unable to bind to Port
... (No se pudo hacer bind al puerto...)
". Este mensaje se debe normalmente por:
Para más instrucciones para resolver errores, consulte la FAQ de Apache
Si quiere que su servidor continúe ejecutándose después de reiniciar el sistema,
debería añadir una llamada al httpd
o al apachectl
desde sus ficheros de arranque (normalmente rc.local
o un
fichero en el directorio rc.N
). Con esto se arrancará Apache
como root. Antes de hacerlo, asegúrese de que su servidor está configurado correctamente
en los temas de seguridad y restricción de accesos. El script apachectl
está diseñado para que pueda ser enlazado directamente como un script init,
pero asegúrese de comprobar los requerimientos concretos para su sistema.
Puede encontrar información adicional sobre las opciones de línea de comandos para httpd y apachectl así como otros programas de soporte incluidos con el servidor en la página Server and Supporting Programs (Programas Servidor y de Soporte). Existe también documentación sobre todos los módulos incluidos en la distribución de Apache y las directivas que poseen.