Projet

Général

Profil

Actions

Apache

Serveur de page Web

Version 2.4


Installation

# Installation
sudo zypper install apache2
# Activation au démarrage
sudo systemctl enable apache2.service
# Démarrer Apache :
sudo systemctl start apache2.service

Ouvrir dans le pare-feu :

# Leap 15
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload

L’emplacement des fichier du serveur est /srv/www/htdocs.

Modules supplémentaires

La configuration d'Apache doit être relue lors de l'activation d'un module

La liste des modules actifs peut être listé avec

a2enmod -l

Version

Inclut dans Apache

sudo a2enmod mod_version

PHP

Support pour PHP

sudo zypper install apache2-mod_php7
sudo a2enmod mod_php7

Proxy

Redirection de serveur

sudo a2enmod proxy 
sudo a2enmod proxy_http

HTTPS

Serveur sécurisé

Pré-requis

Modifier le fichier /etc/apache2/httpd.conf et ajouter a la fin

Devrait se charger tout seul selon le fichier /etc/apache2/listen.conf

<IfModule mod_ssl.c>
Listen 443
</IfModule>

Vérifier qu'Apache supporte SSL

sudo a2enmod ssl mod_rewrite

Self-certificate

Générer les clés

openssl req -new > new.ssl.csr
openssl rsa -in privkey.pem -out new.cert.key
openssl x509 -in new.ssl.csr -out new.cert.cert -req -signkey new.cert.key -days 365
sudo cp new.cert.cert /etc/ssl/certs/server.crt
sudo cp new.cert.key /etc/ssl/private/server.key

Modifier le fichier /etc/apache2/default-server.conf

Listen 443
<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key
</VirtualHost>

Let’s Encrypt

https://letsencrypt.org

Certificats gratuits d'une durée de 90 jours.
Le renouvellement automatique peut être programmé.

Installer le script :

sudo zypper install python-certbot-apache

Lancer le script et spécifier le nom du serveur (FQDN) :

# New certificate
certbot --apache

Mise en service

Relire la configuration d'Apache

sudo systemctl reload apache2.service

Serveurs virtuels

Apache permet de rediriger les demandes d’accès vers

  • différents répertoires sur le même serveur
  • différents port
  • un autre serveur

Très utile pour rediriger les requêtes à partir d'internet avec un seule adresse IP publique (NAT(Network Address Translation)).

Si le fichier /etc/apache2/vhosts.d/vhost.conf n'existe pas, le créer à partir du gabarit de base

cd /etc/apache2/vhosts.d/
cp vhost.template vhost.conf

Redirection vers un dossier différent.

Ex. : On veux diriger helpdesk.domain.tld vers le dossier /srv/www/htdocs/helpdesk et wiki.domain.tld vers le dossier /srv/www/htdocs/wiki

<VirtualHost *:80>
        ServerName helpdesk.domain.tld
        DocumentRoot /srv/www/htdocs/hepdesk
        ServerAdmin admin@domain.tld
        <Directory "/srv/www/htdocs/helpdesk">
                #Order allow,deny #Since Apache 2.4
                Require all granted
         </Directory>
</VirtualHost>

<VirtualHost *:80>
        ServerName wiki.domain.tld
        DocumentRoot /srv/www/htdocs/wiki
        ServerAdmin admin@domain.tld
        <Directory "/srv/www/htdocs/wiki">
                #Order allow,deny # since Apache 2.4
                Require all granted
         </Directory>
</VirtualHost>

Modifier les items suivants :

  • ServerAdmin : L'adresse de courriel de l'administrateur
  • ServerName : Le FQDN(Fully Qualified Domain Name) du serveur
  • DocumentRoot : L'emplacement des fichiers du site web

Redirection vers un serveur différent

  • Activer le module mod_proxy :

    a2enmod mod_proxy mod_proxy_http mod_proxy_connect
    
  • Modifier le fichier /etc/apache2/vhosts.d/vhost.conf

    Ex. : On veux rediriger le service service vers le serveur server1

    <VirtualHost *:80>
        ServerName service.domaine.com
        ProxyPreserveHost On
        ProxyPass / http://serveur1.domaine.com/
        ProxyPassReverse / http://serveur1.domaine.com/
        ServerAdmin admin@domaine.com
    </VirtualHost>
    

Activation des changements

Relire la configuration d'Apache

systemctl reload apache2.service

Commandes

  • apache2ctl -S : liste les serveurs virtuels

Mis à jour par Patrice Nadeau il y a plus de 5 ans · 70 révisions