Configuration de sous-domaine apache2

Bonsoir à tous,

Pour le site d’un client, j’ai besoin de définir 3 vhosts (site.com, forum.site.com & xxx.site.com), sur un hébergement dédié.

site.com, lui, c’est bon, ça marche, j’y accède bien.

xxx.site.com, c’est à voir par la suite

forum.site.com, le cas que j’essaie de traiter actuellement mais qui n’aboutit pas.

`
NameVirtualHost *:80

ServerName site.com ServerAdmin webmaster@site.com
    DocumentRoot /var/www/html

    ScriptAlias /cgi-bin /var/www/.phpbrew/php/php-7.0.12/bin

    <Directory /var/www/html/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            Allow from all
            AddHandler php-cgi .php
            Action php-cgi /cgi-bin/php-cgi
            <FilesMatch "\.php*">
                     SetHandler php-cgi
            </FilesMatch>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerName forum.site.com ServerAdmin webmaster@site.com ServerAlias forum.site.com
    DocumentRoot /var/www/html

    ScriptAlias /cgi-bin /var/www/.phpbrew/php/php-7.0.12/bin

    <Directory /var/www/html/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            Allow from all
            AddHandler php-cgi .php
            Action php-cgi /cgi-bin/php-cgi
            <FilesMatch "\.php*">
                     SetHandler php-cgi
            </FilesMatch>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
`

Y aurait-il quelque chose qui ne va pas dans ma config, svp?

Info complémentaire :
j’ai ajouté la ligne address=/site.com/xxx.xxx.xxx.xxx à dnsmasq.conf
je n’ai a aucune trace de mes appels à forum.site.com, ni dans access.log, ni dans error.log

En premier lieu j’ai édité et changé la catégorie ce n’est pas de la programmation mais de la configuration de vhost.

La zone DNS est-elle clairement définit au niveau de ton registrar, vue que tu ne fourni aucun nom de domaine nous ne pouvons vérifier pour toi :wink:

Pour la suite tu devrais placer tes sites/forum/blog dans des répertoires racine différents et le spécifier correctement dans le vhost

DocumentRoot /var/www/html

Merci pour le changement de catégorie :blush:

Pour le dossier, c’est normal, le but étant de permettre une gestion aisée, par les développeurs, sans devoir leur donner accès à la config… tout le reste étant donc géré via .htaccess

Te me diras “à quoi bon faire des vhosts, alors?”, ben, la raison est simple : pouvoir utiliser des versions différentes de PHP :wink:

Voici donc où j’en suis, avec les vraies IP, etc.

  • Le domaine ne répond qu’une fois de temps en temps (vraiment curieux, même sais rien changer)
  • Le sous-domaine du forum fonctionne, de manière permanente
  • Tous les autres sous-domaines (wildcard), comme pour le domaine, fonctionnent de temps en temps.

[B]/etc/apache2/sites-enabled/psychologuespecialise.com.conf[/B]

[CODE]<VirtualHost 176.31.121.198:80>
ServerName psychologuespecialise.com
ServerAdmin webmaster@psychologuespecialise.com

ServerSignature Off
    DirectoryIndex index.php
    DocumentRoot /var/www/html
    ScriptAlias /cgi-bin /var/www/.phpbrew/php/php-7.0.12/bin

    <Directory /var/www/html/>
         Options Indexes FollowSymLinks MultiViews
         AllowOverride All
         Require all granted
         AddHandler php-cgi .php
         Action php-cgi /cgi-bin/php-cgi

         <FilesMatch "\.php*">
              SetHandler php-cgi
         </FilesMatch>
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/psychologuespecialise.com.error.log
     CustomLog ${APACHE_LOG_DIR}/psychologuespecialise.com.access.log combined

<VirtualHost 176.31.121.198:80>
ServerName forum.psychologuespecialise.com
ServerAdmin webmaster@psychologuespecialise.com

ServerSignature Off
    DirectoryIndex index.php
    DocumentRoot /var/www/html
    ScriptAlias /cgi-bin /var/www/.phpbrew/php/php-5.6.27/bin

    <Directory /var/www/html/>
         Options Indexes FollowSymLinks MultiViews
         AllowOverride All
         Require all granted
         AddHandler php-cgi .php
         Action php-cgi /cgi-bin/php-cgi

         <FilesMatch "\.php*">
              SetHandler php-cgi
         </FilesMatch>
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/psychologuespecialise.com.forum.error.log
     CustomLog ${APACHE_LOG_DIR}/psychologuespecialise.com.forum.access.log combined

