GNU/Linux >> Tutoriels Linux >  >> Linux

9 conseils pour utiliser Apachectl et Httpd comme un utilisateur expérimenté

Après avoir installé Apache2, si vous souhaitez utiliser apachectl et httpd au maximum de leur potentiel, vous devez aller au-delà en utilisant le démarrage, l'arrêt et le redémarrage. Les 9 exemples pratiques fournis dans cet article vous aideront à utiliser apachectl et httpd très efficacement.

Apachectl agit comme un script d'initialisation SysV, prenant des arguments comme start, stop, restart et status. Il agit également comme interface avec la commande httpd, en passant simplement les arguments de la ligne de commande à httpd. Ainsi, toutes les commandes que vous exécutez à l'aide d'apachectl peuvent également être exécutées directement en appelant httpd.

1. Passez un nom de fichier httpd.conf différent à apachectl

En règle générale, vous modifierez le httpd.conf d'origine pour essayer différentes directives Apache. Si quelque chose ne fonctionne pas, vous annulerez les modifications. Au lieu de jouer avec le httpd.conf d'origine, copiez-le dans un nouveau httpd.conf.debug et utilisez ce nouveau fichier httpd.conf.debug avec Apache à des fins de test, comme indiqué ci-dessous en utilisant l'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]

Une fois que vous êtes satisfait des modifications et qu'Apache s'exécute sans problème avec httpd.conf.debug, vous pouvez copier les modifications dans httpd.conf et démarrer Apache normalement, comme indiqué ci-dessous.

# 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. Utiliser un DocumentRoot temporaire sans modifier httpd.conf

Ceci est très utile lorsque vous essayez différentes mises en page pour votre site Web et que vous ne souhaitez pas modifier les fichiers d'origine sous le DocumentRoot par défaut. Prenez une copie de votre répertoire DocumentRoot d'origine (/var/www/html) dans un nouveau répertoire DocumentRoot temporaire (/var/www/html_debug). Effectuez toutes vos modifications sous ce répertoire temporaire DocumentRoot (/var/www/html_debug) et démarrez Apache avec ce répertoire temporaire comme indiqué ci-dessous en utilisant l'option -c.

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

Si vous souhaitez revenir à la configuration d'origine en utilisant le DocumentRoot par défaut (/var/www/html), redémarrez simplement Apache comme indiqué ci-dessous.

# httpd -k stop
# apachectl start

3. Augmentez temporairement le LogLevel

Pendant que vous déboguez un problème, vous pouvez modifier temporairement le LogLevel d'Apache, sans modifier la directive LogLevel dans httpd.conf comme indiqué ci-dessous en utilisant l'option -e. Dans cet exemple, le LogLevel est défini sur 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

Valeurs possibles que vous pouvez passer à option -e sont :debug, info, notice, warn, error, crit, alert, emerg

4. Affichez les modules compilés dans Apache en utilisant l'option -l

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

5. Afficher les modules statiques et dynamiques chargés par Apache

Lorsque vous passez l'option -l, à httpd, il n'affichera que les modules statiques. En passant l'option -M, les modules statiques et partagés s'afficheront comme indiqué ci-dessous.

# 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. Afficher toutes les directives acceptées dans httpd.conf

C'est comme une aide étendue pour httpd, qui affichera toutes les directives httpd.conf et les endroits où elles sont valides. Pour une directive spécifique, il indique toutes les valeurs possibles et où il peut être utilisé à l'intérieur du httpd.conf. Cela peut être très utile lorsque vous souhaitez connaître rapidement une directive Apache particulière.

# 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. Validez le httpd.conf après avoir apporté des modifications

Utilisez l'option -t pour valider s'il existe des problèmes avec un fichier de configuration Apache spécifique. Dans l'exemple ci-dessous, il affiche qu'il y a un problème à la ligne 148 dans httpd.conf.debug. mod_auth_basicso manque un fichier . (point) avant le 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

Une fois le problème résolu, il affichera Syntaxe OK .

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

8. Afficher les paramètres de compilation httpd

Utilisez l'option -V (V majuscule) pour afficher le numéro de version d'Apache et tous les paramètres utilisés lors de la construction d'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 vous souhaitez afficher uniquement le numéro de version d'Apache, utilisez l'option -v (v minuscule) comme indiqué ci-dessous.

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

9. Charger un module spécifique uniquement à la demande.

Parfois, vous ne voudrez peut-être pas charger tous les modules dans Apache. Par ex. Vous souhaiterez peut-être charger des modules liés à LDAP dans Apache, uniquement lorsque vous testez LDAP. Ceci peut être réalisé comme indiqué ci-dessous.

Modifiez le httpd.conf et ajoutez IfDefine directive appelée load-ldap (vous pouvez nommer cela comme vous voulez).

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

Lorsque vous testez LDAP et que vous souhaitez charger les modules liés à LDAP, transmettez load-ldap à l'option -D, comme indiqué ci-dessous :

# 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 vous avez aimé cet article, veuillez le mettre en signet sur del.icio.us, Digg and Stumble en utilisant le lien fourni ci-dessous dans la section "Et ensuite ?".


Linux
  1. Comment utiliser APT avec Proxy sur Ubuntu et Debian

  2. Comment installer et utiliser Flatpak sous Linux

  3. Installez et utilisez la commande Wget comme un pro (13 conseils)

  4. Utiliser la commande Grep et localiser ?

  5. Utiliser SFTP et SCP

Comment installer et utiliser Helm dans Kubernetes

Comment installer et utiliser Linux Screen ?

Comment installer et utiliser PuTTY sous Linux

Qu'est-ce que le référentiel d'utilisateurs Arch (AUR) ? Comment utiliser AUR sur Arch et Manjaro Linux ?

5 conseils pour utiliser la commande Linux SS comme un pro

10 conseils pour utiliser efficacement le support de votre fournisseur de matériel et de logiciels