[DRUPAL 6.10] Multisites, VirtualHost et erreur 403

Catégories:

Bonjour à tous,

Je viens d’installer en local Apache 2, MySQL et PHP5 pour faire tourner Drupal 6.10.

Sur le site par defaut tout tourne impec, le probleme est survenu lorsque j’ai souhaité créer des VirtualHosts afin de pouvoir gerer du MultiSite avec Drupal.

L’idée c’est d’avoir :

un domaine local "nom-du-pc" qui pointe vers /var/www/html/
un domaine local "drupaldefault" qui pointe vers /var/www/html/drupal-6.10/sites/default/
un domaine local "siteweb01" qui pointe vers /var/www/drupal-6.10/sites/siteweb01/

J’ai recherché pas mal de ressources sur le net et j’ai donc réalisé les modifications suivantes sur mon systeme :

Modif fichier Hosts pour gerer les noms de domaines en local

.
    127.0.0.1 nom-du-pc
    127.0.0.1 drupaldefault
    127.0.0.1 siteweb01

.

Modif du fichier httpd.conf

.
    NameVirtualHost 127.0.0.1

    #VHost pour le domaine local par defaut
    <VirtualHost nom-du-pc>
            DocumentRoot /var/www/html/
            Servername nom-du-pc
            <Directory /var/www/html/>
                    Options indexes
                    AllowOverride None
                    Options MultiViews
            </Directory>
    </VirtualHost>

    #VHost pour le domaine local drupaldefault
    <VirtualHost drupaldefault>
            DocumentRoot /var/www/html/drupal-6.10/sites/default/
            Servername drupaldefault
            <Directory /var/www/html/drupal-6.10/sites/default/>
                    Options indexes
                    AllowOverride None
                    Options MultiViews
            </Directory>
    </VirtualHost>

    #VHost pour le domaine local siteweb01
    <VirtualHost siteweb01>
            DocumentRoot /var/www/html/drupal-6.10/sites/siteweb01/
            Servername siteweb01
            <Directory /var/www/html/drupal-6.10/sites/siteweb01/>
                    Options indexes
                    AllowOverride None
                    Options MultiViews
            </Directory>
    </VirtualHost>

.

Le probleme que je rencontre c’est que j’ai pour les domaines locaux drupaldefault et siteweb01 j’obtiens une page d’erreur 403 (acces interdit).

Les VHosts semblent fonctionner correctement puisqu’en mettant une page index.htm, celle-ci apparait pour chacun des domaines.

J’ai pensé à un probleme de droit sur les repertoires, j’ai donc mis mon USER linux comme proprietaire des repertoires concerné, et apache comme groupe, mon User etant dans le groupe apache…

A ce niveau ça devrait etre correct ?

Une idée ? Je voudrais pouvoir acceder aux fichiers des repertoires apache , merci a vous

#

Que dit la directive DirectoryIndex ?
Y-a-t’il un .htaccess à la racine du répertoire Drupal ?

#

Hello et merci de ta reponse

Non pas de .htaccess aux racines de divers dossiers liés aux domaines locaux.

Au niveau de ta question sur DirectoryIndex, j’ai ça dans mon conf :

<Directory />
    Options -All -Multiviews
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

<Directory "/var/www/html">
    Options -Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Je suppose que c’est ce que tu demandes, car bien sur le conf contient beaucoup d’autres infos…

Merci de ta reponse :)

#

Hello, un petit Up car je suis un peu embeté avec ça et pas de solutions a l horizon .. ni ici , ni sur Apache France ou encore Mandriva Fr ….

#

Je ne connais pas bien les installations multisite, mais ton vhost.conf me semble étrange.

Normalement, il devrait y avoir un .htaccess pour chaque site non ?

Je parlais de la directive DirectoryIndex, qui spécifie quels fichiers doivent être renvoyés par défaut par Apache quand il y a une demande d’accès à un répertoire. En conditions normales, Drupal spécifie index.php dans le .htaccess, mais comme tu n’en a pas je me demande si apache ne cherche pas à lister le répertoire, ce qui est interdit d’où le 403.

Essaie par exemple de mettre un fichier index.html et/ou index.php à la racine d’un des répertoires.

#

Hello et merci de ta reponse


Normalement, il devrait y avoir un .htaccess pour chaque site non ?

Oui normalement, mais ça devrait marcher sans, l’.htaccess sert a proteger les repertoires, mais ce n’est pas, je crois une condition, necessaire au fonctionnement d’un Apache.

Lorsque je met un index.htm dans chacun des repertoires j’ai bien l’affichage des dits-repertoires… Donc les VHosts fonctionnent dans l absolu, c’est «juste» un probleme de droit …

#

Les .htaccess ne servent pas qu’à protéger des répertoires, mais aussi à surcharger des directives Apache, dont par exemple DirectoryIndex. Drupal l’utilise aussi pour les URL simplifiées par exemple, mais ce n’est pas tout.

Le fait que l’erreur 403 disparaisse quand tu mets un index.html dans les répertoires prouve que CE N’EST PAS un problème de droits, mais bien un problème de DirectoryIndex.

essaie, dans un virtualhost, d’ajouter la directive suivante :

DirectoryIndex index.php index.html

Si ça ne fonctionne pas, c’est qu’il s’agit d’un problème d’installation de PHP et/ou de paramétrage d’apache.

#

Re,

Ok je vais tenter ça et me pencher plus serieusement sur les .htaccess :)

Merci a toi pour tes explications :)

#

Bonjour
je suis pas sur d’avoir bien tout suivis mais ta configuration me parait etrange.
Si tu est en multisite avec un installe de drupal, normalement tout des Vhost devrait pointer sur le meme repertoire, cad le rep d’install de drupal.
Apres c’est drupal qui gere en fonction de l’url

exemple :
www.siteprincipale.com
soussite1.siteprincipale.com
soussite2.siteprincipale.com

<VirtualHost 127.0.0.1:80>
DocumentRoot C:/multisites/drupal/
ServerName www.siteprincipale.com

<Directory "C:/multisites/drupal/">
        Options Indexes FollowSymLinks MultiViews
      AllowOverride all
      Order allow,deny
       Allow from all
</Directory>
</VirtualHost>

<VirtualHost 127.0.0.1:80>
  DocumentRoot C:/multisites/drupal/
ServerName soussite1.siteprincipale.com

   <Directory "C:/multisites/drupal/">
        Options Indexes FollowSymLinks MultiViews
      AllowOverride all
      Order allow,deny
       Allow from all
</Directory>
</VirtualHost>

<VirtualHost 127.0.0.1:80>
DocumentRoot C:/multisites/drupal/
ServerName soussite2.siteprincipale.com

   <Directory "C:/multisites/drupal/">
        Options Indexes FollowSymLinks MultiViews
      AllowOverride all
      Order allow,deny
       Allow from all
</Directory>
</VirtualHost>

et dans drupal /sites/ un repertoire de config pour chaque site
/default ou /www.siteprincipale.com pour www.siteprincipale.com
/soussite1.siteprincipale.com pour soussite1.siteprincipale.com
/soussite2.siteprincipale.com pour soussite2.siteprincipale.com

Voila
je ne sais pas si c’est cela que tu veux obtenir ?

++
Germain

#

Hello, merci de ta réponse :)

Je vois ce que tu veux dire, je n’ai pour le moment pas trop avancé sur ce probleme (autres projets en cours) mais je vais prendre en compte tes remarques et viendrais ici actualiser ce thread.

Merci a toi

Syndiquer le contenu