Christophe Le Bot

Pratique de la conception numérique

Installer Drupal 6 sur un serveur mutualisé OVH

Drupal + OVH

ATTENTION ! Cette astuce n’est plus valable sur les hébergements OVH à partir de septembre 2015. La surcharge de configuration PHP par fichier .htaccess n’est plus autorisée. Le fichier .ovhconfig le remplace dès maintenant. Pour plus d’information, voir la page FAQ – Migration sur les dernières versions de PHP du site OVH.

Les contraintes des serveurs mutualisés sont souvent agaçantes, mais rarement insurmontables. C’est le cas chez OVH quand on veut installer Drupal 6.

Drupal ne s’installe pas si register_globals est activé, ce qui est le cas par défaut chez OVH (ce serait trop simple…). Mais il est permis de modifier le comportement du serveur, grâce à quelques directives qu’il faut ajouter au début du fichier .htaccess inclus dans le package Drupal :

SetEnv PHP_VER 5
SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1

En gros, je passe en PHP5, je désactive register_globals et j’en profite pour obtenir les avantages de Zend Optimizer.

Il faut également décommenter la ligne RewriteBase / dans le même fichier pour que la réécriture des adresses par Apache fonctionne correctement :

# If your site is running in a VirtualDocumentRoot at http://example.com/,
# uncomment the following line:
RewriteBase /

# Rewrite URLs of the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Et là, miracle, Drupal s’installe. Enfin, pas pour tout le monde : sur les anciens hébergements, MySQL est encore en version 4.0, incompatible avec Drupal. Pour s’en sortir, il faut migrer votre base de données vers un autre serveur SQL OVH.

Attention, l’opération est très critique… et n’a pas fonctionné pour moi ! En fait, elle consiste à détruire la base pour la reconstruire à partir de vos sauvegardes. Donc premier point : vérifier que vos sauvegardes sont intègres. Ensuite, il faut suivre la procédure OVH.

Sauf que lorsque j’ai voulu reconstruire la base via le manager OVH, elle n’apparaissait plus dans la liste ! Résultat : plus de base de données ! C’est pratique…

18 commentaires

Auteur
Michael
Date de publication
27 août 2008 à 2h59

Bonjour !
Je tiens à vous remercier …
d’avoir édité ce billet !
j’avais réussis a installer drupal sur hebergement mutualisé ovh,
Avec la commande SetEnv REGISTER_GLOBALS 0
Dans le .htaccess.
cela fonctionnait jusqu’au moment où j’ai telecharger un module incompatible avec php4 !

J’ai donc réécrit le .htaccess comme indiqué
SetEnv PHP_VER 5
SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1

et mon problème est résolu !
Merci à vous ! et bonne continuation !

(je doit avouer en tant que débutant que je ne vois pas a quoi correspond la commande : SetEnv ZEND_OPTIMIZER 1
je vais me renseigner ! c’est en forgeant qu’on devient forgeront lol)


Auteur
Greg
Date de publication
5 novembre 2008 à 16h07

