Bonjour,
J'ai actuellement quelques problèmes de configuration d'Apache sur un site Symfony. Ça fonctionnait en local, mais en prod, impossible de faire fonctionner comme je le souhaiterais. Je m'explique :
J'ai un site : monsite.com ainsi que sa démo, demo.monsite.com. Jusque là, tout fonctionnait, j'avais rajouté l'entrée demo.monsite.com dans mes DNS sur OVH.
Plus récemment, j'ai souhaité que chaque utilisateur ait son sous-domaine : user1.monsite.com, user2.monsite.com, ... j'ai réussi à configurer Apache, et ça fonctionne, ainsi que l'HTTPS.
MAIS (!), comme j'ai demo.monsite.com, je veux aussi pouvoir aller sur : user1.demo.monsite.com, user2.demo.monsite.com. Et là, impossible d'accéder à userX.demo.monsite.com : "Impossible de trouver l'adresse IP du serveur".
Sur la prod, ça me parait plus compliqué, j'ai l'HTTPS à gérer et ça rajoute de la complexité ! Déjà, je ne sais pas si il faut modifier le fichier "monsite-le-ssl.conf" ou "monsite.conf" (ou les deux !).
J'utilise Letsencrypt. J'ai créé un certificat "Wildcard" avec la commande suivante :
Ça a bien fonctionné, mais pas pour les sous domaines de demo.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 certbot certonly --manual --server https://acme-v02.api.letsencrypt.org/directory -d monsite.com -d *.monsite.com
Je ne sais plus où regarder, et un peu d'aide me ferait le plus grand plaisir
Voilà ma config de vhosts en local, elle fonctionne :
La config dans le fichier "monsite.conf" de apache :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 <VirtualHost *:80> ServerName localhost DocumentRoot c:/wamp64/www <Directory "c:/wamp64/www/"> Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory> </VirtualHost> <VirtualHost *:80> ServerName demo.monsite.local ServerAlias *.demo.monsite.local DocumentRoot c:/wamp64/www/monsite/web DirectoryIndex app_demo.php <Directory c:/wamp64/www/monsite/web> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /app_demo.php [QSA,L] </IfModule> </Directory> </VirtualHost> <VirtualHost *:80> ServerName monsite.local ServerAlias *.monsite.local DocumentRoot c:/wamp64/www/monsite/web DirectoryIndex app_dev.php <Directory c:/wamp64/www/monsite/web> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /app_dev.php [QSA,L] </IfModule> </Directory> </VirtualHost>
Et enfin, la config dans "monsite-le-ssl.conf"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 <VirtualHost *:80> ServerName demo.monsite.com ServerAlias *.demo.monsite.com DocumentRoot /var/vhosts/monsite/current/web DirectoryIndex app_demo.php <Directory /var/vhosts/monsite/current/web> AllowOverride None Require all granted <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app_demo.php [QSA,L] </IfModule> </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined RewriteEngine On RewriteCond %{SERVER_NAME} =demo.monsite.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost> <VirtualHost *:80> ServerName monsite.com ServerAlias *.monsite.com DocumentRoot /var/vhosts/monsite/current/web DirectoryIndex app.php <Directory /var/vhosts/monsite/current/web> AllowOverride None Require all granted <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L] </IfModule> </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined RewriteEngine On RewriteCond %{SERVER_NAME} =monsite.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 <IfModule mod_ssl.c> <VirtualHost *:443> ServerName demo.monsite.com ServerAlias *.demo.monsite.com DocumentRoot /var/vhosts/monsite/current/web DirectoryIndex app_demo.php <Directory /var/vhosts/monsite/current/web> AllowOverride None Require all granted <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app_demo.php [QSA,L] </IfModule> </Directory> <Directory /var/www/project/web/bundles> <IfModule mod_rewrite.c> RewriteEngine Off </IfModule> </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined Include /etc/letsencrypt/options-ssl-apache.conf SSLEngine on SSLCertificateFile /etc/letsencrypt/live/monsite.com/cert.pem SSLCertificateChainFile /etc/letsencrypt/live/monsite.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/monsite.com/privkey.pem </VirtualHost> </IfModule> <IfModule mod_ssl.c> <VirtualHost *:443> ServerName monsite.com ServerAlias *.monsite.com DocumentRoot /var/vhosts/monsite/current/web DirectoryIndex app.php <Directory /var/vhosts/monsite/current/web> AllowOverride None Require all granted <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L] </IfModule> </Directory> <Directory /var/www/project/web/bundles> <IfModule mod_rewrite.c> RewriteEngine Off </IfModule> </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined Include /etc/letsencrypt/options-ssl-apache.conf SSLEngine on SSLCertificateFile /etc/letsencrypt/live/monsite.com/cert.pem SSLCertificateChainFile /etc/letsencrypt/live/monsite.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/monsite.com/privkey.pem </VirtualHost> </IfModule>
Merci beaucoup (beaucoup beaucoup beaucoup !)
EDIT : en fait il fallait plutot se concentrer sur les DNS que sur la config serveur ... et rajouter *.demo.monsite.com dans les DNS
Partager