Comment installer le serveur Web Apache sur Ubuntu 16.04

introduction

Le serveur HTTP Apache est le serveur Web le plus utilisé au monde. Il fournit de nombreuses fonctionnalités puissantes, notamment des modules chargeables dynamiquement, un support multimédia robuste et une intégration poussée à d’autres logiciels populaires.

Dans ce guide, nous expliquerons comment installer un serveur Web Apache sur votre serveur Ubuntu 16.04.

Conditions préalables

Avant de commencer ce guide, vous devez avoir un utilisateur normal non root avec les privilègessudo configurés sur votre serveur. De plus, vous devrez configurer un pare-feu de base pour bloquer les ports non essentiels. Vous pouvez apprendre comment configurer un compte d'utilisateur normal et mettre en place un pare-feu pour votre serveur en suivant nosinitial server setup guide for Ubuntu 16.04.

Lorsque vous avez un compte disponible, connectez-vous en tant qu'utilisateur non root pour commencer.

Étape 1: Installez Apache

Apache est disponible dans les référentiels logiciels par défaut d’Ubuntu. Nous allons donc l’installer à l’aide d’outils de gestion de paquets classiques.

Nous allons commencer par mettre à jour l'index de paquetage local pour refléter les dernières modifications en amont. Ensuite, nous pouvons installer le packageapache2:

sudo apt-get update
sudo apt-get install apache2

Après avoir confirmé l'installation,apt-get installera Apache et toutes les dépendances requises.

Étape 2: Ajustez le pare-feu

Avant de pouvoir tester Apache, nous devons modifier notre pare-feu pour permettre un accès externe aux ports Web par défaut. En supposant que vous ayez suivi les instructions des conditions préalables, vous devriez avoir un pare-feu UFW configuré pour restreindre l'accès à votre serveur.

Lors de l'installation, Apache s'enregistre auprès de UFW pour fournir quelques profils d'application. Nous pouvons utiliser ces profils pour simplifier le processus d'activation ou de désactivation de l'accès à Apache via notre pare-feu.

Nous pouvons lister les profils d'application deufw en tapant:

sudo ufw app list

Vous devriez obtenir une liste des profils d’application:

OutputAvailable applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Comme vous pouvez le constater, trois profils sont disponibles pour Apache:

  • Apache: ce profil ouvre uniquement le port 80 (trafic Web normal, non chiffré)

  • Apache Full: ce profil ouvre le port 80 (trafic Web normal, non chiffré) et le port 443 (trafic chiffré TLS / SSL)

  • Apache Secure: ce profil ouvre uniquement le port 443 (trafic crypté TLS / SSL)

Pour nos besoins, nous autoriserons le trafic entrant pour le profilApache Full en tapant:

sudo ufw allow 'Apache Full'

Vous pouvez vérifier le changement en tapant:

sudo ufw status

Vous devriez voir le trafic HTTP autorisé dans la sortie affichée:

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Apache Full                ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Apache Full (v6)           ALLOW       Anywhere (v6)

Comme vous pouvez le constater, le profil a été activé pour permettre l’accès au serveur Web.

Étape 3: Vérifiez votre serveur Web

À la fin du processus d'installation, Ubuntu 16.04 lance Apache. Le serveur Web devrait déjà être opérationnel.

Nous pouvons vérifier avec le système d'initialisation desystemd pour nous assurer que le service fonctionne en tapant:

sudo systemctl status apache2
Output● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Fri 2017-05-19 18:30:10 UTC; 1h 5min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 4336 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 4359 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
    Tasks: 55
   Memory: 2.3M
      CPU: 4.094s
   CGroup: /system.slice/apache2.service
           ├─4374 /usr/sbin/apache2 -k start
           ├─4377 /usr/sbin/apache2 -k start
           └─4378 /usr/sbin/apache2 -k start

May 19 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Stopped LSB: Apache2 web server.
May 19 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Starting LSB: Apache2 web server...
May 19 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]:  * Starting Apache httpd web server apache2
May 19 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
May 19 18:30:10 ubuntu-512mb-nyc3-01 apache2[4359]:  *
May 19 18:30:10 ubuntu-512mb-nyc3-01 systemd[1]: Started LSB: Apache2 web server.

Comme vous pouvez le voir ci-dessus, le service semble avoir démarré avec succès. Cependant, le meilleur moyen de tester cela consiste à demander une page à Apache.

Vous pouvez accéder à la page d'arrivée Apache par défaut pour vérifier que le logiciel fonctionne correctement. Vous pouvez y accéder via le nom de domaine ou l’adresse IP de votre serveur.

Si vous utilisez DigitalOcean et que vous n'avez pas de nom de domaine configuré pour votre serveur, vous pouvez suivre notre guidehow to set up a domain with DigitalOcean pour en configurer un.

Si vous ne souhaitez pas configurer un nom de domaine pour votre serveur, vous pouvez utiliser l'adresse IP publique de votre serveur. Si vous ne connaissez pas l’adresse IP de votre serveur, vous pouvez l’obtenir de différentes manières à partir de la ligne de commande.

Essayez de taper ceci à l’invite de commande de votre serveur:

hostname -I

Vous recevrez quelques adresses séparées par des espaces. Vous pouvez essayer chacun dans votre navigateur Web pour voir s'ils fonctionnent.

