Drush installiert und läuft; Selbst mit der angegebenen URL wurde keine Drupal-Site gefunden

9

Nach vielen Prüfungen und Schwierigkeiten dachte ich, ich hätte alles getan, um zu brüllen. Viel Aufregung. Aber dann keine Freude ...

Drush funktioniert. Die Websites funktionieren einwandfrei über MAMP. Unabhängig davon gibt ein Befehl "drush cc all" zurück:

No Drupal site found, only 'drush' cache was cleared.                                          [warning]
'all' cache was cleared.                                                                       [success]

Diese Frage hat Drupalcon-Teilnehmer und sehr erfahrene Entwickler verblüfft. Irgendwelche Ideen?

Ich bin unter Mac OS 10.9.3 mit MAMP (kostenlos) Version 3.0.5

Hier ist mein Drush-Status:

 Drupal version         :  7.29-dev                               
 Site URI               :  http://default                         
 Database driver        :  mysql                                  
 Database hostname      :  localhost                              
 Database username      :  db_user                           
 Database name          :  db_name                      
 PHP executable         :  /usr/bin/php                           
 PHP configuration      :                                         
 PHP OS                 :  Darwin                                 
 Drush version          :  7.0-dev                                
 Drush temp directory   :  /tmp                                   
 Drush configuration    :                                         
 Drush alias files      :                                         
 Drupal root            :  /Applications/MAMP/htdocs/mysite.dev 
 Site path              :  sites/default    

Habe versucht, drush von auszuführen /Applications/MAMP/htdocs/mysite.dev; von /Applications/MAMP/htdocs/mysite.dev/sites/default; und mitdrush cc all --uri=http://localhost/mysite.dev

Versucht Drush von Sites / Standard laufen. Gleiches Ergebnis.

jenpasch
quelle
Befindet sich Ihre Datenbankverbindung im Ordner sites / default? Wenn ja, versuchen Sie einfach, drush cc aus diesem Ordner auszuführen. Ich glaube nicht, dass --uri ein gültiges Argument für drush cc
chadpeppers ist.
Versucht Drush von Sites / Standard laufen. Gleiches Ergebnis.
Jenpasch
Haben Sie eine Lösung dafür gefunden? Ich habe das gleiche Problem und ein ähnliches Setup.
Deejay
Ich habe nicht. Ich bin immer noch ohne Drush.
Jenpasch
Hast du dir das angeschaut? Von oben sieht es ähnlich aus: drupal.stackexchange.com/questions/98802/…
Laryn - CEDC.org

Antworten:

9

Bitte überprüfen Sie, ob alle unten aufgeführten Punkte angesprochen wurden.

  1. Sie werden drushim Drupal-Stammordner oder im Ordner mit der settings.phpDatei ausgeführt.
  2. Der mysqlBefehl existiert (und ist in Ihrem PATH).

    Bitte beachten Sie, dass der Datenbankbefehl von Ihrer driverin Ihrer Einstellungsdatei festgelegten Datenbank abhängt (z. B. sqlcmdfür SQL Server; Einzelheiten finden Sie in den verschiedenen Klassen in Drushs /src/Sql).

    Wenn der Befehl in einem Ordner fehlt, stellen Sie sicher, dass der Pfad zu seiner Binärdatei zu Ihrer PATHSystemvariablen hinzugefügt wird.

  3. In Ihrem PHP ist die PDO- Erweiterung aktiviert (überprüfen durch: php -m | grep pdooder drush sqlc).

  4. In Ihrem PHP ist die Datenbankerweiterung aktiviert (z. B. mysqli) (überprüfen durch :) php -m | grep mysql.

Um zu untersuchen , was genau falsch, lief drushmit -v(ausführlich) und -d(debug) Fahnen, zB

drush -vd status
drush -vd ev "echo 123"
drush -vd cc all

und auf Fehler prüfen.


Die MySQL-Erweiterung für PHP PDO ist nicht installiert. Überprüfen Sie Ihre php.ini, um zu sehen, wie Sie es aktivieren können.

Installieren Sie die Datenbankerweiterung (z. B. mysqli) (siehe oben, 4. Punkt).

Informationen zu MAMP finden Sie unter: Drush funktioniert auf meinem Mac nicht


MAMP

Da Sie MAMP verwenden, stellen Sie außerdem sicher, dass Sie die richtige Version der phpBinärdatei (check by which php) ausführen und darauf verweisen sollten /Applications/MAMP/bin/php/php5.X.X/bin/php. Wenn nicht, fügen Sie bitte den Pfad in PATHIhre RC- Dateien ein (z. B. ~/.bashrc):

# For MAMP (OSX)
PHP_VER="5.6.10" # Or: 5.4.19/5.5.3 (check by: $ ls /Applications/MAMP/bin/php/php*)
export PATH="$PATH:/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php/php$PHP_VER/bin:/Developer/usr/bin"

XAMPP

Fügen Sie für XAMPP für Windows ähnlich C:\xampp\mysql\binIhre Umgebungsvariable hinzu PATH.

Debuggen