[/CODE]

[B]/etc/bind/named.conf.local[/B]

zone "psychologuespecialise.com" { type master; allow-transfer {213.186.33.199;}; file "/etc/bind/db.psychologuespecialise.com"; };

[B]/etc/bind/named.conf.option[/B]

[CODE]options {
directory “/var/cache/bind”;

    dnssec-validation auto;

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { 2001:41d0:8:40c6::1; };
    listen-on { 176.31.121.198; };
    allow-recursion { 127.0.0.1; ::1; };

};[/CODE]

[B]/etc/bind/db.psychologuespecialise.com[/B]

[CODE]$ttl 300

@ IN SOA psychologuespecialise.com. webmaster.psychologuespecialise.com. (
2016102849 ; Serial
14400 ; Refresh
7200 ; Retry
604800 ; Expires
300; Negative cache TTL
);
@ IN NS ns.kimsufi.com.
psychologuespecialise.com. IN A 176.31.121.198
forum.psychologuespecialise.com. IN A 176.31.121.198
*.psychologuespecialise.com. IN A 176.31.121.198[/CODE]

[B]/etc/hosts[/B]

127.0.0.1 localhost.localdomain localhost 176.31.121.198 ns330523.ip-176-31-121.eu ns330523 2001:41d0:0008:40c6::1 ns330523.ip-176-31-121.eu ns330523 ns330523 *.psychologuespecialise.com ns330523 psychologuespecialise.com

Imaginer qu’un client veut accéder dans deux fenêtres différentes à http://forum.psychologuespecialise.com et à http://psychologuespecialise.com, comme il semble que la résolution DNS nous donne la même IP.
Comment le processus Apache qui écoute sur cette IP port 80, peut-il savoir si le paquet, la requête qu’il reçoit est pour le forum ou le VirtualHost qui n’a pas de nom ? C’est strictement impossible.

Je vous suggère de remplacer dans le premier cas par

ServerName  www.psychologuespecialise.com

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة

F. Petitjean

« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)

Bah, si, c’est possible… plein de sites ont un domaine sans www et des sous-domaines, malgré tout…

Pour preuve, quand le DNS foire pas (intermittence), cela fonctionne très bien… d’ailleurs, je n’ai aucune erreur Apache :wink:

Je pense qu’Apache cherche simplement la meilleure correspondance, pour choisir quel vhost appliquer.

PS: j’ai tout de même essayé, hein :wink:

Il n’y a pas de notion de sous-domaine. La plupart des sites acceptent qu’on oublie le www (ou autre) pour désigner le domaine par défaut.

Si vous êtes dans le même réseau local que le serveur, et si vous définissez la directive

ServerAlias forum

vous n’êtes pas obligé de préciser le domaine DNS.

Et d’ailleurs si le client s’adresse directement via le numéro IP, quelle branche VirtualHost choisir ?

Exemple avec une machine pour trac et subversion. Si le client demande une URL qui est le nom de la machine samlp il obtient la page par défaut de Debian :slight_smile:
Par contre avec www-drsvn il obtient une page qui lui permet de choisir le projet et la consultation du dépôt subversion associé, ou plutôt le suivi trac.

fp2@samlp:/etc/apache2/sites-available$ getent hosts 10.67.6.180
10.67.6.180     samlp.eua.bvcorp.corp samlp
fp2@samlp:/etc/apache2/sites-available$ host 10.67.6.180
180.6.67.10.in-addr.arpa domain name pointer samlp.eua.bvcorp.corp.
180.6.67.10.in-addr.arpa domain name pointer trac-drsvn.eua.bvcorp.corp.
180.6.67.10.in-addr.arpa domain name pointer svn-drsvn.eua.bvcorp.corp.
180.6.67.10.in-addr.arpa domain name pointer www-drsvn.eua.bvcorp.corp.
fp2@samlp:/etc/apache2/sites-available$

