GNU/Linux >> Tutoriales Linux >  >> Linux

9 consejos para usar Apachectl y Httpd como un usuario avanzado

Después de haber instalado Apache2, si desea utilizar apachectl y httpd a su máximo potencial, debe ir más allá utilizando iniciar, detener y reiniciar. Los 9 ejemplos prácticos proporcionados en este artículo lo ayudarán a usar apachectl y httpd de manera muy efectiva.

Apachectl actúa como un script de inicio de SysV, tomando argumentos como inicio, detención, reinicio y estado. También actúa como front-end para el comando httpd, simplemente pasando los argumentos de la línea de comando a httpd. Por lo tanto, todos los comandos que ejecuta con apachectl también se pueden ejecutar directamente llamando a httpd.

1. Pase un nombre de archivo httpd.conf diferente a apachectl

Por lo general, modificará el httpd.conf original para probar diferentes directivas de Apache. Si algo no funciona, revertirá los cambios. En lugar de jugar con el httpd.conf original, cópielo en un nuevo httpd.conf.debug y use este nuevo archivo httpd.conf.debug con Apache para fines de prueba, como se muestra a continuación, usando la opción -f.

# apachectl -f conf/httpd.conf.debug
# httpd -k start -f conf/httpd.conf.debug
[Note: you can use either apachectl or httpd as shown above]

# ps -ef | grep http
root   25080     1  0 23:26 00:00:00 /usr/sbin/httpd -f conf/httpd.conf.debug
apache 25099 25080  0 23:28 00:00:00 /usr/sbin/httpd -f conf/httpd.conf.debug
[Note: ps shows the httpd running with httpd.conf.debug file]

Una vez que esté satisfecho con los cambios y Apache se ejecute sin ningún problema con httpd.conf.debug, puede copiar los cambios en httpd.conf e iniciar Apache normalmente como se muestra a continuación.

# cp httpd.conf.debug httpd.conf
# apachectl stop
# apachectl start

# ps -ef | grep httpd
root     25114     1  0 23:28 00:00:00 /usr/sbin/httpd -k start
daemon   25115 25114  0 23:28 00:00:00 /usr/sbin/httpd -k start
[Note: ps indicates that the httpd is running using the default config file]

2. Use un DocumentRoot temporal sin modificar httpd.conf

Esto es muy útil cuando está probando un diseño diferente para su sitio web y no desea modificar los archivos originales en el DocumentRoot predeterminado. Tome una copia de su directorio DocumentRoot original (/var/www/html) a un nuevo directorio DocumentRoot temporal (/var/www/html_debug). Realice todos los cambios en este directorio DocumentRoot temporal (/var/www/html_debug) e inicie Apache con este directorio temporal como se muestra a continuación usando la opción -c.

# httpd -k start -c "DocumentRoot /var/www/html_debug/"

Si desea volver a la configuración original utilizando el DocumentRoot predeterminado (/var/www/html), simplemente reinicie Apache como se muestra a continuación.

# httpd -k stop
# apachectl start

3. Aumente el LogLevel temporalmente

Mientras está depurando un problema, puede cambiar el LogLevel de Apache temporalmente, sin modificar la directiva LogLevel en httpd.conf como se muestra a continuación usando la opción -e. En este ejemplo, LogLevel está configurado para depurar.

# httpd -k start -e debug
[Sun Aug 17 13:53:06 2008] [debug] mod_so.c(246): loaded module auth_basic_module
[Sun Aug 17 13:53:06 2008] [debug] mod_so.c(246): loaded module auth_digest_module

Posibles valores que puede pasar a option -e son:depuración, información, aviso, advertencia, error, crítico, alerta, emergencia

4. Muestre los módulos compilados dentro de Apache usando la opción -l

# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c

5. Muestra el módulo estático y dinámico cargado por Apache

Cuando pasa la opción -l, a httpd, solo mostrará los módulos estáticos. Al pasar la opción -M, se mostrarán los módulos estáticos y compartidos como se muestra a continuación.

# 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 como una ayuda extendida para httpd, que mostrará todas las directivas de httpd.conf y los lugares donde son válidas. Para una directiva específica, indica todos los valores posibles y dónde se puede usar dentro de httpd.conf. Esto puede ser muy útil cuando desea conocer rápidamente una directiva de Apache en particular.

# 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. Valide el httpd.conf después de realizar cambios

Use la opción -t para validar si hay algún problema con un archivo de configuración de Apache específico. En el ejemplo que se muestra a continuación, muestra que hay un problema en la línea 148 en httpd.conf.debug. a mod_auth_basicso le falta un archivo . (punto) antes del so.

# httpd -t -f conf/httpd.conf.debug
httpd: Syntax error on line 148 of /etc/httpd/conf/httpd.conf.debug:
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

Una vez que solucione el problema, se mostrará Sintaxis OK .

# httpd -t -f conf/httpd.conf.debug
Syntax OK

8. Mostrar los parámetros de compilación de httpd

Utilice la opción -V (V mayúscula) para mostrar el número de versión de Apache y todos los parámetros que se utilizan al compilar 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"

Si desea mostrar solo el número de versión de Apache, use la opción -v (v en minúsculas) como se muestra a continuación.

# httpd -v
Server version: Apache/2.2.9 (Unix)
Server built:   Jul 14 2008 15:36:56

9. Cargue un módulo específico solo bajo demanda.

A veces es posible que no desee cargar todos los módulos en Apache. Por ej. Es posible que desee cargar módulos relacionados con ldap en Apache, solo cuando esté probando LDAP. Esto se puede lograr como se muestra a continuación.

Modifique el httpd.conf y agregue IfDefine directiva llamada load-ldap (puede nombrar esto como quiera).

<IfDefine load-ldap>
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
</IfDefine>

Cuando esté probando ldap y desee cargar los módulos relacionados con ldap, pase load-ldap a la opción -D, como se muestra a continuación:

# httpd -k start -e debug -Dload-ldap -f /etc/httpd/conf/httpd.conf.debug
[Sun Aug 17 14:14:58 2008] [debug] mod_so.c(246): loaded module ldap_module
[Sun Aug 17 14:14:58 2008] [debug] mod_so.c(246): loaded module authnz_ldap_module
[Note: Pass -Dload-ldap, to load the ldap modules into Apache]

# apachectl start
[Note: Start the Apache normally, if you don't want to load the ldap modules.]

Si le gustó este artículo, márquelo como favorito en del.icio.us, Digg and Stumble mediante el enlace proporcionado a continuación en la sección "¿Qué sigue?".


Linux
  1. Soy un usuario de POWER

  2. Cómo instalar y usar Powertop en Ubuntu 16.04/20.04

  3. ¿Usar el comando Grep y localizar?

  4. ERROR 403 al cargar recursos como CSS y JS en mi index.php

  5. Usar .vimrc y .vim/ de otro usuario

Cómo instalar y usar Helm en Kubernetes

¿Cómo instalar y usar Linux Screen?

Cómo instalar y usar PuTTY en Linux

¿Qué es el repositorio de usuarios de Arch (AUR)? ¿Cómo usar AUR en Arch y Manjaro Linux?

5 consejos para usar el comando SS de Linux como un profesional

10 consejos para usar el soporte de su proveedor de hardware y software de manera efectiva