Gérer un ordinateur sous Linux : Défi

Exercice : Défi

Mise en place

Dans cet exercice nous allons devoir manipuler un serveur web Apache. Il n'est pas nécessaire de savoir s'en servir particulier, la chose importante à savoir est que c'est un service qui permet d'héberger des pages web sur sa machine. On peut l'installer simplement avec :

sudo apt-get install apache2

Assurez vous que le service apache2 est correctement en train de fonctionner.

$ systemctl status apache2 
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; disabled; vendor preset: enabled)
     Active: active (running) since Mon 2020-12-14 18:04:15 CET; 2s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 31799 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 31810 (apache2)
      Tasks: 55 (limit: 9345)
     Memory: 17.0M
     CGroup: /system.slice/apache2.service
             ├─31810 /usr/sbin/apache2 -k start
             ├─31811 /usr/sbin/apache2 -k start
             └─31812 /usr/sbin/apache2 -k start

Trouver une erreur

Entrez la commande suivante, si possible sans trop l'analysez (le but est de créer une erreur)

sudo sed -i "s/ServerAdmin/Serverdmin/g" /etc/apache2/sites-enabled/000-default.conf

Redémarrez le service, que se passe-t-il ?

Lorsque l'on redémarre le service, une erreur se présente.

$ systemctl restart apache2                                                           
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.

On remarque en effet que le service est désormais failed.

$ systemctl status apache2  
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; disabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Mon 2020-12-14 18:09:36 CET; 35s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 32020 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)

Comment trouver et corriger l'erreur ? (sans regarder la commande qui l'a introduite)

Les logs du service doivent indiquer l'erreur exacte.

On peut commencer par analysez les logs du service.

$ journalctl -u apache2                    
déc. 14 18:09:36 europa systemd[1]: Starting The Apache HTTP Server...
déc. 14 18:09:36 europa apachectl[32023]: AH00526: Syntax error on line 11 of /etc/apache2/sites-enabled/000-default.conf:
déc. 14 18:09:36 europa apachectl[32023]: Invalid command 'Serverdmin', perhaps misspelled or defined by a module not included in the server configuration
déc. 14 18:09:36 europa apachectl[32020]: Action 'start' failed.
déc. 14 18:09:36 europa apachectl[32020]: The Apache error log may have more information.
déc. 14 18:09:36 europa systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
déc. 14 18:09:36 europa systemd[1]: apache2.service: Failed with result 'exit-code'.
déc. 14 18:09:36 europa systemd[1]: Failed to start The Apache HTTP Server.

Un des message indique une erreur de syntaxe dans le fichier /etc/apache2/sites-enabled/000-default.conf à la ligne 11, et le message suivant précise que le terme "Serverdmin" n'est pas correct.

En lisant la documentation de Apache, ou par simple déduction, on se rend compte qu'il faut modifier ce fichier pour indiquer "ServerAdmin". On peut ensuite démarrer le service sans soucis.

$ systemctl start apache2                              
$ systemctl status apache2
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; disabled; vendor preset: enabled)
     Active: active (running) since Mon 2020-12-14 18:15:09 CET; 4s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 32379 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 32383 (apache2)
      Tasks: 55 (limit: 9345)
     Memory: 14.6M
     CGroup: /system.slice/apache2.service
             ├─32383 /usr/sbin/apache2 -k start
             ├─32384 /usr/sbin/apache2 -k start
             └─32385 /usr/sbin/apache2 -k start
déc. 14 18:15:09 europa systemd[1]: Starting The Apache HTTP Server...
déc. 14 18:15:09 europa systemd[1]: Started The Apache HTTP Server.

Auto-évaluation

Auto-évaluez votre capacité à répondre correctement aux questions de ce défi (sur une échelle de 1 à 4) :

  1. Je ne sais répondre à aucune question (ou presque)

  2. Je sais répondre à moins de la moitié des questions

  3. Je sais répondre à plus de la moitié des questions

  4. Je sais répondre à toutes les questions (ou presque)

Auto-évaluez votre capacité à répondre correctement aux questions de ce défi (sur une échelle de 1 à 4) :

  1. Je ne sais répondre à aucune question (ou presque)

  2. Je sais répondre à moins de la moitié des questions

  3. Je sais répondre à plus de la moitié des questions

  4. Je sais répondre à toutes les questions (ou presque)

4
Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.