Petite précision pour l’URL rewriting ( http://forum.ovh.com/showthread.php?t=29172 )

1er cas :
Si drupal est installé dans un dossier (exemple : http://www.nomdusite.com/installationDrupal/ ) il faut remplacer RewriteBase /drupal
par RewriteBase /nomdevotredossier

2ème cas :
Si vous avez installé drupal à la racine de votre site (exemple : http://www.nomdusite.com), il faut ‘décommenter’ la dernière ligne, en enlevant le # (et commenter du coup celle de la première partie; enfin c’est pas mon cas, je n’ai donc pas testé mais logiquement si on décommente les deux, il y aura un conflit)

ça donne :

# uncomment the following line:
RewriteBase /


Auteur
emcores
Date de publication
26 novembre 2008 à 20h56

Bonsoir,

Merci beaucoup pour ce billet, je suis en train d’installer mon site web pro et je bloquais sévèrement !!

Patrick.


Auteur
Geoffrey
Date de publication
25 février 2009 à 13h05

Bonjour, je suis actuellement en train d’installer Drupal, et j’ai un probléme, je n’arrive pas à configurer les droits pour mon user de base de données.

Je suis hébergé chez ovh en 90Plan.

Dois-je mettre la commande suivante et si oui où?
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER
ON databasename.*
TO ‘username’@’localhost’ IDENTIFIED BY ‘password’;

Merci.


Auteur
Christophe
Date de publication
25 février 2009 à 18h27

Le GRANT n’est bien sûr pas autorisé sur les serveurs mutualisés d’OVH. Il faut prendre les informations de connexion livrées par OVH et en particulier le nom du serveur dont la syntaxe est très particulière (ex : ‘mysql-67’). Le serveur ‘localhost’ ne fonctionne pas puisque les bases ne sont pas hébergées sur le serveur web.


Auteur
CM63
Date de publication
4 mars 2009 à 23h23

Bonjour,
Eh bien, que voila de précieuses informations! Je suis sur le point moins aussi d’installer Drupal sur mon compte OVH mutualisé. Je me pose une première question : mon site est actuellement sous Joomla, directement sous mon www, je ne veux pas l’arrêter (plus pour le principe, car il n’y a pas grand chose dedans, mais c’est pour faire comme si, en vraie grandeur, « pendant les travaux le service continue » 🙂 ), est-ce que je peux ouvrir mon 2ièeme site, sous Drupal, à coté, dans un sous répertoire? Si c’est possible, je veux bien avoir à taper http://www.toto... au lieu de http://www... mais j’aimerais savoir si c’est possible? Avec une base de données vide, pas de problème (je crois que j’ai un compte où je peux en ouvrir plusieurs).
Deuxième question ou plutôt une confirmation de réponse : il vaut mieux installer soit même Drupal par ftp que d’utiliser le module fourni par OVH? Parce que le module fourni par OVH je ne sais pas si il est normalement évolutif, comme doit l’être une install Drupal, et ensuite parce que avec le module, la base de données est-elle sauvegardée?
Merci pour vos réponse.
PS : si vous allez sur mon site par mon nom de domaine, vous allez tomber sur un site Plone, j’ai pour l’instant arrêté mon Site Joomla, et j’ai mis à la racine une redirection sur ce site Plone hébergé gratuitement par Objectis. Mais je veux abandonner Plone et passer à Drupal, donc je peux revenir chez OVH (qui ne fournissait pas Plone).


Auteur
Christophe
Date de publication
6 mars 2009 à 0h00

On peut créer des sous-domaines et les faire pointer vers de nouveaux dossiers dans l’espace d’hébergement (autres que www). Donc oui, on peut avoir plusieurs applications en parallèle.

S’il n’y a qu’une base de données, il suffit juste de définir un préfixe pour les tables. Drupal le propose à l’installation.

Si vous maîtrisez l’installation de ce genre d’applications web, il est toujours préférable d’être autonome, plutôt que de dépendre des services de l’hébergeur.


Auteur
CM63
Date de publication
6 mars 2009 à 20h53

Merci pour vos conseils. Je vais suivre tant bien que mal également les conseils de ce poste, bein que personnellement, je ne comprenne tout simplement pas pourquoi il faut faire de l’url rewriting ?-) .
Merci pour votre aide.


Auteur
lechtitseb
Date de publication
6 octobre 2009 à 22h10

Salut,

Un grand merci pour ce post! J’étais justement occupé à chercher une solution au même problème.

Cheers!


Auteur
Laurent
Date de publication
2 décembre 2009 à 20h52

Bonjour,

Je suis très intéressé par cette solution, cependant, quand j’essaie, cela plante à un moment, juste après avoir défini les noms, et mot de passe d’accès à la base de donnée. Je joins ci dessous le message d’erreur.
Je suis bien en SQL 5 ; Version du client MySQL: 5.0.51a

Warning: fopen(./sites/default/default.settings.php) [function.fopen]: failed to open stream: No such file or directory in /homez.27/su****/www/ecole/includes/install.inc on line 188

Warning: Cannot modify header information – headers already sent by (output started at /homez.27/su****/www/ecole/includes/install.inc:188) in /homez.27/su****/www/ecole/includes/install.inc on line 618

Warning: Cannot modify header information – headers already sent by (output started at /homez.27/su****/www/ecole/includes/install.inc:188) in /homez.27/su****/www/ecole/includes/install.inc on line 619

Auriez vous une idée sur le problème rencontré ?

Merci d’avance,

L@urent


Auteur
Laurent
Date de publication
2 décembre 2009 à 22h09

Problème solutionné ; Désolé, erreur de ma part ; j’ai renommé et non pas copié puis renommé
le fichier default.settings.php

L@urent


Auteur
Yannick
Date de publication
31 décembre 2009 à 0h30

Grand merci Christophe!


Auteur
turfacheval
Date de publication
9 février 2010 à 18h37

Merci à l’auteur de ce site qui nous aide sans rien demander en retour, c’est l’exemple des bienfaits du web. Merci Christophe j’ai pu installer dupral grâce à vos conseils.


Auteur
Crazysky
Date de publication
28 mars 2010 à 14h41

Merci pour l’info. Toujours pratique ces blogs 😉


Auteur
Dominique
Date de publication
5 avril 2010 à 0h59

DRUPAL ET OVH ce qu’il ne faut pas faire
Et certainement avec tout autre CMS ou blogs…

Bien, après quelques déboires et de nombreux cafés, voici mon expérience pour installer Drupal sur un serveur perso OVH (cas probablement identique chez d’autres hébergeurs.)
Ceci évidement étant mon expérience ou inexpérience. j’espère ne pas être trop long, mais ça vaut peut être la peine.

LA BÊTISE:
Alors je me suis dit après avoir préparé un site tout beau en local je vais maintenant le mettre en ligne, et pour ça c’est super OVH propose une installation automatique de Drupal toute nickel et francisée… erreur.

1- La version proposée n’était pas à jour. (6.15 au lieu de 6.16 en soit ce n’est pas très grave, je ferais la mise à jour une fois installé, c’est tout simple!)

2- Hé bien non.
Car avec cette offre vous n’avez pas accès à votre base de données. Ce qui est grave. Imaginons quelqu’un qui utilise cette méthode, le jour ou il a une mise à jour à faire, il ne peut plus sauvegarder sa base de données, ni même y accéder.

la raison: La base MySql n’est pas sur votre hébergement mais sur un serveur d’Ovh auquel vous n’avez pas droit d’accéder.

Donc dans le cas ou on a fait la bêtise il faut:

-1 aller sur son manager ovh et créer une nouvelle base vide.
-2 attendre le mail de confirmation et attendre ensuite au minimum une demi heure avant de tenter quoique ce soit.
-3 D’ailleurs vous ne pourrez rien tenter parce que phpMyAdmin n’est pas installé et que vous ne pourrez rien faire avec votre nouvelle base!

LA SOLUTION, DEVENIR UN VRAIS CHEF!

Télécharger phpMyAdmin : http://www.phpmyadmin.net/home_page/downloads.php
l’installer sur le serveur et rechercher le fichier « config.sample.inc.php ».
Vous le dupliquez, le renommez « config.inc.php »
Ensuite vous remplacez le code par: (ce code est peut être à valider, en tout cas il fonctionne)

balise de début php
/////////////// la valeur blowfish sert à encrypter les mots de passe, donc mettre entre les guillemets simples une phrase ou/et des chiffres
$cfg['blowfish_secret'] = ' lajecrisunegrandephrase69076432cvbggrrrrrrrr ';
[...]
/////////////// Votre adresse url vers "phpMyAdmin"
$cfg['PmaAbsoluteUri'] = 'http://votresite.fr/phpMyAdmin/';
$i = 0;
// The $cfg['Servers'] array starts with $cfg['Servers']. Do not use $cfg['Servers'].
// You can disable a server config entry by setting host to ''.
$i++;
/////////////// là mettre le nom du serveur reçu dans le mail d'OVH genre; mysqlX-XX.perso
$cfg['Servers'][$i]['host'] = 'mysqlX-XX.perso';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = FALSE;
$cfg['Servers'][$i]['controluser'] = '';
$cfg['Servers'][$i]['controlpass'] = '';
$cfg['Servers'][$i]['auth_type'] = 'config';
/////////////// là mettre le nom d'utilisateur reçu dans le mail d'OVH qui est le même que le nom de votre base
$cfg['Servers'][$i]['user'] = 'lenomdelabase';
/////////////// là mettre le mot de passe reçu dans le mail d'OVH qui est le même que le nom de votre base
$cfg['Servers'][$i]['password'] = 'aaaaXXaXXaa';
/////////////// et ici mettre le nom de la base reçu dans le mail d'OVH, c'est tout.
$cfg['Servers'][$i]['only_db'] = 'lenomdelabase';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

fin de balise php

Vous allez avoir une maintenant une base MySql que vous pourrez sauvegarder ou remplacer…
Pour y accéder vous allez sur votre navigateur à l’adresse: http://monsite.fr//phpMyAdmin/

CA C’EST LA BASE MAIS…
.. si vous aviez commencé votre site avec l’installation automatique d’OVH?

1-vous ne savez pas ou est votre base
2-vous n’avez pas accès au MySql d’OVH

PAS DE PROBLÈMES:
Dans votre Drupal sur le serveur, récupérez le fichier de setting dans:

site -> défaut -> settings.php

et dans ce fichier cherchez les lignes suivantes (aux environs de la ligne 90)
///
* Database URL format:
* $db_url = 'mysql://username:password@localhost/databasename';
*/
$db_url = 'mysqli://0000000-1:XXXXa00b@sql4.modules/0000000-1';
///

C’est votre base MySql ! en toute poésie, l’accès à votre base MySql ressemble à ça:

0000000-1 -> c’est votre nom d’user
XXXXa00b -> c’est votre mot de passe
sql4.modules -> c’est le nom d’host de votre base
0000000-1 -> c’est le joli nom de votre base, qui comme tout à l’heure est identique à votre nom d’user

Avec ça en main il ne reste plus qu’a retourner dans le fichier « config.inc.php » de votre phpMySql tout neuf.
Là vous remplacez les valeurs que vous aviez précédemment remplie (host, user, password et only_db).

(Vous aviez fait une sauvegarde avant, hein?) bien, vous enregistrez, retournez sur http://monsite.fr/phpMySql

LE CIEL S’ÉCLAIRCI
Géant vous avez accès à votre ancienne base sur le serveur d’OVH. Il ne vous reste plus
qua l’exporter, ouf ! vous pouvez maintenant mettre à jour ou installer votre beau DRUPAL.

C’est presque fini:
Avant tout vous aurez choisi, soit d’utiliser votre nouvelle base, soit celle d’ovh.
Réglez donc le fichier « config.inc.php » de votre phpMySql suivant votre choix.

Ensuite lors de l’installation de Drupal lorsque vous arrivez sur la page de réglage de la base de donnée
entrez les bons noms d’user, nom de la base, mot de passe et….

Stop! ouvrez l’onglet en dessous « configuration » si je me souviens bien, et remplacez:
LOCALHOST par l’adresse host de votre base (celle que vous avez déjà configuré dans phpMyAdmin : mysqlX-XX.perso

Et hop c’est fini. Normalement.

Je tenais à partager cette expérience parce que en bon utilisateur moyen il m’a fallu un peu plus d’une journée pour comprendre et y arriver… , il doit bien rester quelques fautes dans ce post, je prie de m’en excuser!


Auteur
janvier
Date de publication
5 avril 2010 à 19h18

Bonjour
moi mon probleme est un peu compliqué:
la base de donné ne s’installe pas. je tous les données nécessaires
non de la base, user, mot de passe, port, le non du serveur, et c’est correcte parce que il n’y a aucun message d’eurreur tout simplement ça me retourne à la meme page configuration de la base de donnée
please vous pouvez m’aider?


Auteur
Didier
Date de publication
7 avril 2010 à 19h17

Bonjour moi j’ai un autre souci ma base de donnée c’est bon je suis au niveau de l’installation du site ca me mareque home et plus moyen de faire quelque chose ca reste bloqué la dessus est ce que quelqu’un aurais une solution merci d’avance


Auteur
Damien
Date de publication
27 juillet 2010 à 10h40

Bravo pour ce billet, simple, efficace.
J’aimerais trouver ce genre de réponse qui marche tout le temps !


* Informations obligatoires