Projet

Général

Profil

Apache » Historique » Version 68

Patrice Nadeau, 2018-12-22 14:04

1 61 Patrice Nadeau
## Apache
2 1 Patrice Nadeau
3
Serveur de page Web
4
5 21 Patrice Nadeau
> Version 2.4
6
7 1 Patrice Nadeau
---
8
9
{{toc}}
10
11 61 Patrice Nadeau
## Installation
12 1 Patrice Nadeau
13 61 Patrice Nadeau
```bash
14 29 Patrice Nadeau
# Installation
15 50 Patrice Nadeau
sudo zypper install apache2
16 29 Patrice Nadeau
# Activation au démarrage
17 49 Patrice Nadeau
sudo systemctl enable apache2.service
18 1 Patrice Nadeau
# Démarrer Apache :
19
sudo systemctl start apache2.service
20 61 Patrice Nadeau
```
21 1 Patrice Nadeau
22
Ouvrir dans le pare-feu :
23 61 Patrice Nadeau
24
```bash
25 62 Patrice Nadeau
# Leap 15
26
sudo firewall-cmd --permanent --add-service=http --add-service=https
27
sudo firewall-cmd --reload
28 61 Patrice Nadeau
```
29 1 Patrice Nadeau
30
L’emplacement des fichier du serveur est _/srv/www/htdocs_.
31
32 61 Patrice Nadeau
## Modules supplémentaires
33
34 1 Patrice Nadeau
> La configuration d'Apache doit être relue lors de l'activation d'un module
35
36
La liste des modules actifs peut être listé avec
37 61 Patrice Nadeau
38
```bash
39 1 Patrice Nadeau
a2enmod -l
40 61 Patrice Nadeau
```
41 32 Patrice Nadeau
42 61 Patrice Nadeau
### Version
43 1 Patrice Nadeau
44
Inclut dans Apache
45 61 Patrice Nadeau
46
```bash
47 31 Patrice Nadeau
sudo a2enmod mod_version
48 61 Patrice Nadeau
```
49 1 Patrice Nadeau
50 61 Patrice Nadeau
### PHP
51 31 Patrice Nadeau
52 1 Patrice Nadeau
Support pour PHP
53
54
```bash
55 63 Patrice Nadeau
sudo zypper install apache2-mod_php7
56
sudo a2enmod mod_php7
57 61 Patrice Nadeau
```
58 1 Patrice Nadeau
59 61 Patrice Nadeau
### Proxy
60 1 Patrice Nadeau
61
Redirection de serveur
62 61 Patrice Nadeau
63
```bash
64 1 Patrice Nadeau
sudo a2enmod proxy 
65 54 Patrice Nadeau
sudo a2enmod proxy_http
66 61 Patrice Nadeau
```
67 30 Patrice Nadeau
68 61 Patrice Nadeau
## HTTPS
69 1 Patrice Nadeau
70 40 Patrice Nadeau
Serveur sécurisé
71 1 Patrice Nadeau
72 61 Patrice Nadeau
### Pré-requis
73 36 Patrice Nadeau
74 44 Patrice Nadeau
Vérifier qu'Apache supporte SSL
75 61 Patrice Nadeau
76
```bash
77 43 Patrice Nadeau
sudo a2enmod -l
78 61 Patrice Nadeau
```
79 1 Patrice Nadeau
80 43 Patrice Nadeau
Si le module *ssl* n’apparaît pas, l'activer
81 61 Patrice Nadeau
82
```bash
83 41 Patrice Nadeau
sudo a2enmod ssl
84 61 Patrice Nadeau
```
85 1 Patrice Nadeau
86 61 Patrice Nadeau
#### Self-certificate
87 1 Patrice Nadeau
88 36 Patrice Nadeau
Générer les clés
89 61 Patrice Nadeau
90
```bash
91 36 Patrice Nadeau
openssl req -new > new.ssl.csr
92
openssl rsa -in privkey.pem -out new.cert.key
93 59 Patrice Nadeau
openssl x509 -in new.ssl.csr -out new.cert.cert -req -signkey new.cert.key -days 365
94 1 Patrice Nadeau
sudo cp new.cert.cert /etc/ssl/certs/server.crt
95 41 Patrice Nadeau
sudo cp new.cert.key /etc/ssl/private/server.key
96 61 Patrice Nadeau
```
97 1 Patrice Nadeau
98 43 Patrice Nadeau
Modifier le fichier _/etc/apache2/default-server.conf_
99 61 Patrice Nadeau
100
```php
101 43 Patrice Nadeau
Listen 443
102
<VirtualHost *:443>
103 1 Patrice Nadeau
    SSLEngine on
104
    SSLCertificateFile /etc/ssl/certs/server.crt
105 43 Patrice Nadeau
    SSLCertificateKeyFile /etc/ssl/private/server.key
106 1 Patrice Nadeau
</VirtualHost>
107 61 Patrice Nadeau
```
108 1 Patrice Nadeau
109 61 Patrice Nadeau
### Let’s Encrypt
110 46 Patrice Nadeau
111 37 Patrice Nadeau
https://letsencrypt.org
112 1 Patrice Nadeau
113 36 Patrice Nadeau
Certificats gratuits d'une durée de 90 jours.
114
Le renouvellement automatique peut être programmé.
115 47 Patrice Nadeau
116 45 Patrice Nadeau
Installer le script :
117 61 Patrice Nadeau
118
```bash
119 64 Patrice Nadeau
sudo zypper install python-certbot-apache
120 61 Patrice Nadeau
```
121 36 Patrice Nadeau
122 1 Patrice Nadeau
Lancer le script et spécifier le nom du serveur (FQDN) : 
123 61 Patrice Nadeau
124 1 Patrice Nadeau
```bash
125 44 Patrice Nadeau
# New certificate
126 64 Patrice Nadeau
certbot --apache
127 61 Patrice Nadeau
```
128 44 Patrice Nadeau
129 61 Patrice Nadeau
### Mise en service
130 44 Patrice Nadeau
131
Relire la configuration d'Apache
132 61 Patrice Nadeau
133
```bash
134 38 Patrice Nadeau
sudo systemctl reload apache2.service
135 61 Patrice Nadeau
```
136 60 Patrice Nadeau
137 61 Patrice Nadeau
## Serveurs virtuels
138 19 Patrice Nadeau
139 1 Patrice Nadeau
Apache permet de rediriger les demandes d’accès vers 
140 61 Patrice Nadeau
141 19 Patrice Nadeau
* différents répertoires sur le même serveur 
142 17 Patrice Nadeau
* différents port
143
* un autre serveur
144 1 Patrice Nadeau
145
Très utile pour rediriger les requêtes à partir d'internet avec un seule adresse IP publique (NAT(Network Address Translation)).
146
147 17 Patrice Nadeau
148 18 Patrice Nadeau
Si le fichier _/etc/apache2/vhosts.d/vhost.conf_ n'existe pas, le créer à partir du gabarit de base
149 61 Patrice Nadeau
150
```bash
151 17 Patrice Nadeau
cd /etc/apache2/vhosts.d/
152
cp vhost.template vhost.conf
153 61 Patrice Nadeau
```
154 1 Patrice Nadeau
155 61 Patrice Nadeau
### Redirection vers un dossier différent.
156 1 Patrice Nadeau
157
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_
158 61 Patrice Nadeau
159
```php
160 1 Patrice Nadeau
<VirtualHost *:80>
161 16 Patrice Nadeau
        ServerName helpdesk.domain.tld
162 15 Patrice Nadeau
        DocumentRoot /srv/www/htdocs/hepdesk
163
        ServerAdmin admin@domain.tld
164 16 Patrice Nadeau
        <Directory "/srv/www/htdocs/helpdesk">
165
                #Order allow,deny #Since Apache 2.4
166 15 Patrice Nadeau
                Require all granted
167 16 Patrice Nadeau
         </Directory>
168 25 Patrice Nadeau
</VirtualHost>
169 22 Patrice Nadeau
170 15 Patrice Nadeau
<VirtualHost *:80>
171
        ServerName wiki.domain.tld
172
        DocumentRoot /srv/www/htdocs/wiki
173
        ServerAdmin admin@domain.tld
174
        <Directory "/srv/www/htdocs/wiki">
175
                #Order allow,deny # since Apache 2.4
176
                Require all granted
177
         </Directory>
178 25 Patrice Nadeau
</VirtualHost>
179 61 Patrice Nadeau
```
180 1 Patrice Nadeau
181
Modifier les items suivants :
182 61 Patrice Nadeau
183 1 Patrice Nadeau
* *ServerAdmin* : L'adresse de courriel de l'administrateur
184
* *ServerName* : Le FQDN(Fully Qualified Domain Name) du serveur
185
* *DocumentRoot* : L'emplacement des fichiers du site web
186 4 Patrice Nadeau
187 61 Patrice Nadeau
### Redirection vers un serveur différent
188 7 Patrice Nadeau
189 66 Patrice Nadeau
* Activer le module _mod_proxy_ :
190 65 Patrice Nadeau
191 66 Patrice Nadeau
    ```bash
192 68 Patrice Nadeau
a2enmod mod_proxy mod_proxy_http mod_proxy_connect
193 66 Patrice Nadeau
    ```
194
* Modifier le fichier _/etc/apache2/vhosts.d/vhost.conf_ 
195 61 Patrice Nadeau
196 66 Patrice Nadeau
    > Ex. : On veux rediriger le service _service_ vers le serveur _server1_
197 61 Patrice Nadeau
198 66 Patrice Nadeau
    ```php
199 12 Patrice Nadeau
<VirtualHost *:80>
200
        ServerName service.domaine.com
201 28 Patrice Nadeau
        ProxyPreserveHost On
202 12 Patrice Nadeau
        ProxyPass / http://serveur1.domaine.com/
203
        ProxyPassReverse / http://serveur1.domaine.com/
204 13 Patrice Nadeau
        ServerAdmin admin@domaine.com
205 12 Patrice Nadeau
</VirtualHost>
206 66 Patrice Nadeau
    ```
207 12 Patrice Nadeau
208 61 Patrice Nadeau
### Activation des changements
209 7 Patrice Nadeau
210 1 Patrice Nadeau
Relire la configuration d'Apache
211 61 Patrice Nadeau
212
```bash
213 27 Patrice Nadeau
systemctl reload apache2.service
214 61 Patrice Nadeau
```
215 1 Patrice Nadeau
216
Commandes
217 61 Patrice Nadeau
218 1 Patrice Nadeau
* _apache2ctl -S_ : liste les serveurs virtuels