8768 sujets

Développement web côté serveur, CMS

Bonjour,
mon serveur maison fonctionne, mais sur un seul hôte. Je voudrais maintenant y mettre plusieurs sites. J'ai bien compris le contenu des VirtualHost, mais je ne comprends pas la répartition des adresses pour l'ensemble.
Mon serveur principal est : xxxx.hd.free.fr, sur l'adresse IP fixe de free. Dans le VirtualHost, je devrai mettre chaque site désiré, par exemple Site-12/index.html. C'est comme ça qu'est ce site dans mes fichiers et je l'ouvre en interne avec cette adresse, sur un navigateur. Ce site est maintenant situé, avec tous ces fichiers, dans /var/www/public du serveur. Les autres sites seront aussi là.
La question principale est : Dans VirtualHost, dois-je mettre, sur server-name : www.Site-12/index.html ou www.xxxx.hd.free.fr/Site-12/index.html ? Et les personnes qui vont tenter d'accéder à ce site devront-elles taper tout l'URL ou uniquement Site-12/index.html ?
Et il faut aussi renseigner le HOST de la machine hôte. Avec l'URL complète ou uniquement www.Site-12/index.html ?
Je suis un peu perdu, malgré les très nombreuses docs que j'ai pu lire à ce sujet.
Merci pour l'aide.
Salut,

Je ne connais pas le système que propose free, et je ne suis pas sur de bien comprendre ce que tu veux faire Smiley sweatdrop

De base, il faudra forcement que les gens passent par l'adresse complète de xxx.hd.free.fr.
Globalement si tu veux que des gens puissent accéder à ton site "site-12" directement avec une adresse, il te faudra acheter un nom de domaine (site-12.fr par exemple).

Du coup je suppose que tu n'en as pas et que ton ServerName sera sans doute xxxx.hd.free.fr/Site-12/

Ensuite pour l'emplacement de tes fichiers, je suppose que c'est ce que tu veux dire mais c'est un peu imprécis du coup je préfère préciser : il faudra créer un dossier pour chacun de tes sites dans /var/www/public/ : /var/www/public/Site12/ pour le site site-12 (ce qu'il faudra ensuite indiquer pour chaque DocumentRoot de tes confs apache).

Bonne journée
Effectivement, je n'ai pas été assez explicite, mais tu as compris. Je n'ai pas, et n'ai pas l'intention d'obtenir un nom de domaine pour Site-12, pas plus que pour les autres. Ce seront des sites expérimentaux qui, une fois au point, seront mis éventuellement sur un hébergement pro. C'est aussi pour le plaisir de me familiariser avec les serveurs, et éventuellement installer un serveur de mail par la suite.
Oui, mon ServerName est xxx.hd.free.fr. Chez free, ils offrent un domaine en quelques clics de souris, je ne m'en prive pas. Les visiteurs (principalement moi-même) passeront par tout le nom de domaine et chaque site sera dans /var/public/Site.xxx. Tout ça est compris.
Où j'ai des doutes, c'est sur les noms à mettre dans les VirtualHost. Le nom de domaine complet ? Et les www, il faut aussi les mettre ?
En tous cas, tu as déjà répondu à une partie de mes questions.
Merci.
Cela fait un petit moment que je n'en fait plus trop de la conf apache, mais pour le coup si tu n'as pas de nom de domaine j'ai l'impression que cela devrait fonctionner directement sans rien faire de particulier non Smiley sweatdrop ? Si les gens vont sur xxx.hd.free.fr et obtiennent directement la page index.html de ton dossier /var/www/public/index.html alors si ils vont sur xxx.hd.free.fr/site12/index.html ils devraient directement avoir l'index.html de ton site12 du dossier /var/www/public/site12/index.html

Ensuite pour le "www." au début des adresses web, ce n'est pas une obligation, et ce n'est pas parce que beaucoup de site l'utilise que c'est une obligation, c'est juste un nom de "sous domaine" comme un autre (et qui n'a pas d’intérêt particulier à mes yeux mais bon)
Par exemple tu peux aussi bien aller sur https://www.alsacreations.com comme sur https://alsacreations.com que tu arriveras sur le même site. On fait généralement une redirection apache dans un sens ou dans l'autre pour être sur que des utilisateurs qui mettent le "www." (ou à l'inverse des utilisateurs qui ne le mettent pas alors qu'il le faudrait obligatoirement) arrive quand même sur une page qui ne soit pas une page d'erreur du genre "oups la page demandée n'existe pas".
Je suppose que tu utilises un serveur apache même si c'est pas précisé.

Si tu veux ton domaine et les www il faut le préciser dans ton fichier de conf, oui. Pour ça tu as les valeurs ServerName et ServerAlias.


<VirtualHost *:80 *:443> 
    DocumentRoot "D:/laragon/www/bacasable/public_html/"
    ServerName bacasable.local
    ServerAlias  www.bacasable.local
 
</VirtualHost>


Note que dans serverAlias tu peux mettre plusieurs valeurs, si besoin :


ServerAlias  www.example.com  foo.example.com *.somewherelse.org


Généralement, si tu veux mettre différents sites sur ton serveur, tu vas créer plusieurs fichiers de conf pour chacun de tes domaines tel que celui-ci dans ton dossier etc/apache2/sites-enabled

- domain1.com.conf
- domain2.fr.conf
- domain3.eu.conf

Et basiquement un virtualHost tel que j'ai mis plus haut va faire en sorte que lorsque tu te rends à l'url bacasable.local ou www.bacasable.local ton serveur va pointer sur le répertoire DocumentRoot. Ensuite ça marche comme n'importe quel serveur php et tu n'as plus qu'a mettre tes fichiers .php .htaccess ou .html à l'intérieur de ce dossier de la même manière que tu le ferais pour serveur mutualisé ou en local.
@Mathieuu
Oui, dans mes premiers essais, il suffisait que je tape xxx.hd.free.fr pour que j'arrive sur mon Site-12, mais ce site était seul. Je veux en mettre plusieurs, d'où l'intérêt des VirtualHost. Je vais essayer ta méthode, je me passerai alors des VirtualHost, si j'ai bien compris. Et je ne vais pas utiliser le dossier Apache "sites-avalaible". J'aimerais quand même bien comprendre ce mécanisme. Il y a 15 ans, j'étais à fond sur les réseaux mais depuis, j'ai complètement laissé ça de côté. Ok pour les www.

@bacasable
C'est Apache2, sous Debian.
Merci, ça s'éclaircit.
Si tu arrives directement sur ton site12, je suppose qu'il était à la racine de ton dossier /var/www/public
Il suffit de le mettre dans /var/www/public/site12 puis faire pareil pour les autres sites en les mettant dans des dossiers différents : /var/www/public/site13

De mon point de vue tu n'auras vraiment besoin d'ajouter des virtualhost que lorsque tu voudras définir des noms de domaine Smiley sweatdrop (Après je me trompe peut être car cela ne sert pas qu'à ça mais bon.)