it-swarm.com.de

Drush erkennt nicht drupal Installation im Unterverzeichnis der Site

Ich habe Drush 4 und 5 ohne Probleme verwendet. Jetzt, da ich neue Drush 7.0-dev mit Composer heruntergeladen und installiert habe, habe ich ein Problem, dh es erkennt standardmäßig nicht drupal Installation, wenn ich eingeschaltet bin Unterordner Websites,

Drush läuft auf Sites-Root-Verzeichnis,

drupal7/sites/example.com/modules/views$ drush status

 Drupal version                  :  7.30                               
 Site URI                        :  http://example.com              
 Database driver                 :  mysql                              
 Database hostname               :  localhost                          
 Database port                   :                                     
 Database username               :  example_user                    
 Database name                   :  example_db                     
 Database                        :  Connected                          
 Drupal bootstrap                :  Successful                         
 Drupal user                     :                                     
 Default theme                   :  bartik                             
 Administration theme            :  seven                              
 PHP executable                  :  /usr/bin/php                       
 PHP configuration               :  /etc/php5/cli/php.ini              
 PHP OS                          :  Linux                              
 Drush version                   :  7.0-dev                            
 Drush temp directory            :  /tmp                               
 Drush configuration             :                                     
 Drush alias files               :                                     
 Drupal root                     :  drupal7
 Site path                       :  sites/example.com               
 File directory path             :  sites/example.com/files         
 Temporary file directory path   :  /tmp                            

Drush läuft unter Sites-Unterverzeichnis,

drupal7/sites/example.com/modules/views$ drush status

 Drupal version         :  7.30                               
 PHP executable         :  /usr/bin/php                       
 PHP configuration      :  /etc/php5/cli/php.ini              
 PHP OS                 :  Linux                              
 Drush version          :  7.0-dev                            
 Drush temp directory   :  /tmp                               
 Drush configuration    :                                     
 Drush alias files      :                                     
 Drupal root            :  drupal7 

Wie konfiguriere ich Drush? Kann ich irgendetwas tun, damit es funktioniert? Ich möchte nicht jedes Mal das Flag --uri Oder -l Oder andere Optionen verwenden.

pdate

Auch wenn ich Module herunterlade, wird es im Verzeichnis sites/all/modules Heruntergeladen

drupal7/sites/example.com/modules$ drush dl webform
Project webform (7.x-3.20) downloaded to drupal7/sites/all/modules/webform.                                     [success]

Aber wenn ich im Sites-Root-Verzeichnis bin, funktioniert es gut,

drupal7/sites/example.com$ drush dl webform
Project webform (7.x-3.20) downloaded to /home/sysop/project/drupal7/htdocs/sites/heisenberg.com/modules/webform.                          [success]
4
shrish

Sie müssen eine Alias-Conf-Datei mit dem Namen YOUR_SITE_NAME.aliases.drushrc.php Im Ordner sites\all mit diesem Code hinzufügen.

// The site in sites/YOUR_SITE_NAME/ 
$aliases['YOUR_SITE_NAME.local'] = array(
  'uri' => 'YOUR_SITE_NAME_URI',
  'root' => '/path/to/drupal_root_folder',
  'path-aliases' => array(
    '%dump-dir' => '/tmp'
  ),
);

Dann Cache löschen: Drush Cache-Clear Drush.

Testen Sie Ihren Alias: @YOUR_SITE_NAME.local status.

So führen Sie einen Befehl aus: @YOUR_SITE_NAME.local mb MODULE_NAME hook1 hook2 --write


UPDATE: , um automatisch Drush-Site-Aliase für viele Sites zu erstellen, Fügen Sie diesen Code in Ihre aliases.drushrc.php - Datei ein. Drush sucht im Ordner ".drush" in Ihrem Home-Verzeichnis nach aliases.drushrc.php (Siehe dieser Beitrag , um sicherzustellen, wo diese Datei abgelegt werden soll).

$aliases = array();
$drupal = '/var/www/drupal';

// Automatic alias for each Drupal site
$site = new DirectoryIterator($drupal . '/sites');
while ($site->valid()) {
  // Look for directories containing a 'settings.php' file
  if ($site->isDir() && !$site->isDot() && !$site->isLink()) {
    if (file_exists($site->getPathname() . '/settings.php')) {
      // Add site alias
      $basename = $site->getBasename();
      $aliases[$basename] = array(
        'uri' => $basename,
        'root' => $drupal,
      );
    }
  }
  $site->next();
}

// Get all site aliases
$all = array();
foreach ($aliases as $name => $definition) {
  $all[] = '@' . $name;
}

// 'All' alias group
$aliases['all'] = array(
  'site-list' => $all,
);

Sie können auch Folgendes lesen: Erstellen Sie Ihre eigenen Drush-Aliase . Sie könnten sogar darüber nachdenken, die Synchronisation zwischen Remote- und lokalen Systemen zu verwalten ( Quelle ).

BEARBEITEN: gemäß ericx-Kommentar sollten Sie bash-completion Hinzufügen. Drush wird mit der Bash-Completion-Datei drush.completion.sh Geliefert, die Alias-Vervollständigungen bietet.

4
Kojo

Ich würde vorschlagen, die 6.x-Version zu bekommen, die die stabile Version für D7 ist (ja, die Versionierung ist etwas verwirrend :). Sie sollten in der Lage sein, es nicht mit zu installieren

composer global require drush/drush:6.*
2
mojzis

Das mag albern klingen, aber stellen Sie sicher, dass sich in drupal7/sites/example.com/eine Datei settings.php befindet und drush/drupal Zugriff auf die Bearbeitung dieser Datei hat

--oder--

versuchen Sie es mit dem Parameter --uri:

drush dl --uri = http://example.com Webformular

0
HumanSky

Ich konnte drush nicht aus dem Verzeichnis heraus ausführen drupal Verzeichnis nach der Neuinstallation von drush. Es stellte sich heraus, dass in diesem Verzeichnis ein Symlink zum Drush vorhanden war, der eine Rekursion verursachte und daher drush fehlschlug. Der Symlink wurde entfernt und konnte drush wieder aus dem Verzeichnis ausführen.

0
dresh

Schauen Sie sich Drush Aliases an.

Sie ermöglichen es Ihnen im Wesentlichen , auf Ihre Drupal - Installationen) zu zielen , um Ihre drush - Befehle auszuführen.

0
sshrestha

In meinem Fall stellte sich heraus, dass ich mysql-client installieren musste:

apt-get install mysql-client

Ich hatte die folgende Situation: Drush 4, 5 und 6 funktionierten gut für mich. Drush 7, 8 funktionieren nicht (verschiedene Fehler, einschließlich der von Ihnen beschriebenen). Meine MySQL-Datenbank befand sich auf einem separaten Server.

HTH, Alexander