GNU/Linux >> Linux Esercitazione >  >> Linux

9 suggerimenti per utilizzare Apachectl e Httpd come un utente esperto

Dopo aver installato Apache2, se vuoi usare apachectl e httpd al suo massimo potenziale, dovresti andare oltre usando start, stop e restart. I 9 esempi pratici forniti in questo articolo ti aiuteranno a usare apachectl e httpd in modo molto efficace.

Apachectl funge da script di inizializzazione SysV, prendendo argomenti come start, stop, restart e status. Agisce anche come front-end per il comando httpd, semplicemente passando gli argomenti della riga di comando a httpd. Quindi, tutti i comandi che esegui usando apachectl, possono anche essere eseguiti direttamente chiamando httpd.

1. Passa un nome file httpd.conf diverso ad apachectl

In genere modificherai il file httpd.conf originale per provare diverse direttive Apache. Se qualcosa non funziona, annullerai le modifiche. Invece di giocare con l'httpd.conf originale, copialo in un nuovo httpd.conf.debug e usa questo nuovo file httpd.conf.debug con Apache a scopo di test, come mostrato di seguito usando l'opzione -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 volta che sei soddisfatto delle modifiche e Apache viene eseguito senza alcun problema con httpd.conf.debug, puoi copiare le modifiche in httpd.conf e avviare normalmente Apache come mostrato di seguito.

# 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. Usa una DocumentRoot temporanea senza modificare httpd.conf

Questo è molto utile, quando stai provando un layout diverso per il tuo sito Web e non vuoi modificare i file originali con DocumentRoot predefinito. Copia la directory DocumentRoot originale (/var/www/html) in una nuova directory DocumentRoot temporanea (/var/www/html_debug). Apporta tutte le modifiche in questa directory DocumentRoot temporanea (/var/www/html_debug) e avvia Apache con questa directory temporanea come mostrato di seguito utilizzando l'opzione -c.

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

Se vuoi tornare alla configurazione originale usando il DocumentRoot predefinito (/var/www/html), riavvia semplicemente Apache come mostrato di seguito.

# httpd -k stop
# apachectl start

3. Aumenta temporaneamente il livello di registro

Durante il debug di un problema, è possibile modificare temporaneamente LogLevel di Apache, senza modificare la direttiva LogLevel in httpd.conf come mostrato di seguito utilizzando l'opzione -e. In questo esempio, LogLevel è impostato per il debug.

# 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

Possibili valori che puoi passare a opzione -e sono:debug, informazioni, avviso, avviso, errore, critico, avviso, emerg

4. Visualizza i moduli compilati all'interno di Apache usando l'opzione -l

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

5. Visualizza sia il modulo statico che quello dinamico caricato da Apache

Quando si passa l'opzione -l a httpd, verranno visualizzati solo i moduli statici. Passando l'opzione -M, verranno visualizzati i moduli statici e condivisi come mostrato di seguito.

# 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. Mostra tutte le direttive accettate all'interno di httpd.conf

Questo è come un aiuto esteso per httpd, che mostrerà tutte le direttive httpd.conf e le posizioni in cui sono valide. Per una specifica direttiva, indica tutti i possibili valori e dove può essere utilizzato all'interno di httpd.conf. Questo può essere molto utile, quando vuoi conoscere rapidamente una particolare direttiva Apache.

# 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. Convalida httpd.conf dopo aver apportato modifiche

Utilizzare l'opzione -t per verificare se ci sono problemi con uno specifico file di configurazione di Apache. Nell'esempio mostrato di seguito, mostra che c'è un problema alla riga 148 in httpd.conf.debug. mod_auth_basicso manca un . (punto) prima 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 volta risolto il problema, verrà visualizzato Sintassi OK .

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

8. Visualizza i parametri di build httpd

Utilizzare l'opzione -V (V maiuscola), per visualizzare il numero di versione di Apache e tutti i parametri utilizzati durante la creazione di 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"

Se vuoi visualizzare solo il numero di versione di Apache, usa l'opzione -v (v minuscola) come mostrato di seguito.

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

9. Carica un modulo specifico solo su richiesta.

A volte potresti non voler caricare tutti i moduli in Apache. Per es. Potresti voler caricare i moduli relativi a ldap su Apache, solo quando stai testando LDAP. Questo può essere ottenuto come mostrato di seguito.

Modifica httpd.conf e aggiungi IfDefine direttiva chiamata load-ldap (puoi nominarla come vuoi).

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

Quando stai testando ldap e desideri caricare i moduli relativi a ldap, passa load-ldap all'opzione -D, come mostrato di seguito:

# 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.]

Se questo articolo ti è piaciuto, aggiungilo ai segnalibri su del.icio.us, Digg and Stumble utilizzando il collegamento fornito di seguito nella sezione "Cosa succederà?".


Linux
  1. Sono un utente POWER

  2. Come installare e utilizzare Powertop su Ubuntu 16.04/20.04

  3. Come installare e utilizzare Flatpak in Linux

  4. Nozioni di base su utenti e database MySQL

  5. stack del kernel e stack dello spazio utente

Come installare e utilizzare Helm in Kubernetes

Come installare e utilizzare lo schermo Linux?

Come installare e utilizzare PuTTY su Linux

Che cos'è Arch User Repository (AUR)? Come utilizzare AUR su Arch e Manjaro Linux?

5 suggerimenti per utilizzare il comando SS di Linux come un professionista

10 suggerimenti per utilizzare il supporto del fornitore di hardware e software in modo efficace