Drush zainstalowany i uruchomiony; Nie znaleziono strony Drupal, nawet z podanym uri

9

Po wielu próbach i udrękach pomyślałem, że mam już dość drukarzy gotowych do ryku. Dużo emocji. Ale wtedy nie ma radości ...

Drush działa. Witryny działają dobrze za pośrednictwem MAMP. Niezależnie od tego polecenie „drush cc all” zwraca:

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

To pytanie zaskoczyło uczestników Drupalcon i bardzo doświadczonych programistów. Jakieś pomysły?

Korzystam z systemu Mac OS 10.9.3, używając MAMP (darmowa) wersja 3.0.5

Oto mój status drusha:

 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    

Próbowałem wykonać drush z /Applications/MAMP/htdocs/mysite.dev; z /Applications/MAMP/htdocs/mysite.dev/sites/default; i za pomocądrush cc all --uri=http://localhost/mysite.dev

Próbowałem uruchomić drush z witryn / domyślnie. Ten sam wynik.

Jenpasch
źródło
czy twoje połączenie z bazą danych znajduje się w folderze strony / domyślny? Jeśli tak, spróbuj uruchomić drush cc z tego folderu. Nie sądzę, by --uri był ważnym argumentem dla drusha cc
chadpeppers
Próbowałem uruchomić drush z witryn / domyślnie. Ten sam wynik.
jenpasch
Czy znalazłeś rozwiązanie tego problemu? Mam ten sam problem i podobną konfigurację.
Deejay
Ja nie. Nadal jestem bez drake.
jenpasch
Patrzyłeś na to? Z góry wygląda podobnie: drupal.stackexchange.com/questions/98802/…
Laryn - CEDC.org

Odpowiedzi:

9

