Projet

Général

Profil

Apache » Historique » Version 70

Patrice Nadeau, 2018-12-22 19:24

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 70 Patrice Nadeau
Modifier le fichier `/etc/apache2/httpd.conf` et ajouter a la fin
75
> Devrait se charger tout seul selon le fichier `/etc/apache2/listen.conf`
76
```bash
77
<IfModule mod_ssl.c>
78
Listen 443
79
</IfModule>
80
```
81
82 44 Patrice Nadeau
Vérifier qu'Apache supporte SSL
83 61 Patrice Nadeau
84
```bash
85 69 Patrice Nadeau
sudo a2enmod ssl mod_rewrite
86 61 Patrice Nadeau
```
87 1 Patrice Nadeau
88 61 Patrice Nadeau
#### Self-certificate
89 1 Patrice Nadeau
90 36 Patrice Nadeau
Générer les clés
91 61 Patrice Nadeau
92
```bash
93 36 Patrice Nadeau
openssl req -new > new.ssl.csr
94
openssl rsa -in privkey.pem -out new.cert.key
95 59 Patrice Nadeau
openssl x509 -in new.ssl.csr -out new.cert.cert -req -signkey new.cert.key -days 365
96 1 Patrice Nadeau
sudo cp new.cert.cert /etc/ssl/certs/server.crt
97 41 Patrice Nadeau
sudo cp new.cert.key /etc/ssl/private/server.key
98 61 Patrice Nadeau
```
99 1 Patrice Nadeau
100 43 Patrice Nadeau
Modifier le fichier _/etc/apache2/default-server.conf_
101 61 Patrice Nadeau
102
```php
103 43 Patrice Nadeau
Listen 443
104
<VirtualHost *:443>
105 1 Patrice Nadeau
    SSLEngine on
106
    SSLCertificateFile /etc/ssl/certs/server.crt
107 43 Patrice Nadeau
    SSLCertificateKeyFile /etc/ssl/private/server.key
108 1 Patrice Nadeau
</VirtualHost>
109 61 Patrice Nadeau
```
110 1 Patrice Nadeau
111 61 Patrice Nadeau
### Let’s Encrypt
112 46 Patrice Nadeau
113 37 Patrice Nadeau
https://letsencrypt.org
114 1 Patrice Nadeau
115 36 Patrice Nadeau
Certificats gratuits d'une durée de 90 jours.
116
Le renouvellement automatique peut être programmé.
117 47 Patrice Nadeau
118 45 Patrice Nadeau
Installer le script :
119 61 Patrice Nadeau
120
```bash
121 64 Patrice Nadeau
sudo zypper install python-certbot-apache
122 61 Patrice Nadeau
```
123 36 Patrice Nadeau
124 1 Patrice Nadeau
Lancer le script et spécifier le nom du serveur (FQDN) : 
125 61 Patrice Nadeau
126 1 Patrice Nadeau
```bash
127 44 Patrice Nadeau
# New certificate
128 64 Patrice Nadeau
certbot --apache
129 61 Patrice Nadeau
```
130 44 Patrice Nadeau
131 61 Patrice Nadeau
### Mise en service
132 44 Patrice Nadeau
133
Relire la configuration d'Apache
134 61 Patrice Nadeau
135
```bash
136 38 Patrice Nadeau
sudo systemctl reload apache2.service
137 61 Patrice Nadeau
```
138 60 Patrice Nadeau
139 61 Patrice Nadeau
## Serveurs virtuels
140 19 Patrice Nadeau
141 1 Patrice Nadeau
Apache permet de rediriger les demandes d’accès vers 
142 61 Patrice Nadeau
143 19 Patrice Nadeau
* différents répertoires sur le même serveur 
144 17 Patrice Nadeau
* différents port
145
* un autre serveur
146 1 Patrice Nadeau
147
Très utile pour rediriger les requêtes à partir d'internet avec un seule adresse IP publique (NAT(Network Address Translation)).
148
149 17 Patrice Nadeau
150 18 Patrice Nadeau
Si le fichier _/etc/apache2/vhosts.d/vhost.conf_ n'existe pas, le créer à partir du gabarit de base
151 61 Patrice Nadeau
152
```bash
153 17 Patrice Nadeau
cd /etc/apache2/vhosts.d/
154
cp vhost.template vhost.conf
155 61 Patrice Nadeau
```
156 1 Patrice Nadeau
157 61 Patrice Nadeau
### Redirection vers un dossier différent.
158 1 Patrice Nadeau
159
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_
160 61 Patrice Nadeau
161
```php
162 1 Patrice Nadeau
<VirtualHost *:80>
163 16 Patrice Nadeau
        ServerName helpdesk.domain.tld
164 15 Patrice Nadeau
        DocumentRoot /srv/www/htdocs/hepdesk
165
        ServerAdmin admin@domain.tld
166 16 Patrice Nadeau
        <Directory "/srv/www/htdocs/helpdesk">
167
                #Order allow,deny #Since Apache 2.4
168 15 Patrice Nadeau
                Require all granted
169 16 Patrice Nadeau
         </Directory>
170 25 Patrice Nadeau
</VirtualHost>
171 22 Patrice Nadeau
172 15 Patrice Nadeau
<VirtualHost *:80>
173
        ServerName wiki.domain.tld
174
        DocumentRoot /srv/www/htdocs/wiki
175
        ServerAdmin admin@domain.tld
176
        <Directory "/srv/www/htdocs/wiki">
177
                #Order allow,deny # since Apache 2.4
178
                Require all granted
179
         </Directory>
180 25 Patrice Nadeau
</VirtualHost>
181 61 Patrice Nadeau
```
182 1 Patrice Nadeau
183
Modifier les items suivants :
184 61 Patrice Nadeau
185 1 Patrice Nadeau
* *ServerAdmin* : L'adresse de courriel de l'administrateur
186
* *ServerName* : Le FQDN(Fully Qualified Domain Name) du serveur
187
* *DocumentRoot* : L'emplacement des fichiers du site web
188 4 Patrice Nadeau
189 61 Patrice Nadeau
### Redirection vers un serveur différent
190 7 Patrice Nadeau
191 66 Patrice Nadeau
* Activer le module _mod_proxy_ :
192 65 Patrice Nadeau
193 66 Patrice Nadeau
    ```bash
194 68 Patrice Nadeau
a2enmod mod_proxy mod_proxy_http mod_proxy_connect
195 66 Patrice Nadeau
    ```
