Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

« Installer Drush avec composer pour Drupal 7 existant » : différence entre les versions

De AJLSM
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 15 : Ligne 15 :


Le scénario :
Le scénario :
On a une instance de Drupal 7 dans un Ubuntu 18.04 LTS : /home/ajlsm/projet-du-client/drupals/internet
On a une instance de Drupal 7 dans un Ubuntu 18.04 LTS : {{path|/home/ajlsm/projet-du-client/drupals/internet}}
# Installer composer et drush (voir [[Installer Drush avec Composer]]) puis, créer un projet drupal-composer pour D7 (voir et adapter drupal-composer/drupal-project:7.x-dev [[Installer_Drupal_avec_Composer|Installer Drupal avec Composer]], par exemple /home/ajlsm/projet-du-client/drupals/internet-composer
# Installer composer et drush (voir [[Installer Drush avec Composer]]) puis, créer un projet drupal-composer pour D7 (voir et adapter drupal-composer/drupal-project:7.x-dev [[Installer_Drupal_avec_Composer|Installer Drupal avec Composer]], par exemple {{path|/home/ajlsm/projet-du-client/drupals/internet-composer}}
# Remplacer le répertoire /home/ajlsm/projet-du-client/drupals/internet-composer/web (où est installé le Drupal créé par composer) par le répertoire /home/ajlsm/projet-du-client/drupals/internet
# Remplacer le répertoire {{path|/home/ajlsm/projet-du-client/drupals/internet-composer/web}} (où est installé le Drupal créé par composer) par le répertoire {{path|/home/ajlsm/projet-du-client/drupals/internet}}
#
# Modifier la conf apache selon le nouveau PATH
Nous allons installer composer et drush comme décrit ici : .
 
Ensuite, vous pouvez vider les caches de Drupal avec drush dans le répertoire où se trouve Drupal avec la commande :
<syntaxhighlight lang="bash">drush cc</syntaxhighlight>
<syntaxhighlight lang="bash">Enter a number to choose which cache to clear.
[0]  :  Cancel       
[1]  :  drush         
[2]  :  all           
[3]  :  theme-registry
[4]  :  menu         
[5]  :  css-js       
[6]  :  block         
[7]  :  module-list   
[8]  :  theme-list   
[9]  :  registry     
[10]  :  libraries     
[11]  :  metatag       
[12]  :  token         
[13]  :  views
</syntaxhighlight>
Choisir le cache à vider. Ici, on vide le [2], ou all
Ensuite, il reste à lancer drush pour faire les mises à jour.
 
La commande '''drush up''' ne fonctionne pas car le projet à été construit avec composer.
 
Mais, on ne veut pas utiliser '''composer require''', ou '''composer update''', car le projet Drupal n'est pas construit pour fonctionner avec composer.
 
{{important|Ne surtout pas essayer de faire un composer update }}
 
On va donc faire fonctionner Drush "à l'ancienne" en le forçant à faire les mises à jour avec la commande :
<syntaxhighlight lang="bash">drush up --pm-force</syntaxhighlight>


Projet composer Drupal 7 :
Projet composer Drupal 7 :
<syntaxhighlight lang="bash">php composer.phar create-project drupal-composer/drupal-project:7.x-dev some-dir --no-interaction</syntaxhighlight>
<syntaxhighlight lang="bash">php composer.phar create-project drupal-composer/drupal-project:7.x-dev some-dir --no-interaction</syntaxhighlight>

Version du 19 juin 2019 à 17:01

Depuis le passage à Ubuntu 18.04 LTS, il n'est plus possible d'installer directement drush pour gérer les mises à jour des modules et de Drupal 7 et 8.

Si l'on migre un projet Drupal 7 existant dans un OS Ubuntu 18.04 LTS, on ne peut plus récupérer Drush dans les paquets de Ubuntu.

Drupal.org ne maintient plus Drush depuis la version 8+.

Pour pouvoir gérer les dépendances, il faut maintenant installer composer.

Composer vient avec un grand nombre d'outils, dont Drush, qui est "embarqué" dans composer.

Pour continuer à gérer les dépendances avec drush, on va contourner "à l'arrache" les méthodes préconisées et expliquées dans les autres sections concernant composer et drush.


Important :
Attention, c'est une approche "toute pourrie". C'est juste pour permettre d'utiliser Drush avec Ubuntu 18,04 LTS. Les nouveaux projets doivent être créés et gérés entièrement avec composer.

Le scénario : On a une instance de Drupal 7 dans un Ubuntu 18.04 LTS : /home/ajlsm/projet-du-client/drupals/internet

  1. Installer composer et drush (voir Installer Drush avec Composer) puis, créer un projet drupal-composer pour D7 (voir et adapter drupal-composer/drupal-project:7.x-dev Installer Drupal avec Composer, par exemple /home/ajlsm/projet-du-client/drupals/internet-composer
  2. Remplacer le répertoire /home/ajlsm/projet-du-client/drupals/internet-composer/web (où est installé le Drupal créé par composer) par le répertoire /home/ajlsm/projet-du-client/drupals/internet
  3. Modifier la conf apache selon le nouveau PATH

Ensuite, vous pouvez vider les caches de Drupal avec drush dans le répertoire où se trouve Drupal avec la commande :

drush cc
Enter a number to choose which cache to clear.
 [0]   :  Cancel         
 [1]   :  drush          
 [2]   :  all            
 [3]   :  theme-registry 
 [4]   :  menu           
 [5]   :  css-js         
 [6]   :  block          
 [7]   :  module-list    
 [8]   :  theme-list     
 [9]   :  registry       
 [10]  :  libraries      
 [11]  :  metatag        
 [12]  :  token          
 [13]  :  views

Choisir le cache à vider. Ici, on vide le [2], ou all Ensuite, il reste à lancer drush pour faire les mises à jour.

La commande drush up ne fonctionne pas car le projet à été construit avec composer.

Mais, on ne veut pas utiliser composer require, ou composer update, car le projet Drupal n'est pas construit pour fonctionner avec composer.


Important :
Ne surtout pas essayer de faire un composer update .

On va donc faire fonctionner Drush "à l'ancienne" en le forçant à faire les mises à jour avec la commande :

drush up --pm-force

Projet composer Drupal 7 :

php composer.phar create-project drupal-composer/drupal-project:7.x-dev some-dir --no-interaction