Proszę dokładnie sprawdzić, czy wszystkie poniższe punkty są zaadresowane.

  1. Pracujesz drushw folderze głównym Drupal lub folderze zawierającym settings.phpplik.
  2. mysqlKomenda istnieje (i jest to w twojej PATH).

    Należy pamiętać, że polecenie bazy danych zależy od bazy danych driverustawionej w pliku ustawień (np. sqlcmdDla SQL Server; po szczegóły sprawdź różne klasy w Drush's /src/Sql).

    Jeśli brakuje polecenia podczas uruchamiania w dowolnym folderze, upewnij się, że ścieżka do jego pliku binarnego została dodana do PATHzmiennej systemowej.

  3. Twoje PHP ma włączone rozszerzenie PDO (sprawdź przez: php -m | grep pdolub drush sqlc).

  4. Twoje PHP ma włączone rozszerzenie bazy danych (np. mysqli) (Sprawdź przez php -m | grep mysql:).

Aby zbadać, co dokładnie stało, prowadzony drushz -v(do pełnych) i -d(debugowania), np flagi

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

i sprawdź, czy nie ma błędów.


Rozszerzenie mysql dla PHP PDO nie jest zainstalowane. Sprawdź plik php.ini, aby zobaczyć, jak możesz go włączyć.

Zainstaluj rozszerzenie bazy danych (np. mysqli) (Zgodnie z powyższym 4. punktem).

W przypadku MAMP patrz: Drush nie działa na moim komputerze Mac


MAMP

Ponieważ używasz MAMP, upewnij się, że używasz odpowiedniej wersji phpbinarnej (sprawdź przez which php) i powinna ona wskazywać /Applications/MAMP/bin/php/php5.X.X/bin/php. Jeśli nie, należy dodać ścieżkę do swojego PATHw swoim rc plików (na przykład ~/.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

W przypadku XAMPP dla Windows, podobnie, dodaj swoją C:\xampp\mysql\binzmienną środowiskową PATH.

Debugowanie

Jeśli drushpolecenie z jakiegoś powodu nie powiedzie się, oto sugerowane kroki do debugowania drush (polecenia powłoki).

  1. Zainstaluj i włącz rozszerzenie PHPxdebug . Zweryfikuj przez php71 -i | grep xdebug.
  2. Sprawdź, czy root Drupal , plik ustawień i baza danych są obecne drush status.
  3. Wygeneruj plik śledzenia:

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

    lub:

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

    Jeśli xdebug jest włączony dla innej wersji PHP, określ za pomocą DRUSH_PHP=/path/to/php.

    Jeśli się powiedzie, plik wyjściowy śledzenia powinien zostać wydrukowany na końcu, więc zanotuj go.

  4. Teraz otwórz i sprawdź plik śledzenia.

  5. Aby przetestować lub porównać wydajność drusha z czystym Drupalem, możesz zainstalować nowego Drupala w pustym folderze przez:

    drush -y qd --no-server --core=drupal-8
    cd quick-drupal-*/drupal*
    drush status
kenorb
źródło
2
+1 naprawdę fajna odpowiedź, wykraczająca poza oczywiste sprawdzenie settings.php i db. Szczególnie mi drush sqlcpomogło, ponieważ pokazało, że baza danych nie może być połączona z użytkownikiem, co skłoniło mnie do sprawdzenia użytkownika i hasła oraz ujawnienia, że ​​źle je skonfigurowałem. Dziękuję Ci!
therobyouknow
1
Miałem podobny problem jak @therobyouknow - miałem ~/.my.cnfplik, który określał użytkownika dla połączeń mysql, ale nie hasło. Myślę, że to spowodowało drush przy użyciu użytkownika z tego pliku z hasłem z witryny, co było nieprawidłowe. Dodanie hasła do mojego ~/.my.cnfpliku lub usunięcie tego pliku całkowicie rozwiązało problem
artfulrobot
4

Miałem ten sam problem z nowym Drush 8 na moim komputerze Mac z systemem MAMP

Musisz dodać to do swojego eksportu .bash_profile PATH = / Applications / MAMP / Library / bin /: $ PATH.

po dodaniu upewnij się, aby otworzyć nowe okno terminala, ponieważ nie będzie działać w twoim bieżącym oknie, ponieważ bash musi się ponownie uruchomić.

Ben Mirkhah
źródło
1
Ta jedna odchylona linia jest tym, co mnie naprawiło. Ciągnęłam za to włosy. OTWIERAJ NOWE OKNO TERMINALA, GDY ZAKOŃCZASZ AKTUALIZACJE / ZMIANY, aby strzelać! W przeciwnym razie nowe ustawienia nie będą miały wpływu.
wcześniej
1

Jak powiedział @kenorb, użyj drush -vd cc all, da ci dobry obraz tego, co dzieje się szczegółowo. W moim przypadku było to spowodowane błędem "mysql command not found". Rozwiązałem to, ustawiając ścieżkę dla mysql w moich zmiennych środowiskowych. Uważam, że musisz również sprawdzić swoją ścieżkę, zarówno dla Drusha, jak i MySQL-a i sprawdzić, czy to działa.

Dzięki!!

Umesh Patil
źródło
1

Aby wyczyścić całą pamięć podręczną za pomocą Drush, musisz przejść do katalogu witryny na terminalu, w którym znajduje się katalog witryny, np. W katalogu www lub htdocs, a następnie folder projektu po uruchomieniu polecenia:

drush cc all
Pankaj Sachdeva
źródło
0

Zapoznaj się z pakietem Drush config.md, zawiera on wiele pomocnych wskazówek dla platform, sekcja MAMP jest zatem:

Dodatkowe konfiguracje dla Mampa:

Użytkownicy MAMP będą musieli ręcznie określić w swojej PATH, której wersji php i MySQL mają używać w interfejsie wiersza poleceń. Jest to niezależne od wersji php wybranej w ustawieniach aplikacji MAMP. W systemie OS X edytuj (lub utwórz, jeśli jeszcze nie istnieje) plik o nazwie .bash_profile w folderze domowym.

Aby użyć php 5.3.x, dodaj ten wiersz do .bash_profile:

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

Jeśli chcesz użyć php 5.4.x, dodaj ten wiersz:

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

Jeśli używasz MAMP 3 (domyślnie php 5.5.14) i chcesz użyć php 5.5.x, dodaj ten wiersz:

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

Jeśli masz MAMP v.1.84 lub niższy, ta konfiguracja będzie działać dla obu wersji PHP:

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

Jeśli to zrobiłeś i nadal pojawia się błąd „brak takiego pliku lub katalogu” z PDO :: __ build, spróbuj tego:

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

Ponadto może być konieczne dostosowanie ustawień php.ini, aby można było pomyślnie używać drush. Zobacz KONFIGURACJA PHP.INI poniżej, aby uzyskać więcej informacji na temat dalszego postępowania.

Cameron
źródło
0

Uruchamianie MAMP Pro Mam to do pracy, dodając ten wiersz do mojego ~/.bash_profilepliku:

export PATH=$PATH:/Applications/MAMP/Library/bin
Scott859
źródło