Une alternative est de taper ceci, ce qui devrait vous donner votre adresse IP publique telle que vue depuis un autre emplacement sur Internet:

sudo apt-get install curl
curl -4 icanhazip.com

Lorsque vous avez l'adresse IP ou le domaine de votre serveur, entrez-le dans la barre d'adresse de votre navigateur:

http://server_domain_or_IP

Vous devriez voir la page Web par défaut Ubuntu 16.04 Apache, qui devrait ressembler à ceci:

Apache default page

Cette page est simplement incluse pour montrer qu'Apache fonctionne correctement. Il contient également des informations de base sur les fichiers Apache importants et les emplacements de répertoires.

Étape 4: gérer le processus Apache

Maintenant que votre serveur Web est opérationnel, nous pouvons passer en revue certaines commandes de gestion de base.

Pour arrêter votre serveur Web, vous pouvez taper:

sudo systemctl stop apache2

Pour démarrer le serveur Web quand il est arrêté, tapez:

sudo systemctl start apache2

Pour arrêter puis redémarrer le service, tapez:

sudo systemctl restart apache2

Si vous effectuez simplement des modifications de configuration, Apache peut souvent recharger sans perdre de connexions. Pour ce faire, vous pouvez utiliser cette commande:

sudo systemctl reload apache2

Par défaut, Apache est configuré pour démarrer automatiquement au démarrage du serveur. Si ce n'est pas ce que vous voulez, vous pouvez désactiver ce comportement en tapant:

sudo systemctl disable apache2

Pour réactiver le service pour qu'il démarre au démarrage, vous pouvez taper:

sudo systemctl enable apache2

Apache devrait maintenant démarrer automatiquement lorsque le serveur redémarrera.

Étape 5: Familiarisez-vous avec les fichiers et répertoires Apache importants

Maintenant que vous savez comment gérer le service lui-même, prenez quelques minutes pour vous familiariser avec quelques répertoires et fichiers importants.

Contenu

  • /var/www/html: le contenu Web réel, qui, par défaut, ne comprend que la page Apache par défaut que vous avez vue précédemment, est diffusé à partir du répertoire/var/www/html. Cela peut être changé en modifiant les fichiers de configuration Apache.

Configuration du serveur

  • /etc/apache2: le répertoire de configuration Apache. Tous les fichiers de configuration Apache résident ici.

  • /etc/apache2/apache2.conf: le fichier de configuration principal d'Apache. Cela peut être modifié pour apporter des modifications à la configuration globale Apache. Ce fichier est responsable du chargement de nombreux autres fichiers dans le répertoire de configuration.

  • /etc/apache2/ports.conf: ce fichier spécifie les ports sur lesquels Apache écoutera. Par défaut, Apache écoute sur le port 80 et sur le port 443 lorsqu'un module fournissant des fonctionnalités SSL est activé.

  • /etc/apache2/sites-available/: Le répertoire dans lequel les «hôtes virtuels» par site peuvent être stockés. Apache n'utilisera pas les fichiers de configuration trouvés dans ce répertoire à moins qu'ils ne soient liés au répertoiresites-enabled (voir ci-dessous). En règle générale, toute la configuration du bloc serveur est effectuée dans ce répertoire, puis activée en établissant un lien vers l'autre répertoire avec la commandea2ensite.

  • /etc/apache2/sites-enabled/: Le répertoire dans lequel les «hôtes virtuels» sont activés par site sont stockés. En général, ceux-ci sont créés en liant les fichiers de configuration trouvés dans le répertoiresites-available avec lesa2ensite. Apache lit les fichiers de configuration et les liens trouvés dans ce répertoire au démarrage ou se recharge pour compiler une configuration complète.

  • /etc/apache2/conf-available/,/etc/apache2/conf-enabled/: ces répertoires ont la même relation que les répertoiressites-available etsites-enabled, mais sont utilisés pour stocker des fragments de configuration qui n'appartiennent pas à un hôte virtuel. Les fichiers du répertoireconf-available peuvent être activés avec la commandea2enconf et désactivés avec la commandea2disconf.

  • /etc/apache2/mods-available/,/etc/apache2/mods-enabled/: ces répertoires contiennent respectivement les modules disponibles et activés. Les fichiers se terminant par.load contiennent des fragments pour charger des modules spécifiques, tandis que les fichiers se terminant par.conf contiennent la configuration de ces modules. Les modules peuvent être activés et désactivés à l'aide des commandesa2enmod eta2dismod.

Journaux du serveur

  • /var/log/apache2/access.log: Par défaut, chaque requête adressée à votre serveur Web est enregistrée dans ce fichier journal à moins qu'Apache ne soit configuré pour faire autrement.

  • /var/log/apache2/error.log: Par défaut, toutes les erreurs sont enregistrées dans ce fichier. La directiveLogLevel dans la configuration Apache spécifie la quantité de détails que les journaux d'erreurs contiendront.

Conclusion

Maintenant que votre serveur Web est installé, vous disposez de nombreuses options pour le type de contenu à servir et les technologies que vous souhaitez utiliser pour créer une expérience plus riche.

Apprenezhow to use Apache Virtual Hosts here. Si vous souhaitez créer une pile d'applications plus complète, consultez cet article surhow to configure a LAMP stack on Ubuntu 16.04.

Related