196
* Modifier le fichier _/etc/apache2/vhosts.d/vhost.conf_ 
197 61 Patrice Nadeau
198 66 Patrice Nadeau
    > Ex. : On veux rediriger le service _service_ vers le serveur _server1_
199 61 Patrice Nadeau
200 66 Patrice Nadeau
    ```php
201 12 Patrice Nadeau
<VirtualHost *:80>
202
        ServerName service.domaine.com
203 28 Patrice Nadeau
        ProxyPreserveHost On
204 12 Patrice Nadeau
        ProxyPass / http://serveur1.domaine.com/
205
        ProxyPassReverse / http://serveur1.domaine.com/
206 13 Patrice Nadeau
        ServerAdmin admin@domaine.com
207 12 Patrice Nadeau
</VirtualHost>
208 66 Patrice Nadeau
    ```
209 12 Patrice Nadeau
210 61 Patrice Nadeau
### Activation des changements
211 7 Patrice Nadeau
212 1 Patrice Nadeau
Relire la configuration d'Apache
213 61 Patrice Nadeau
214
```bash
215 27 Patrice Nadeau
systemctl reload apache2.service
216 61 Patrice Nadeau
```
217 1 Patrice Nadeau
218
Commandes
219 61 Patrice Nadeau
220 1 Patrice Nadeau
* _apache2ctl -S_ : liste les serveurs virtuels