Héberger des sites

Résolu
Bonjour,

Voilà je doit faire un exercice pour essayer de comprendre l'hébergement d'un serveur où 4 sites seront hébergé et devront être atteint par les adresses suivantes.

http://localhost/ -> site_1
http://localhost/dossier_2/ -> site_2
http://mon_adresse_ip/ -> site_3
http://mon_adresse_ip/dossier_4/ -> site_4

J'ai apache2 et mon fichier de configuration c'est apache2.conf.

Configurer des comptes pour chaque site afin que chaque webmaster aura accès uniquement à l'administration de leur site

Compte des webmasters
compte Pierre mot de passe : pierre1 -> site 1 et site 4
compte Paul mot de passe : paul1 -> site 2
compte Jacques mot de passe : jacques1 -> site 3

Par contre moi je serai administrateur de tous et je pourrai également les alimenter en pages web.

Je vous dit par avance un grand merci pour votre aide et vous souhaite une bonne et heureuse année 2011.
Merci beaucoup

17 réponses

  1. Contributeur
    Bonsoir,

    bonne et heureuse année à toi aussi.

    Ton topic m'intéresse aussi.

    Mais qu'as tu déjà fait ? Où bloques tu? O_o

    Car c'est pas une aide au devoir ici, mais un forum d'entraide ^^
    Windows has not detected any keyboard. Press Enter to continue.
    Hu?
    1. Bonjour

      Je sais que c'est pas une aide au devoir mais je suis un très grand débutant et je suis sur linux en ligne de commande que depuis 1 mois alors pour l'instant je lis beaucoup de doc la-dessus mais des explications plus clair et surtout mieux explicites me serai très utile.

      En fait je sais créer des fichiers, qu'il faut pour chaque "virtual host" ajouter un fichier de config dans le répertoire etc/apache2/sites-available.
      Pour mon cas il faut créer 4 fichiers.
      Ensuite je mis perds un peu.....pour la conf de ses fichiers

      Merci beaucoup
      1. Modérateur
        Regarde la documentation d'Apache:
        par exemple http://httpd.apache.org/docs/2.2/fr/vhosts/examples.html
        Tu ne précises pas ta distribution.
        Sous Debian , dans /etc/apache2, il y a deux répertoires, sites-available et sites-enables. "sites-enabled" contient des liens symboliques vers les fichiers de configuration présents dans sites-available. On crée ou supprime donc ces liens, se:lon les sites à actiber ou désactiver.
        exeple:
         
        johand@osiris:/etc/apache2$ ls -l sites-available sites-enabled/ 
        sites-available: 
        total 20 
        -rw-r--r-- 1 root root 1000  1 jan 13:04 default 
        -rw-r--r-- 1 root root  962 25 sep  2008 default.dpkg-old 
        -rw-r--r-- 1 root root 7469 20 fév  2010 default-ssl 
        -rw-r--r-- 1 root root  764  1 jan 13:03 haerne.myftp.org 
        
        sites-enabled/: 
        total 0 
        lrwxrwxrwx 1 root root 36 20 jui  2008 000-default -> /etc/apache2/sites-available/default 
        lrwxrwxrwx 1 root root 35  1 jan 12:04 haerne.myftp.org -> ../sites-available/haerne.myftp.org 
        johand@osiris:/etc/apache2$ head -5 sites-available/haerne.myftp.org  
        <VirtualHost *:8080> 
         ServerAdmin xxxx@yyyy.be  
         ServerName  haerne.myftp.org 
        
         DocumentRoot /var/www/haerne.myftp.org/data 
        


        Johan
        Gates gave ^H sold you the windows.
        GNU gave us the whole house.(Alexandrin)
        1. Bonjour et merci de ta réponse.
          C'est très gentil je vais essayer de comprendre tout cela.
          A bientôt je te tiens au courant.

          Merci
          1. Bonjour malheureusement je suis perdu si tu as un peu de temps à me consacrer ça serai très sympa.

            Merci
            1. Modérateur
              Ouii, si tu as des questions précises. A bientôt.
              Johant
          2. Bonjour et merci

            voilà je doit configurer le fichier apache2.conf et d'autres fichiers je ne sais pas lesquel...
            pour héberger 1 site qui sera atteint par l'adresse suivante

            http://mon_adresse_ip/dossier1

            configurer pour que l'administrateur de ce site aura accès uniquement à l'administration
            compte : gilbert
            mot de passe : gil1807

            et moi par contre je serai administrateur et je pourrai également les alimenter en pages web

            et en option site public ouvert à tous sans option

            Si vous pouvez m'aider alors vous me rendez grand service et ça va beaucoup m'aider à comprendre pour d'autres.

            Je suis sous linux "ubuntu" avec apache2

            Merci beaucoup
            1. Modérateur
              Il faut différencier la gestion d'Apache de celle des fichiers du site.
              Il faut différencier l'adresse des interfaces réseau et les noms de sites (FQDN)

              Tu ne précises pas ta distribution, je partirai de l'hypothèse qu'il s"agit d'une Debian.

              Dans /etc/apache2/sites-available tu te bases sur le fichier default; que tu copies sur , www.mondomaine.org par exemple.
              Si tu désires qu'apache écoute sur tous les interfaces et adresses IP:
                  
              <VirtualHost *:80>     
               ServerAdmin xxxx@yyyy.be      
               ServerName  www.mondomaine.org     
               DocumentRoot /var/www/www.mondomaine.org/data     
              

              Tu crées un lien symbolique vers ce fichier dans /etc/apache2/sites-available:
              ln -s www.mydomain.org ../sites-available


              J'ai introduit un sous répertoire data pour DocumentRoot. Cela permet de placer des données innaccessibles par http mais accessibles aux scripts PHP (cest une mesure de sécurité de base).

              Pour l'accès aux données, tu dois donner accès /var/www/www.mondomaine.com au gestionnaire du site (FTP],SFTP ou autre protocole) ou utiliser un Content Manager.

              Johan
              Gates gave ^H sold you the windows.
              GNU gave us the whole house.(Alexandrin)
              1. Bonjour merci pour ta réponse

                J'essaie de comprendre tes explications et je te tiens au courant.

                Je te remercie beaucoup de ton aide c'est super sympa.
                Merci milles fois

                je suis sous ubuntu.

                Une question si je veux par exemple que ce site soit soumis à une authentification, tu peux m'expliquer s'il te plait?
                Gilbert
                1. Bonjour,
                  Je viens de passer ce dimanche à essayer de comprendre comment héberger plusieurs sites avec apache2 et le distribution ubuntu de Linux.
                  Je ne veux pas que vous me le faites mais simplement prendre un peu de temps pour m'expliquer le fonctionnement et tous les fichiers à configurer et qu'il faut modifier.
                  J'aimerai tellement savoir le faire mais sans votre aide je ne pourrai pas y arriver même avec tous les sites que j'ai pu lire et relire.
                  Seul des explication claires pourront m'aider.
                  Si quelqu'un peux me venir en aide je lui en serai très reconnaissant, pour moi c'est quelque chose de très important.
                  Je vous remercie beaucoup
                  1. Modérateur
                    Salut,

                    Affiche le résultat de

                    rgrep -i documentroot /etc/apache2
                    1. Bonjour et merci de ta réponse mais après je fait quoi?

                      en ayant fait la commande que tu ma dit .........

                      /etc/apache2/sites-available/default: DocumentRoot /var/www
                      /etc/apache2/sites-available/monsite3: DocumentRoot /var/www/monsite3
                      /etc/apache2/sites-available/monsite4: DocumentRoot /var/www/monsite4
                      /etc/apache2/sites-available/monsite2: DocumentRoot /var/www/monsite2
                      /etc/apache2/sites-available/monsite1: DocumentRoot /var/www/monsite1
                      /etc/apache2/sites-available/default-ssl: DocumentRoot /var/www
                      /etc/apache2/sites-enabled/monsite3: DocumentRoot /var/www/monsite3
                      /etc/apache2/sites-enabled/monsite4: DocumentRoot /var/www/monsite4
                      /etc/apache2/sites-enabled/monsite2: DocumentRoot /var/www/monsite2
                      /etc/apache2/sites-enabled/monsite1: DocumentRoot /var/www/monsite1
                      /etc/apache2/sites-enabled/000-default: DocumentRoot /var/www
                      1. Bonjour

                        Merci à vous pour me donner un coup de main et me donner des explications, je suis vraiment perdu et j'aimerai tant pouvoir comprendre.
                        Merci
                        Gilbert
                        1. Modérateur
                          Salut,

                          Je vois que tu as commencé créer un fichier pour chaque site dans sites-enabled.
                          Ce n'est pas nécessaire.

                          Je n'ai pas le temps maintenant ni liens sous le coude pour te montrer.

                          L'week-end prochain je vais te donner un exemple concret avec des explications.
                          Bien sûr s'il n'y a pas d'autre personne qui t'aidera.
                      2. Bonjour

                        Ecoute un grand merci j'attendrai jusqu'à là si toute fois j'ai une personne pour m'aider avant je te le dis.

                        C'est vraiment très important pour moi de comprendre le fonctionnement j'y passe beaucoup de temps mais beaucoup de truc reste sans réponse.
                        Je sais par exemple créer modifier et beaucoup d'autre chose en ligne de commande mais c'est tout.
                        Merci beaucoup
                        1. Bonjour lami20j,

                          Si vraiment tu peux m'expliquer ça serai très sympa et je te remercie très sincèrement.

                          Gilbert
                          1. Modérateur
                            Salut,

                            Je ne t'ai pas oublié ;-)
                            Je vais m'en occuper ce week end.
                          2. Modérateur
                            Salut,

                            Tout ce qui suivra ce ne sont que des exemples banales dans le but de comprendre un peu.
                            Ce n'est pas un tutoriel non plus.
                            Tu devrais lire la documentation d'apache sur le site officiel.

                            Voici quelque liens
                            http://httpd.apache.org/docs/2.2/fr/vhosts/examples.html
                            http://httpd.apache.org/docs/2.2/fr/mod/directives.html

                            Commencer avec virtual host avant de comprendre comment fonctionne apache ce n'est pas une très bonne idée.

                            http://localhost/ -> site_1
                            http://localhost/dossier_2/ -> site_2
                            http://mon_adresse_ip/ -> site_3
                            http://mon_adresse_ip/dossier_4/ -> site_4


                            Tout ce que tu dois comprendre au début c'est qu'en fait un site est un répertoire tout simplement.
                            Ce répertoire qui contient tous les fichiers du site est définie par la directive DocumentRoot

                            Dans le fichier original /etc/apache2/sites-available/default la directive DocumentRoot contient le chemin vers le répertoire /var/www.
                            Ca veut dire que lorsque tu fais http://localhost en fait le navigateur lis le répertoire /var/www

                            Le navigateur cherchera un des fichiers spécifiés par la directive DirectoryIndex
                            Tu peux voir ce que la directive contient avec la commande
                            $ rgrep DirectoryIndex /etc/apache2   
                            /etc/apache2/mods-enabled/dir.conf:          DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm


                            Par défaut le répertoire<gras> /var/www
                            contiendra un fichier </gras>index.html
                            Donc quand on fait http://localhost alors le navigateur lira le fichier index.html.

                            http://localhost/ -> site_1
                            Si on prends ton exemple, tu veux que http://localhost ouvre ton site_1
                            En ce cas il suffira de supprimé le fichier index.html original et tout simplement de mettre tous les fichiers pour le site_1 directement dans /var/www

                            La requête http://localhost dit au serveur apache de chercher dans le répertoire spécifié par la directive DocumentRoot le fichier spécifié par la directive DirectoryIndex

                            http://localhost/dossier_2/ -> site_2

                            Pour le deuxième cas, les choses semble assez simples.
                            Il suffit de créer un répertoire dossier_2 (le nom peu importe) dans /var/www et mettre dans ce répertoire tout les fichiers concernant le site.

                            Ensuite il faudra écrire les directives concernant ton hôte virtuel dans /etc/apache2/site-available/default

                            #***** VHOST: site_2 *****   
                            <VirtualHost site_2>   
                            ServerName site_2   
                            DocumentRoot /var/www/dossier_2   
                            <Directory /var/www/site_2>   
                                    Options Indexes FollowSymLinks MultiViews   
                                    AllowOverride None   
                                    Order allow,deny   
                                    Allow from all   
                            </Directory>   
                                    CustomLog /var/log/apache2/site_2_access.log combined   
                                    ErrorLog  /var/log/apache2/site_2_error.log   
                            </VirtualHost>   
                            
                            


                            Il faudra aussi ajouter dans le fichiers /etc/hosts une ligne concernant le site_2
                            127.0.0.1 site_2

                            Ensuite il faut redémarrer le serveur apache et tester http://localhost/site_1

                            http://mon_adresse_ip/ -> site_3
                            Si ton serveur se trouve derrière un routeur tu devrais faire la redirection du port 80 vers le pc serveur de ton LAN(Local Area Network)
                            Si ton serveur est connecter directement à l'Internet alors il s'agit de ton ip publique qui peut être fixe ou dynamique.

                            A l'instar de site_2 tu écris les directives dans /etc/apache2/site-available/default pour le site_3
                            Le répertoire de site se trouveras toujours dans /var/www

                            #***** VHOST: site_3 *****   
                            <VirtualHost site_3>   
                            ServerName site_3   
                            DocumentRoot /var/www/dossier_3   
                            <Directory /var/www/dossier_3>   
                                    Options Indexes FollowSymLinks MultiViews   
                                    AllowOverride None   
                                    Order allow,deny   
                                    Allow from all   
                            </Directory>   
                                    CustomLog /var/log/apache2/site_3_access.log combined   
                                    ErrorLog  /var/log/apache2/site_3_error.log   
                            </VirtualHost>   
                            #


                            Dans /etc/hosts on va ajouter la ligne

                            mon_adresse_ip site_3

                            Redémarrage de serveur apache et ensuite tester avec http://mon_adresse_ip/

                            http://mon_adresse_ip/dossier_4/ -> site_4

                            Selon l'URL en fait site_4 correspond au répertoire dossier4 qui se trouveras normalement dans le répertoire correspondant à http://mon_adresse_ip

                            Ce qui donne l'hôte virtuelle suivante dans /etc/apache2/sites-available/default

                            ##***** VHOST: site_4 *****   
                            <VirtualHost site_4>   
                            ServerName site_4   
                            DocumentRoot /var/www/dossier_3/dossier_4   
                            <Directory /var/www/dossier_3/dossier_4>   
                                    Options Indexes FollowSymLinks MultiViews   
                                    AllowOverride None   
                                    Order allow,deny   
                                    Allow from all   
                            </Directory>   
                                    CustomLog /var/log/apache2/site_4_access.log combined   
                                    ErrorLog  /var/log/apache2/site_4_error.log   
                            </VirtualHost>


                            Et dans /etc/hosts
                            mon_adresse_ip site_4


                            Redémarrage de serveur apache et ensuite tester avec http://mon_adresse_ip/site_4

                            Avant d'ajouter les directives concernant les hôtes virtuels il faudra ajoute la directive
                            NameVirtualHost mon_adresse_ip


                            Bon, tout ça pour t'expliquer un peu mais ce n'est pas ce que je ferais.

                            Ce qui est important c'est l'objectif et dans ton cas c'est d'avoir 4 sites donc 4 répertoires distinctes.
                            J'opterais pour
                            http://site_1
                            http://site_2
                            http://site_3
                            http://site_4

                            Dans /etc/apache2/sites-available/default

                            NameVirtualHost 10.0.0.1   
                            
                            #***** VHOST: site_1 *****   
                            <VirtualHost site_1>   
                            ServerName site_1   
                            DocumentRoot /var/www/site_1   
                            <Directory /var/www/site_1>   
                             Options Indexes FollowSymLinks MultiViews   
                             AllowOverride None   
                             Order allow,deny   
                             Allow from all   
                            </Directory>   
                             CustomLog /var/log/apache2/site_2_access.log combined   
                             ErrorLog  /var/log/apache2/site_2_error.log   
                            </VirtualHost>   
                            #   
                            #***** VHOST: site_2 *****   
                            <VirtualHost site_2>   
                            ServerName site_2   
                            DocumentRoot /var/www/site_2   
                            <Directory /var/www/site_2>   
                             Options Indexes FollowSymLinks MultiViews   
                             AllowOverride None   
                             Order allow,deny   
                             Allow from all   
                            </Directory>   
                             CustomLog /var/log/apache2/site_2_access.log combined   
                             ErrorLog  /var/log/apache2/site_2_error.log   
                            </VirtualHost>   
                            #   
                            #***** VHOST: site_3 *****   
                            <VirtualHost site_3>   
                            ServerName site_3   
                            DocumentRoot /var/www/site_3   
                            <Directory /var/www/site_3>   
                             Options Indexes FollowSymLinks MultiViews   
                             AllowOverride None   
                             Order allow,deny   
                             Allow from all   
                            </Directory>   
                             CustomLog /var/log/apache2/site_3_access.log combined   
                             ErrorLog  /var/log/apache2/site_3_error.log   
                            </VirtualHost>   
                            #   
                            ##***** VHOST: site_4 *****   
                            <VirtualHost site_4>   
                            ServerName site_4   
                            DocumentRoot /var/www/site_4   
                            <Directory /var/www/site_4>   
                             Options Indexes FollowSymLinks MultiViews   
                             AllowOverride None   
                             Order allow,deny   
                             Allow from all   
                            </Directory>   
                             CustomLog /var/log/apache2/site_4_access.log combined   
                             ErrorLog  /var/log/apache2/site_4_error.log   
                            </VirtualHost>


                            Dans /etc/hosts

                            mon_adresse_ip  site_1   
                            mon_adresse_ip  site_2   
                            mon_adresse_ip  site_3   
                            mon_adresse_ip  site_4


                            Configurer des comptes pour chaque site afin que chaque webmaster aura accès uniquement à l'administration de leur site

                            Pour ça tu peux utiliser .htacess
                            http://www.infres.enst.fr/~danzart/frames/htaccess.html
                        2. Bonjour,

                          Merci pour tes explications très clair, j'arrive à comprendre à quelques chose près le fonctionnement. Depuis ce matin je suis dessus maintenant l'appéro m'attends et je continuerai cet après-midi.
                          Encore merci pour le temps que tu as passé à m'expliquer tout ça, si toutefois j'ai 1 question je peux me permettre de te solliciter encore?
                          Merci en tout cas et je te tiens au courant si je suis arrivé à m'en sortir.

                          Gilbert
                          1. Modérateur
                            Salut,

                            si toutefois j'ai 1 question je peux me permettre de te solliciter encore?
                            Tu peux toujours demander, le forum est fait pour ça ;-)
                            Si ça ne sera pas moi, ça sera une autre personne qui prendra le relais.

                            Ah, j'ai oublié.
                            Teste une modification à la fois.
                            Donc d'abord tu fais le site_1.
                            Si ça marche alors tu continues, si ça ne marche pas alors teste encore et essaie de voir ce qui ne vas pas.

                            J'ai oublié de te dire de sauvegarder le fichier original. C'est un fait une habitude à prendre impérativement.
                        3. Re bonjour

                          Donc j'ai copié le fichier default et je l'ai renommé mes_sites.
                          Je met mes 4 VirtualHost dans ce même fichier ou j'en cré 4 ?

                          Je ne comprend pas ta phrase lorsque tu dit:
                          Avant d'ajouter les directives concernant les hôtes virtuels il faut ajouter la directive: NameVirtualHost mon_adresse_ip

                          Merci
                          1. Modérateur
                            Dans /etc/apache2/sites-available/default tu mets ça.

                            NameVirtualHost ici_ip_de_ton_serveur   
                            
                            #***** VHOST: site_1 *****      
                            <VirtualHost site_1>      
                            ServerName site_1      
                            DocumentRoot /var/www/site_1      
                            <Directory /var/www/site_1>      
                             Options Indexes FollowSymLinks MultiViews      
                             AllowOverride None      
                             Order allow,deny      
                             Allow from all      
                            </Directory>      
                             CustomLog /var/log/apache2/site_2_access.log combined      
                             ErrorLog  /var/log/apache2/site_2_error.log      
                            </VirtualHost>      
                            #      
                            #***** VHOST: site_2 *****      
                            <VirtualHost site_2>      
                            ServerName site_2      
                            DocumentRoot /var/www/site_2      
                            <Directory /var/www/site_2>      
                             Options Indexes FollowSymLinks MultiViews      
                             AllowOverride None      
                             Order allow,deny      
                             Allow from all      
                            </Directory>      
                             CustomLog /var/log/apache2/site_2_access.log combined      
                             ErrorLog  /var/log/apache2/site_2_error.log      
                            </VirtualHost>      
                            #      
                            #***** VHOST: site_3 *****      
                            <VirtualHost site_3>      
                            ServerName site_3      
                            DocumentRoot /var/www/site_3      
                            <Directory /var/www/site_3>      
                             Options Indexes FollowSymLinks MultiViews      
                             AllowOverride None      
                             Order allow,deny      
                             Allow from all      
                            </Directory>      
                             CustomLog /var/log/apache2/site_3_access.log combined      
                             ErrorLog  /var/log/apache2/site_3_error.log      
                            </VirtualHost>      
                            #      
                            ##***** VHOST: site_4 *****      
                            <VirtualHost site_4>      
                            ServerName site_4      
                            DocumentRoot /var/www/site_4      
                            <Directory /var/www/site_4>      
                             Options Indexes FollowSymLinks MultiViews      
                             AllowOverride None      
                             Order allow,deny      
                             Allow from all      
                            </Directory>      
                             CustomLog /var/log/apache2/site_4_access.log combined      
                             ErrorLog  /var/log/apache2/site_4_error.log      
                            </VirtualHost>   
                            


                            Dans /etc/hosts

                            ici_ip_de_ton_serveur  site_1      
                            ici_ip_de_ton_serveur  site_2      
                            ici_ip_de_ton_serveur  site_3      
                            ici_ip_de_ton_serveur  site_4
                        4. Bonjour

                          Un très grand merci pour vos explications tout me parait bien clair.

                          Merci beaucoup