Selon l’URL demandée, il y a 4 VirtualHost ( une seule IP)

fp2@samlp:/etc/apache2/sites-available$ fgrep ServerName   * | fgrep eua.bvcorp.corp
000-default.conf:       ServerName samlp.eua.bvcorp.corp
trac-drsvn.conf:        ServerName trac-drsvn.eua.bvcorp.corp
svn-drsvn.conf: ServerName svn-drsvn.eua.bvcorp.corp
www-drsvn.conf: ServerName www-drsvn.eua.bvcorp.corp

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة

F. Petitjean

« On ne perd pas son temps en aiguisant ses outils. »
Proverbe français

Moui, oui je pourrais aussi les nommer, plutôt que de passer par l’IP…

<VirtualHost psychologuespecialise.com:80> ServerName psychologuespecialise.com ... </VirtualHost> <VirtualHost forum.psychologuespecialise.com:80> ServerName forum.psychologuespecialise.com ... </VirtualHost>

Mais, bon, le vrai problème que j’ai se trouve au niveau du DNS :neutral_face:

Dans l’exemple que j’ai donné

<VirtualHost *:80>
  ...
</VirtualHost>

pour toutes les configurations.

Essayez de supprimer la ligne

ns330523 psychologuespecialise.com

de /etc/hosts et une ligne semblable dans /etc/bind/db.psychologuespecialise.com .

Conceptuellement une URL comprend un nom de serveur, pas un nom de domaine.

fp2@samlp:~$ host linuxfr.org
linuxfr.org has address 88.191.250.176
linuxfr.org mail is handled by 5 main.linuxfr.org.
fp2@samlp:~$ host 88.191.250.176
176.250.191.88.in-addr.arpa domain name pointer prod.linuxfr.org.
fp2@samlp:~$

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة

F. Petitjean

« Il semble que la perfection soit atteinte, non quand il n’y a
plus rien à ajouter mais quand il n’y a plus rien à retrancher »
Saint-Exupéry -Terre des hommes , chapitre III , L’avion.

J’ai donc ceci, actuellement :

/etc/hosts

127.0.0.1 localhost.localdomain localhost 176.31.121.198 ns330523.ip-176-31-121.eu ns330523 2001:41d0:0008:40c6::1 ns330523.ip-176-31-121.eu ns330523 ns330523 *.psychologuespecialise.com

/etc/bind/db.psychologuespecialise.com

[CODE]$ttl 3000

@ IN SOA psychologuespecialise.com. webmaster.psychologuespecialise.com. (
2016102853 ; Serial
14400 ; Refresh
7200 ; Retry
604800 ; Expires
3000; Negative cache TTL
);
@ IN NS ns.kimsufi.com.
*.psychologuespecialise.com. IN A 176.31.121.198[/CODE]

/etc/apache2/sites-enabled/psychologuespecialise.com.conf

[CODE]
ServerName psychologuespecialise.com
ServerAdmin webmaster@psychologuespecialise.com

ServerSignature Off
DirectoryIndex index.php
DocumentRoot /var/www/html
ScriptAlias /cgi-bin /var/www/.phpbrew/php/php-7.0.12/bin

<Directory /var/www/html/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
    AddHandler php-cgi .php
    Action php-cgi /cgi-bin/php-cgi

    <FilesMatch "\.php*">
       SetHandler php-cgi
    </FilesMatch>
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerName psychologuespecialise.com ServerAlias forum ServerAdmin webmaster@psychologuespecialise.com
ServerSignature Off
DirectoryIndex index.php
DocumentRoot /var/www/html
ScriptAlias /cgi-bin /var/www/.phpbrew/php/php-5.6.27/bin

<Directory /var/www/html/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
    AddHandler php-cgi .php
    Action php-cgi /cgi-bin/php-cgi

    <FilesMatch "\.php*">
       SetHandler php-cgi
    </FilesMatch>
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

[/CODE]

Mais cela ne change rien… tant mon www que mon test ne répondent que de temps en temps… (et pas forcément en même temps, en plus).

Bonjour

Dans ta config il y a un truc qui me dérange et qui dérange aussi apache à tous les coups (voir documentations apache sur les virtualhost concernant l’hébergement de 2 sites distincts), car dans ton cas tu as donc 2 sites distincts, la partie site et la partie forum.

