Projet

Général

Profil

Apache » Historique » Version 63

Patrice Nadeau, 2018-12-08 09:55

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 36 Patrice Nadeau
wget https://dl.eff.org/certbot-auto
120 1 Patrice Nadeau
chmod a+x certbot-auto
121 61 Patrice Nadeau
```
122 36 Patrice Nadeau
123 1 Patrice Nadeau
Lancer le script et spécifier le nom du serveur (FQDN) : 
124 61 Patrice Nadeau
125
```bash
126 1 Patrice Nadeau
# New certificate
127
./certbot-auto --apache certonly
128 45 Patrice Nadeau
# Renew all certificate
129
./certbot-auto renew
130 61 Patrice Nadeau
```
131 48 Patrice Nadeau
132
Modifier le fichier _/etc/apache2/default-server.conf_ (modifier _yourdomain_ par le nom du domaine approprié) :
133 61 Patrice Nadeau
134
```php
135 55 Patrice Nadeau
Listen 443
136 45 Patrice Nadeau
<VirtualHost *:443>
137 44 Patrice Nadeau
    SSLEngine on
138
    SSLCertificateFile /etc/letsencrypt/live/yourdomain/fullchain.pem
139
    SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain/privkey.pem
140
</VirtualHost>
141 61 Patrice Nadeau
```
142 44 Patrice Nadeau
143 61 Patrice Nadeau
### Mise en service
144 44 Patrice Nadeau
145
Relire la configuration d'Apache
146 61 Patrice Nadeau
147
```bash
148 38 Patrice Nadeau
sudo systemctl reload apache2.service
149 61 Patrice Nadeau
```
150 60 Patrice Nadeau
151 61 Patrice Nadeau
## Serveurs virtuels
152 19 Patrice Nadeau
153 1 Patrice Nadeau
Apache permet de rediriger les demandes d’accès vers 
154 61 Patrice Nadeau
155 19 Patrice Nadeau
* différents répertoires sur le même serveur 
156 17 Patrice Nadeau
* différents port
157
* un autre serveur
158 1 Patrice Nadeau
159
Très utile pour rediriger les requêtes à partir d'internet avec un seule adresse IP publique (NAT(Network Address Translation)).
160
161 17 Patrice Nadeau
162 18 Patrice Nadeau
Si le fichier _/etc/apache2/vhosts.d/vhost.conf_ n'existe pas, le créer à partir du gabarit de base
163 61 Patrice Nadeau
164
```bash
165 17 Patrice Nadeau
cd /etc/apache2/vhosts.d/
166
cp vhost.template vhost.conf
167 61 Patrice Nadeau
```
168 1 Patrice Nadeau
169 61 Patrice Nadeau
### Redirection vers un dossier différent.
170 1 Patrice Nadeau
171
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_
172 61 Patrice Nadeau
173
```php
174 1 Patrice Nadeau
<VirtualHost *:80>
175 16 Patrice Nadeau
        ServerName helpdesk.domain.tld
176 15 Patrice Nadeau
        DocumentRoot /srv/www/htdocs/hepdesk
177
        ServerAdmin admin@domain.tld
178 16 Patrice Nadeau
        <Directory "/srv/www/htdocs/helpdesk">
179
                #Order allow,deny #Since Apache 2.4
180 15 Patrice Nadeau
                Require all granted
181 16 Patrice Nadeau
         </Directory>
182 25 Patrice Nadeau
</VirtualHost>
183 22 Patrice Nadeau
184 15 Patrice Nadeau
<VirtualHost *:80>
185
        ServerName wiki.domain.tld
186
        DocumentRoot /srv/www/htdocs/wiki
187
        ServerAdmin admin@domain.tld
188
        <Directory "/srv/www/htdocs/wiki">
189
                #Order allow,deny # since Apache 2.4
190
                Require all granted
191
         </Directory>
192 25 Patrice Nadeau
</VirtualHost>
193 61 Patrice Nadeau
```
194 1 Patrice Nadeau
195
Modifier les items suivants :
196 61 Patrice Nadeau
197 1 Patrice Nadeau
* *ServerAdmin* : L'adresse de courriel de l'administrateur
198
* *ServerName* : Le FQDN(Fully Qualified Domain Name) du serveur
199
* *DocumentRoot* : L'emplacement des fichiers du site web
200 4 Patrice Nadeau
201 61 Patrice Nadeau
### Redirection vers un serveur différent
202 7 Patrice Nadeau
203
> Les modules _proxy_ et _proxy_http_ doivent déjà être actifs
204
205 34 Patrice Nadeau
Modifier le fichier _/etc/apache2/vhosts.d/vhost.conf_ 
206 61 Patrice Nadeau
207 12 Patrice Nadeau
Ex. : On veux rediriger le service _service_ vers le serveur _server1_
208 61 Patrice Nadeau
209
```php
210 12 Patrice Nadeau
<VirtualHost *:80>
211
        ServerName service.domaine.com
212 28 Patrice Nadeau
        ProxyPreserveHost On
213 12 Patrice Nadeau
        ProxyPass / http://serveur1.domaine.com/
214
        ProxyPassReverse / http://serveur1.domaine.com/
215 13 Patrice Nadeau
        ServerAdmin admin@domaine.com
216 12 Patrice Nadeau
</VirtualHost>
217 61 Patrice Nadeau
```
218 12 Patrice Nadeau
219 61 Patrice Nadeau
### Activation des changements
220 7 Patrice Nadeau
221 1 Patrice Nadeau
Relire la configuration d'Apache
222 61 Patrice Nadeau
223
```bash
224 27 Patrice Nadeau
systemctl reload apache2.service
225 61 Patrice Nadeau
```
226 1 Patrice Nadeau
227
Commandes
228 61 Patrice Nadeau
229 1 Patrice Nadeau
* _apache2ctl -S_ : liste les serveurs virtuels