GNU/Linux >> Znalost Linux >  >> Linux

9 tipů, jak používat Apachectl a Httpd jako zkušený uživatel

Pokud chcete po instalaci Apache2 používat maximální potenciál apachectl a httpd, měli byste jít za pomocí start, stop a restart. 9 praktických příkladů uvedených v tomto článku vám pomůže velmi efektivně používat apachectl a httpd.

Apachectl funguje jako iniciační skript SysV, který přebírá argumenty jako start, stop, restart a stav. Funguje také jako front-end příkazu httpd pouhým předáním argumentů příkazového řádku httpd. Takže všechny příkazy, které spouštíte pomocí apachectl, lze také spouštět přímo voláním httpd.

1. Předejte jiný soubor httpd.conf souboru apachectl

Obvykle upravíte původní httpd.conf, abyste vyzkoušeli různé direktivy Apache. Pokud něco nefunguje, vrátíte změny zpět. Místo hraní si s původním httpd.conf, zkopírujte jej do nového httpd.conf.debug a použijte tento nový httpd.conf.debug soubor s Apache pro testovací účely, jak je ukázáno níže pomocí volby -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]

Jakmile budete se změnami spokojeni a Apache běží bez problémů s httpd.conf.debug, můžete zkopírovat změny do httpd.conf a spustit Apache normálně, jak je ukázáno níže.

# 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. Použijte dočasný DocumentRoot bez úpravy souboru httpd.conf

To je velmi užitečné, když zkoušíte jiné rozvržení pro svůj web a nechcete upravovat původní soubory ve výchozím DocumentRoot. Vezměte kopii svého původního adresáře DocumentRoot (/var/www/html) do nového dočasného adresáře DocumentRoot (/var/www/html_debug). Proveďte všechny změny v tomto dočasném adresáři DocumentRoot (/var/www/html_debug) a spusťte Apache s tímto dočasným adresářem, jak je uvedeno níže pomocí volby -c.

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

Pokud se chcete vrátit k původní konfiguraci pomocí výchozího DocumentRoot (/var/www/html), jednoduše restartujte Apache, jak je uvedeno níže.

# httpd -k stop
# apachectl start

3. Dočasně zvyšte LogLevel

Během ladění problému můžete dočasně změnit LogLevel Apache, aniž byste museli upravovat direktivu LogLevel v httpd.conf, jak je ukázáno níže pomocí volby -e. V tomto příkladu je LogLevel nastavena na ladění.

# 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

Možné hodnoty můžete předat volbě -e jsou:ladění, informace, upozornění, varování, chyba, krit, upozornění, emerg

4. Zobrazte moduly zkompilované v Apache pomocí volby -l

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

5. Zobrazte statický i dynamický modul načtený Apache

Když předáte volbu -l, do httpd, zobrazí se pouze statické moduly. Předáním volby -M se zobrazí statické i sdílené moduly, jak je uvedeno níže.

# 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. Zobrazit všechny přijaté direktivy uvnitř httpd.conf

Je to jako rozšířená nápověda pro httpd, která zobrazí všechny direktivy httpd.conf a místa, kde jsou platné. Pro konkrétní direktivu sděluje všechny možné hodnoty a kde ji lze použít v souboru httpd.conf. To může být velmi užitečné, když se chcete rychle dozvědět o konkrétní direktivě 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. Po provedení změn ověřte soubor httpd.conf

Použijte volbu -t k ověření, zda existují nějaké problémy s konkrétním konfiguračním souborem Apache. V níže uvedeném příkladu to ukazuje, že na řádku 148 v httpd.conf.debug je problém. mod_auth_basicso chybí . (tečka) před tak.

# 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

Jakmile problém opravíte, zobrazí se Syntaxe OK .

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

8. Zobrazit parametry sestavení httpd

Použijte volbu -V (velké V) k zobrazení čísla verze Apache a všech parametrů, které se používají při sestavování 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"

Pokud chcete zobrazit pouze číslo verze Apache, použijte volbu -v (malá písmena v), jak je uvedeno níže.

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

9. Načtěte konkrétní modul pouze na vyžádání.

Někdy možná nebudete chtít načíst všechny moduly v Apache. Pro např. Možná budete chtít načíst moduly související s ldap do Apache, pouze když testujete LDAP. Toho lze dosáhnout níže uvedeným způsobem.

Upravte soubor httpd.conf a přidejte IfDefine direktiva nazvaná load-ldap (můžete si ji pojmenovat, jak chcete).

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

Když testujete ldap a chcete načíst moduly související s ldap, předejte load-ldap volbě -D, jak je uvedeno níže:

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

Pokud se vám tento článek líbil, přidejte si jej do záložek na del.icio.us, Digg and Stumble pomocí odkazu uvedeného níže v části „Co dál?“.


Linux
  1. Jak nainstalovat a používat Powertop na Ubuntu 16.04/20.04

  2. Jak používat APT s proxy na Ubuntu a Debianu

  3. Jak nainstalovat a používat Flatpak v Linuxu

  1. Použijte TLP k rychlému zvýšení a optimalizaci výdrže baterie notebooku Linux – Tecmint

  2. Nainstalujte a používejte příkaz Wget jako profesionál (13 tipů)

  3. Použijte SFTP a SCP

  1. Jsem uživatel POWER

  2. CHYBA 403 při načítání zdrojů jako CSS a JS v mém index.php

  3. Použijte .vimrc a .vim/ jiného uživatele