GNU/Linux >> LINUX-Kenntnisse >  >> Linux

9 Tipps zur Verwendung von Apachectl und Httpd wie ein Power User

Wenn Sie nach der Installation von Apache2 apachectl und httpd maximal nutzen möchten, sollten Sie darüber hinausgehen mit Start, Stopp und Neustart. Die 9 praktischen Beispiele in diesem Artikel werden Ihnen helfen, apachectl und httpd sehr effektiv zu verwenden.

Apachectl fungiert als SysV-Init-Skript und übernimmt Argumente wie Start, Stopp, Neustart und Status. Es fungiert auch als Front-End für den httpd-Befehl, indem es einfach die Befehlszeilenargumente an httpd übergibt. Alle Befehle, die Sie mit apachectl ausführen, können also auch direkt durch den Aufruf von httpd ausgeführt werden.

1. Übergeben Sie einen anderen httpd.conf-Dateinamen an apachectl

Normalerweise ändern Sie die ursprüngliche httpd.conf, um verschiedene Apache-Anweisungen auszuprobieren. Wenn etwas nicht funktioniert, werden Sie die Änderungen rückgängig machen. Anstatt mit der ursprünglichen httpd.conf herumzuspielen, kopieren Sie sie in eine neue httpd.conf.debug und verwenden Sie diese neue httpd.conf.debug-Datei mit Apache zu Testzwecken wie unten gezeigt mit der Option -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]

Wenn Sie mit den Änderungen zufrieden sind und Apache problemlos mit httpd.conf.debug läuft, können Sie die Änderungen in httpd.conf kopieren und den Apache wie unten gezeigt normal starten.

# 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. Verwenden Sie ein temporäres DocumentRoot, ohne httpd.conf

zu ändern

Dies ist sehr hilfreich, wenn Sie verschiedene Layouts für Ihre Website ausprobieren und die Originaldateien unter dem Standard-DocumentRoot nicht ändern möchten. Kopieren Sie Ihr ursprüngliches DocumentRoot-Verzeichnis (/var/www/html) in ein neues temporäres DocumentRoot-Verzeichnis (/var/www/html_debug). Nehmen Sie alle Ihre Änderungen in diesem temporären DocumentRoot-Verzeichnis (/var/www/html_debug) vor und starten Sie den Apache mit diesem temporären Verzeichnis wie unten gezeigt mit der Option -c.

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

Wenn Sie mit dem standardmäßigen DocumentRoot (/var/www/html) zur ursprünglichen Konfiguration zurückkehren möchten, starten Sie den Apache einfach wie unten gezeigt neu.

# httpd -k stop
# apachectl start

3. LogLevel vorübergehend erhöhen

Während Sie ein Problem debuggen, können Sie den LogLevel des Apache vorübergehend ändern, ohne die LogLevel-Anweisung in der httpd.conf zu ändern, wie unten gezeigt, indem Sie die Option -e verwenden. In diesem Beispiel ist LogLevel auf debug gesetzt.

# 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

Mögliche Werte, die Sie an option -e übergeben können sind:debug, info, notice, warn, error, crit, alert, emerg

4. Zeigen Sie die in Apache kompilierten Module mit der Option -l

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

5. Zeigt sowohl statische als auch dynamische Module an, die von Apache geladen wurden

Wenn Sie die Option -l an httpd übergeben, werden nur die statischen Module angezeigt. Wenn Sie die Option -M übergeben, werden sowohl statische als auch gemeinsam genutzte Module angezeigt, wie unten gezeigt.

# 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. Zeige alle akzeptierten Direktiven in httpd.conf

Dies ist wie eine erweiterte Hilfe für httpd, die alle httpd.conf-Anweisungen und die Orte, an denen sie gültig sind, anzeigt. Für eine bestimmte Direktive gibt es alle möglichen Werte an und wo es innerhalb der httpd.conf verwendet werden kann. Dies kann sehr hilfreich sein, wenn Sie schnell etwas über eine bestimmte Apache-Direktive wissen möchten.

# 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. Validieren Sie die httpd.conf, nachdem Sie Änderungen vorgenommen haben

Verwenden Sie die Option -t, um zu überprüfen, ob es Probleme mit einer bestimmten Apache-Konfigurationsdatei gibt. Im unten gezeigten Beispiel wird angezeigt, dass in Zeile 148 in httpd.conf.debug ein Problem vorliegt. mod_auth_basicso fehlt eine . (Punkt) vor dem 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

Sobald Sie das Problem behoben haben, wird Syntax OK angezeigt .

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

8. Zeigen Sie die httpd-Build-Parameter an

Verwenden Sie die Option -V (Großbuchstabe V), um die Apache-Versionsnummer und alle Parameter anzuzeigen, die beim Erstellen des Apache verwendet werden.

# 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"

Wenn Sie nur die Apache-Versionsnummer anzeigen möchten, verwenden Sie die Option -v (Kleinbuchstabe v) wie unten gezeigt.

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

9. Laden Sie ein bestimmtes Modul nur bei Bedarf.

Manchmal möchten Sie vielleicht nicht alle Module in den Apache laden. Für z.B. Möglicherweise möchten Sie LDAP-bezogene Module nur dann in Apache laden, wenn Sie LDAP testen. Dies kann wie unten gezeigt erreicht werden.

Ändern Sie die httpd.conf und fügen Sie IfDefine hinzu Direktive namens load-ldap (Sie können diese beliebig benennen).

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

Wenn Sie ldap testen und die ldap-bezogenen Module laden möchten, übergeben Sie load-ldap an Option -D, wie unten gezeigt:

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

Wenn Ihnen dieser Artikel gefallen hat, markieren Sie ihn bitte auf del.icio.us, Digg and Stumble über den unten im Abschnitt „Was kommt als Nächstes?“ bereitgestellten Link.


Linux
  1. So installieren und verwenden Sie Powertop unter Ubuntu 16.04/20.04

  2. So verwenden Sie APT mit Proxy unter Ubuntu und Debian

  3. Verwenden Sie TLP, um die Akkulaufzeit von Linux-Laptops schnell zu erhöhen und zu optimieren – Tecmint

  4. Installieren und verwenden Sie den Wget-Befehl wie ein Profi (13 Tipps)

  5. Befehl Grep und Locate verwenden?

So installieren und verwenden Sie Helm in Kubernetes

Wie installiere und verwende ich den Linux-Bildschirm?

So installieren und verwenden Sie PuTTY unter Linux

Was ist das Arch User Repository (AUR)? Wie verwende ich AUR unter Arch und Manjaro Linux?

5 Tipps zur Verwendung des Linux-SS-Befehls wie ein Profi

10 Tipps zur effektiven Nutzung Ihres Hardware- und Softwareanbieter-Supports