Trucos de Apache, Apachectl y httpd.
En este artículo os muestro una serie de comandos y su uso que son bastante sencillos pero la información o las pruebas que te permiten hacer tienen mucho peso en ocasiones.
Os recomendaría echar un vistazo a la configuración básica del httpd,cond para ver los detalles: Artículo Apache
Apachectl actúa como un script de inicio de sistema o puede recibir argumentos en forma de variables de entorno, toma valores como start, stop, restart y status, está diseñado para ayudar al administrador a controlar la funcionabilidad del demonio httpd.
httpd actúa como un programa de Servicio HTTP, está diseñado para funcionar como un demonio standalone y en general no debería ser invocado directamente.
1 – Probar configuraciones en el httpd.conf.
Muchas veces a la hora de poner directivas o configuraciones, no queremos reiniciar el propio servidor hasta estar seguros, por si falla no tener que volver atrás y ahorrar un poco de tiempo.
Para probar uno de ejemplo como httpd.conf.test podemos usar el comando apachectl con la opción » -f »
#apachectl -f httpd.conf.test
httpd -k start -f httpd.conf.test
# ps -ef | grep http
root 25080 1 0 23:26 00:00:00 /usr/sbin/httpd -f httpd.conf.test
apache 25099 25080 0 23:28 00:00:00 /usr/sbin/httpd -f httpd.conf.test
Una vez que hemos probado los cambios y están correctos, podemos copiar los cambios o incluso el fichero.
2 – Usar un DocumentRoot temporal
Esto es muy útil si vamos a cambiar totalmente una página web, si queremos probar la de test que está en la ruta /var/www/html_test sin modificar los ficheros de la ruta original, podemos hacerlo de esta forma:
# httpd -k start -c "DocumentRoot /var/www/html_test/
3 – Incrementar el nivel de log temporalmente.
Si se están depurando fallos, una forma útil de revisarlos es modificar el detalle de logs a «debug» que suele ser el típico en estos casos.
# httpd -k start -e debug
[Sun Nov 14 13:53:06 2008] [debug] mod_so.c(246): loaded module auth_basic_module
[Sun Nov 14 13:53:06 2008] [debug] mod_so.c(246): loaded module auth_digest_module
Los valores posibles son: debug, info, notice, warn, error, crit, alert, emerg
Están ordenados de menor a mayor importancia.
4 – Desplegar los módulos compilados en Apache con -l
# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
5 – Desplegar módulos estáticos y dinámicos cargados por Apache
Con la opción -M también mostrará los módulos compartidos:
# httpd -M
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
auth_basic_module (shared)
auth_digest_module (shared)
authn_file_module (shared)
authn_alias_module (shared)
Syntax OK
6 – mostrar todas las directivas aceptadas dentro de httpd.conf
Esto es una ayuda extendida, nos va a detallar toda esta información de forma detallada, no es necesario filtrar con comandos como grep el mismo fichero:
# httpd -L
HostnameLookups (core.c)
«on» to enable, «off» to disable reverse DNS lookups, or «double» to enable double-reverse DNS lookups
Allowed in *.conf anywhere
ServerLimit (prefork.c)
Maximum value of MaxClients for this run of Apache
Allowed in *.conf only outside <Directory>, <Files> or <Location>
KeepAlive (http_core.c)
Whether persistent connections should be On or Off
Allowed in *.conf only outside <Directory>, <Files> or <Location>
LoadModule (mod_so.c)
a module name and the name of a shared object file to load it from
Allowed in *.conf only outside <Directory>, <Files> or <Location>
7 – Validar el httpd.conf después de hacer cambios.
Con la opción «-t » validamos si hay algún problema con un fichero de configuración de Apache. En este ejemplo, nos dirá que hay un erorr en la línea 148 del httpd.conf .
# httpd -t -f conf/httpd.conf.test
httpd: Syntax error on line 148 of /etc/httpd/conf/httpd.conf.test:
Cannot load /etc/httpd/modules/mod_auth_basicso into server:
/etc/httpd/modules/mod_auth_basicso: cannot open shared object file: No such file or directory
Después de resolverlo tenemos el «Syntax OK»
# httpd -t -f conf/httpd.conf.test
Syntax OK
8 – Desplegar información del paquete Apache
# httpd -V
Server version: Apache/2.2.9 (Unix)
Server built: Jul 14 2008 15:36:56
Server’s Module Magic Number: 20051115:15
Server loaded: APR 1.2.12, APR-Util 1.2.12
Compiled using: APR 1.2.12, APR-Util 1.2.12
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with….
-D APACHE_MPM_DIR=»server/mpm/prefork»
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT=»/etc/httpd»
-D SUEXEC_BIN=»/usr/sbin/suexec»
-D DEFAULT_PIDLOG=»logs/httpd.pid»
-D DEFAULT_SCOREBOARD=»logs/apache_runtime_status»
-D DEFAULT_LOCKFILE=»logs/accept.lock»
-D DEFAULT_ERRORLOG=»logs/error_log»
-D AP_TYPES_CONFIG_FILE=»conf/mime.types»
-D SERVER_CONFIG_FILE=»conf/httpd.conf»
Con la opción -v deplegamos sólo el número de versión:
# httpd -V
Server version: Apache/2.2.9 (Unix)
Server built: Jul 14 2008 15:36:56
Deja un comentario