Les deux Directory /var/www/html/ et les deux DocumentRoot /var/www/html de tes virtualhost ciblent le même répertoire sur le même serveur.

A mon avis il faudrait par exemple

Directory /var/www/html/ pour la partie psychologuespecialise.com
et
Directory /var/www/html/forum pour la partie forum.psychologuespecialise.com

ou bien
Directory /var/www/html/site pour la partie psychologuespecialise.com
et
Directory /var/www/html/forum pour la partie forum.psychologuespecialise.com

et idem pour DocumentRoot /var/www/html

DocumentRoot /var/www/html
et
DocumentRoot /var/www/html/forum

ou

DocumentRoot /var/www/html/site
et
DocumentRoot /var/www/html/forum

avec bien entendu les bons fichiers la ou il faut.

Donc pour moi ce n’est pas un problème de DNS.

Malgré tout les DNS ne semble pas se répliquer :

{ ~ } » dig -t any psychologuespecialise.com @8.8.8.8 ~ 1

; <<>> DiG 9.10.4-P3 <<>> -t any psychologuespecialise.com @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21449
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;psychologuespecialise.com. IN ANY

;; ANSWER SECTION:
psychologuespecialise.com. 299 IN SOA ns.psychologuespecialise.com. webmaster.psychologuespecialise.com. 2016102811 7200 7200 1209600 43200
psychologuespecialise.com. 299 IN NS ns.kimsufi.com.

;; Query time: 46 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sat Oct 29 09:09:37 GMT 2016
;; MSG SIZE rcvd: 128

{ ~ } » dig -t any psychologuespecialise.com @ns.psychologuespecialise.com ~
dig: couldn’t get address for ‘ns.psychologuespecialise.com’: not found

À mon sens mais je peux faire erreur, rien n’empêche d’avoir plusieurs sites qui pointent sur le même dossier, après tout, pour chaque requête, Apache n’en utilise qu’un à la fois.

Quand tu utilises des wildcards, ton Apache a aussi plusieurs sites qui ciblent le même dossier…

De plus, les requêtes passent occasionnellement et, que ça passe ou non, je l’ai aucune erreur Apache dans les logs… quand ça ne passe pas, je n’ai même aucune trace de ma requête, où que ce soit, donc, pour moi, c’est en amont d’Apache.

Merci, t’es la seule à laisser ma config Apache tranquille :slight_smile:

En fait, dans ce dig, je ne comprends pas d’où vient ce [quote=“Clochette, post:11, topic:71519”]
ns.psychologuespecialise.com
[/quote]

Je ne pense pas avoir ajouté cette adresse où que ce soit… (peut-être est-ce là le problème)

En fait, en plusieurs jours où j’utilisais https://zonemaster.fr/test/46443cf89ed7ee19 j’suis passé d’un truc totalement en rouge à quasi plus rien (même si je ne sais pas ce que je dois faire pour résoudre le dernier).

Mais, ce matin, j’ai essayé un autre outil… qui me fait voir encore tout un tas de problèmes http://dnscheck.pingdom.com/?domain=psychologuespecialise.com mais auxquels j’vois pas trop ce que j’dois faire.

Z’auriez quelques pistes, svp?


Bon, j’ai modifié mon /etc/bind/db.psychologuespecialise.com comme suit :

[CODE]$ttl 300

@ IN SOA psychologuespecialise.com. webmaster.psychologuespecialise.com. (
2016102901 ; Serial
14400 ; Refresh
7200 ; Retry
604800 ; Expires
300; Negative cache TTL
);
@ IN NS ns.kimsufi.com.
@ IN NS ns.psychologuespecialise.com.
*.psychologuespecialise.com. IN A 176.31.121.198[/CODE]

Et je n’ai déjà plus le problème signalé au niveau de ns.psychologuespecialise.com

Plus que 3 erreurs et quelques warnings


Ok, je n’ai plus que quelques warnings mais plus d’erreurs, visiblement, il manquait simplement quelques déclarations NS

Merci à vous.

@Minus & @littlejohn75 : comme je le pensais, Apache ne rencontre aucun problème à tout avoir dans le même dossier, avec ou sans www :wink: