Développer un site Drupal 7 en local avec Wampserver 2.2 : voici une solution

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Vous avez sans doute remarqué que Drupal 7 fonctionne assez mal avec Wampserver (alors que les performances sont tout à fait honorables avec Drupal 6). C’est embêtant pour ceux qui, comme moi, veulent faire du développement en local. J’ai essayé avec EasyPHP et le résultat n’était pas meilleur. Finalement, j’ai découvert Acquia Drupal qui permet d’utiliser Drupal 7 en local, de manière tout à fait confortable. Bref, j’ai dû abandonner Wampserver.

Néanmoins, je me suis entêté et j’ai une solution à vous proposer pour faire fonctionner Drupal 7 en local avec Wampserver. J’espère que cette solution aidera quelques personnes.

En fait, le nœud du problème, c’est que Drupal 7 utilise le moteur de stockage InnoDB et que celui-ci n’est pas émulé par défaut dans la distribution de Wampserver. Par défaut, Wampserver utilise le moteur de stockage MyISAM.

La solution que je propose ci-dessous implique quelques manipulations à la fois dans les fichiers "php.ini" et "my.ini". J’ai testé cette solution à la fois sur une machine équipée du Windows XP (32bits) et sur une autre fonctionnant avec Windows 7 (64bits). Comme je pense aux débutants, je vais tenter d’expliquer l’ensemble du processus d’installation de Wampserver.

1. Première étape, télécharger et installer une version de Wampserver que vous trouverez sur le site suivant : Wampserver. À l’heure où j’écris, il existe 5 versions 2.2E téléchargeables. Je vous conseille d’utiliser les versions (32bits ou 64 bits) comprenant PHP 5.3.

2. Une fois que vous avez installé et lancé Wampserver, il va falloir activer le module Apache permettant d’utiliser les URL’s simplifiées. Pour cela, faites un clic gauche sur l’icône Wampserver qui se trouve dans la zone de notification de Windows. Dans le menu qui apparaît, vous cliquez sur Apache, puis Modules Apache et une liste de modules apparaît. Cherchez le module "rewrite_module" et activez-le en cliquant dessus (vous verrez que l’icône wampserver devient brun-orange pendant quelques petites secondes avant de revenir au vert).

3. Nous allons maintenant modifier le fichier de configuration de MySQL. Avant tout, fermer Wampserver (les modifications des fichiers php.ini et my.ini ne sont prises en compte que lorsque Wampserver est relancé).

Le fichier "my.ini" se trouve dans le dossier c:/wamp/bin/mysql/mysql5.5.24/.

Avant de modifier le fichier "my.ini", copiez-le et renommez-le (exemple : "my.ini.bak"). Cela vous permettra de revenir en arrière.

Voici la version originale de la partie que vous allez modifier :

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = C:\mysql\data/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C:\mysql\data/
#innodb_log_arch_dir = C:\mysql\data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

[mysqldump]
Quick
max_allowed_packet = 16M

Et voici la version modifiée (attention à la modification de la valeur de "innodb_flush_log_at_trx_commit" qui passe de 1 à 2) :

# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = C:/wamp/bin/mysql/mysql5.5.24/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = C:/wamp/bin/mysql/mysql5.5.24/data
#innodb_log_arch_dir = C:\mysql\data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50

[mysqldump]
Quick
max_allowed_packet = 128M

4. Maintenant, nous allons un peu booster votre "php" en modifiant le fichier "php.ini".

Le fichier "php.ini" à modifier se trouve dans le dossier c:/wamp/bin/apache/apache2.2.22/bin/.

Avant de modifier le fichier "php.ini", copiez-le et renommez-le (exemple: "php.ini.bak").

Voici les lignes à modifier :

  • Dé-commenter la variable "realpath_cache_size" en supprimant le point-virgule qui se trouve devant la déclaration de la variable. Modifier sa valeur de 16K à 2M.

  • Dé-commenter la variable "realpath_cache_ttl". Modifier sa valeur de 120 à 36000.

  • Modifier la valeur la variable "max_execution_time" de 30 à 300.

  • Modifier la valeur la variable "memory_limit" de 128M à 256M.

  • Modifier la valeur la variable "upload_max_filesize" de 2M à 10M.

5. Installer Drupal 7 en décompressant le fichier "drupal-7.15.tar.gz" dans le répertoire c:/wamp/www. Pour la version française, copier le fichier "drupal-7.15.fr.po" dans le répertoire “profiles/standard/translations” de Drupal et renommer ce fichier "fr.po".

6. Lancer Wampserver, créer une base de données avec phpMyAdmin et lancer l’installation de Drupal 7. Normalement, il n’y a plus de lenteur.

Par contre, lorsque vous avez complètement installé Drupal 7 et que vous le redémarrez plus tard, vous constaterez une certaine lenteur. Celle-ci n’existe pas avec Acquia Drupal. Donc, je suppose qu’il manque encore quelques réglages. Je continue mes recherches, mais si quelqu’un a une idée ???

Bonne journée à tous.

Version de Drupal : 
Tags : 

Bonjour, merci pour vos explications est t'il utile de faire cet manip sur un système déjà installé et configuré, mon drupal est très très lent avec wamp et encore plus avec les outils de dev activés
merci

Bonjour,
Oui, si j'étais vous, je ferais cette manipulation.
De toute façon, si, avant d'effectuer ces modifications, vous faites une copie-renommée des fichiers php.ini et my.ini, il n'y pas beaucoup de risques. Vous pourrez revenir en arrière si vous constatez que vos modifications ne fonctionnent pas bien.
Ceci étant dit, j'ai découvert quelques modifications supplémentaires.

Voici la liste complète des paramètres que j'ai modifié dans mon fichier php.ini:

  • Modifier la valeur la variable output_buffering de On à 4096.

  • Dé-commenter la variable realpath_cache_size en supprimant le point-virgule qui se trouve devant la déclaration de la variable. Modifier sa valeur de 16K à 2M.

  • Dé-commenter la variable realpath_cache_ttl. Modifier sa valeur de 120 à 36000.

  • Modifier la valeur la variable max_execution_time de 30 à 300.

  • Modifier la valeur la variable memory_limit de 128M à 256M.

  • Modifier la valeur la variable post_max_size de 8M à 32M.

  • Modifier la valeur la variable upload_max_filesize de 2M à 24M.

  • Ajouter la variable max_file_uploads avec la valeur 20.

Cela devrait fonctionner un peu mieux !

Bonne journée.

Merci, j'ai fait l'édition, apres tout en faisant une /copie-renommée/ des fichiers pas de risques!
je vais tester. j'ai vu qu'il existait une suite de modules "DEVEL" pour tester les perfs. j'en suis à la découverte de ce CMS vraiment extrordinaire et pour tout dire je rame un peu, mais quel plaisir!
bonne journée.