Wenn Ihr drushBefehl aus irgendeinem Grund fehlschlägt, finden Sie hier die vorgeschlagenen Schritte zum Debuggen von Drush (Shell-Befehle).

  1. Installieren und aktivieren Sie die PHP- xdebugErweiterung . Überprüfen Sie durch php71 -i | grep xdebug.
  2. Überprüfen Sie , ob Drupal-Stammverzeichnis , Einstellungsdatei und Datenbank in vorhanden sind drush status.
  3. Trace-Datei generieren:

    drush ev "xdebug_start_trace(); drush_drupal_cache_clear_all(); echo xdebug_get_tracefile_name(); xdebug_stop_trace();"

    oder:

    drush ev "xdebug_start_trace(); print_r(_core_site_status_table()); echo xdebug_get_tracefile_name(); xdebug_stop_trace();"

    Wenn xdebug für eine andere PHP-Version aktiviert ist, geben Sie mit an DRUSH_PHP=/path/to/php.

    Wenn dies erfolgreich ist, sollte die Trace-Ausgabedatei am Ende gedruckt werden. Notieren Sie sich dies.

  4. Öffnen Sie nun die Trace-Datei und überprüfen Sie sie.

  5. Um die Drush-Ausgabe mit sauberem Drupal zu testen oder zu vergleichen, können Sie neues Drupal in einem leeren Ordner installieren, indem Sie:

    drush -y qd --no-server --core=drupal-8
    cd quick-drupal-*/drupal*
    drush status
Kenorb
quelle
2
+1 wirklich nette Antwort, die über die offensichtlichen Check-Einstellungen hinausgeht.php und db. Besonders für mich drush sqlchat mir geholfen, da es zeigte, dass die Datenbank nicht mit dem Benutzer verbunden werden konnte, was dazu führte, dass ich den Benutzer und das Passwort überprüfte und feststellte, dass ich sie falsch eingerichtet hatte. Vielen Dank!
Therobyouknow
1
Ich hatte ein ähnliches Problem wie @therobyouknow - ich hatte eine ~/.my.cnfDatei, in der der Benutzer für MySQL-Verbindungen angegeben war, jedoch kein Kennwort. Ich denke, dies führte dazu, dass der Benutzer aus dieser Datei mit dem ungültigen Passwort von der Site drush verwendet wurde. Das Hinzufügen eines Passworts zu meiner ~/.my.cnfDatei oder das Entfernen dieser Datei hat das Problem vollständig behoben
artfulrobot
4

Hatte das gleiche Problem mit dem neuen Drush 8 auf meinem Mac mit MAMP

Sie müssen dies zu Ihrem .bash_profile-Export hinzufügen. PATH = / Applications / MAMP / Library / bin /: $ PATH.

Stellen Sie nach dem Hinzufügen sicher, dass Sie ein neues Terminalfenster öffnen, da es in Ihrem aktuellen Fenster nicht funktioniert, da bash erneut gestartet werden muss.

Ben Mirkhah
quelle
1
Diese eine Wegwerflinie hat es für mich behoben. Ich zog mir hier die Haare aus. ÖFFNEN SIE EIN NEUES TERMINAL-FENSTER, WENN SIE UPDATES / ÄNDERUNGEN vornehmen, um zu schlagen! Andernfalls werden Ihre neuen Einstellungen nicht wirksam.
Erier
1

Wie @kenorb sagte, verwenden Sie drush -vd cc all, es gibt Ihnen eine gute Vorstellung davon, was im Detail passiert. In meinem Fall lag es an dem Fehler "mysql command not found". Ich habe es gelöst, indem ich den Pfad für MySQL in meinen Umgebungsvariablen eingerichtet habe. Ich denke, Sie müssen auch Ihren Pfad für Drush und MySQL überprüfen und prüfen, ob es funktioniert.

Vielen Dank!!

Umesh Patil
quelle
1

Um den gesamten Cache mit Drush zu löschen, müssen Sie das Verzeichnis der Site auf dem Terminal aufrufen, in dem sich Ihr Site-Verzeichnis wie im Verzeichnis www oder htdocs befindet, und anschließend Ihren Projektordner ausführen. Führen Sie anschließend den folgenden Befehl aus:

drush cc all
Pankaj Sachdeva
quelle
0

Testen Sie das Drush-Paket configure.md. Es enthält eine Reihe hilfreicher Hinweise für Plattformen. Der MAMP-Abschnitt lautet daher:

Zusätzliche Konfigurationen für Mamp:

Benutzer von MAMP müssen in ihrem PATH manuell angeben, welche Version von PHP und MySQL in der Befehlszeilenschnittstelle verwendet werden soll. Dies ist unabhängig von der in den MAMP-Anwendungseinstellungen ausgewählten PHP-Version. Bearbeiten Sie unter OS X eine Datei mit dem Namen .bash_profile in Ihrem Home-Ordner (oder erstellen Sie sie, falls sie noch nicht vorhanden ist).

Um PHP 5.3.x zu verwenden, fügen Sie diese Zeile zu .bash_profile hinzu:

export PATH="/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5.3/bin:$PATH"

Wenn Sie PHP 5.4.x verwenden möchten, fügen Sie stattdessen diese Zeile hinzu:

export PATH="/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5.4/bin:$PATH"

Wenn Sie MAMP 3 (standardmäßig PHP 5.5.14) verwenden und PHP 5.5.x verwenden möchten, fügen Sie stattdessen diese Zeile hinzu:

export PATH="/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php/php5.5.14/bin:$PATH"

Wenn Sie MAMP v.1.84 oder niedriger haben, funktioniert diese Konfiguration für beide Versionen von PHP:

export PATH="/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5/bin:$PATH"

Wenn Sie dies getan haben und immer noch den Fehler "Keine solche Datei oder kein solches Verzeichnis" vom Konstrukt PDO :: __ erhalten, versuchen Sie Folgendes:

bash sudo mkdir /var/mysql sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock

Darüber hinaus müssen Sie möglicherweise Ihre php.ini-Einstellungen anpassen, bevor Sie drush erfolgreich verwenden können. Weitere Informationen zum weiteren Vorgehen finden Sie unter KONFIGURIEREN VON PHP.INI.

Cameron
quelle
0

Ausführen von MAMP Pro Ich habe dies durch Hinzufügen dieser Zeile zu meiner ~/.bash_profileDatei zum Laufen gebracht :

export PATH=$PATH:/Applications/MAMP/Library/bin
Scott859
quelle