Drush cài đặt và chạy; Không tìm thấy trang web Drupal ngay cả với uri được chỉ định


9

Sau nhiều thử thách và đau khổ, tôi nghĩ rằng mình đã sẵn sàng để gầm lên. Nhiều hứng thú. Nhưng sau đó, không có niềm vui ...

Drush đang làm việc. Các trang web hoạt động tốt thông qua MAMP. Bất kể, lệnh "drush cc all" trả về:

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

Câu hỏi này đã làm vấp ngã những người tham dự drupalcon và các nhà phát triển rất có kinh nghiệm. Có ý kiến ​​gì không?

Tôi đang dùng Mac OS 10.9.3 bằng MAMP (miễn phí) Phiên bản 3.0.5

Đây là trạng thái say của tôi:

 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    

Đã thử thực hiện drush từ /Applications/MAMP/htdocs/mysite.dev; từ /Applications/MAMP/htdocs/mysite.dev/sites/default; và sử dụngdrush cc all --uri=http://localhost/mysite.dev

Đã thử chạy drush từ các trang web / mặc định. Cùng một kết quả.


kết nối cơ sở dữ liệu của bạn nằm trong thư mục trang web / mặc định? Nếu vậy hãy thử chỉ chạy drush cc từ thư mục đó. Tôi không nghĩ --uri là một đối số hợp lệ cho drush cc
chadpeppers

Đã thử chạy drush từ các trang web / mặc định. Cùng một kết quả.
jenpasch

Bạn đã tìm thấy một giải pháp cho điều này. Tôi có cùng một vấn đề và thiết lập tương tự.
Deejay

Tôi không. Tôi vẫn còn ít say.
jenpasch

Bạn đã xem cái này chưa? Nó trông giống như ra khỏi đầu: drupal.stackexchange.com/questions/98802/...
Laryn - CEDC.org

Câu trả lời:


9

Vui lòng kiểm tra lại rằng tất cả các điểm dưới đây được giải quyết.

  1. Bạn đang chạy drushtrong thư mục gốc Drupal hoặc thư mục chứa settings.phptệp.
  2. Các mysqllệnh tồn tại (và đó là ở bạn PATH).

    Xin lưu ý rằng lệnh cơ sở dữ liệu tùy thuộc vào cơ sở dữ liệu của bạn driverđược đặt trong tệp cài đặt của bạn (ví dụ: sqlcmdđối với SQL Server; để biết chi tiết kiểm tra các lớp khác nhau trong Drush /src/Sql).

    Nếu lệnh bị thiếu khi chạy trong bất kỳ thư mục nào, hãy đảm bảo đường dẫn đến tệp nhị phân của nó được thêm vào PATHbiến hệ thống của bạn .

  3. PHP của bạn đã bật tiện ích mở rộng PDO (kiểm tra bằng: php -m | grep pdohoặc drush sqlc).

  4. PHP của bạn đã bật tiện ích mở rộng cơ sở dữ liệu (ví dụ mysqli) (kiểm tra bằng php -m | grep mysql:).

Để điều tra chính xác những gì sai, hãy chạy drushvới cờ -v(dài dòng) và -d(gỡ lỗi), ví dụ:

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

và kiểm tra bất kỳ lỗi nào.


Phần mở rộng mysql cho PHP PDO không được cài đặt. Kiểm tra php.ini của bạn để xem cách bạn có thể kích hoạt nó.

Cài đặt phần mở rộng cơ sở dữ liệu (ví dụ mysqli) (theo điểm 4 trên).

Đối với MAMP, xem: Drush không hoạt động trên máy Mac của tôi


MAMP

Vì bạn đang sử dụng MAMP, hãy đảm bảo rằng bạn đang chạy đúng phiên bản phpnhị phân (kiểm tra theo which php) và nó sẽ trỏ đến /Applications/MAMP/bin/php/php5.X.X/bin/php. Nếu không, vui lòng thêm đường dẫn vào tệp RCPATH của bạn (ví dụ ):~/.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

Đối với XAMPP cho Windows, điều tương tự, thêm bạn C:\xampp\mysql\binvào biến môi trường của bạn PATH.

Gỡ lỗi

Nếu drushlệnh của bạn không thành công vì một số lý do, đây là các bước được đề xuất để gỡ lỗi drush (lệnh shell).

  1. Cài đặt và kích hoạt phần mở rộng PHPxdebug . Xác minh bằng php71 -i | grep xdebug.
  2. Xác minh root Drupal , Cài đặt tệpCơ sở dữ liệu có trong drush status.
  3. Tạo tệp theo dõi:

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

    hoặc là:

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

    Nếu xdebug được bật cho các phiên bản PHP khác nhau, hãy chỉ định với DRUSH_PHP=/path/to/php.

    Nếu thành công, tập tin đầu ra theo dõi nên được in ở cuối, vì vậy hãy lưu ý về nó.

  4. Bây giờ hãy mở và kiểm tra tệp theo dõi.

  5. Để kiểm tra hoặc so sánh đầu ra của drush với Drupal sạch, bạn có thể cài đặt Drupal mới trong thư mục trống bằng cách:

    drush -y qd --no-server --core=drupal-8
    cd quick-drupal-*/drupal*
    drush status
    

2
+1 câu trả lời thực sự hay, vượt xa các thiết lập kiểm tra rõ ràng.php và db. Riêng tôi drush sqlcđã giúp tôi vì nó cho thấy cơ sở dữ liệu không thể kết nối với người dùng, điều này khiến tôi phải kiểm tra người dùng và mật khẩu và tiết lộ rằng tôi đã thiết lập sai. Cảm ơn bạn!
trị liệu

1
Tôi gặp vấn đề tương tự với @therobyouledge - Tôi có một ~/.my.cnftệp chỉ định người dùng cho các kết nối mysql nhưng không phải mật khẩu. Tôi nghĩ rằng điều này đã dẫn đến việc drush sử dụng người dùng từ tệp đó với mật khẩu từ trang web không hợp lệ. Thêm mật khẩu vào ~/.my.cnftệp của tôi hoặc xóa tệp đó đã khắc phục hoàn toàn sự cố
artfulrobot 26/03/18

4

Có vấn đề tương tự với Drush 8 mới trên máy Mac của tôi đang chạy MAMP

Bạn cần thêm phần này vào .bash_profile xuất PATH của bạn = / Ứng dụng / MAMP / Thư viện / bin /: $ PATH.

một khi được thêm vào, hãy đảm bảo mở một cửa sổ terminal mới vì nó sẽ không hoạt động trên cửa sổ hiện tại của bạn vì bash cần phải khởi động lại.


1
Dòng ném này là những gì cố định nó cho tôi. Tôi đã nhổ tóc của tôi trên này. MỞ MỘT CỬA SỔ KẾT THÚC MỚI KHI BẠN CẬP NHẬT / THAY ĐỔI để bash! Nếu không, cài đặt mới của bạn sẽ không ảnh hưởng.
erier

1

Như @kenorb đã nói, sử dụng drush -vd cc all, nó sẽ cho bạn ý tưởng tốt về những gì đang xảy ra một cách chi tiết. Trong trường hợp của tôi, đó là do lỗi "mysql command not found". Tôi đã giải quyết nó bằng cách thiết lập đường dẫn cho mysql trong các biến môi trường của tôi. Tôi cảm thấy bạn cũng cần kiểm tra đường dẫn của mình, cho cả Drush và MySQL và xem nó có hoạt động không.

Cảm ơn!!


1

Để xóa All Cache bằng Drush, bạn phải vào thư mục của trang trên thiết bị đầu cuối nơi thư mục trang của bạn nằm như trong thư mục www hoặc htdocs và sau đó thư mục dự án của bạn sau đó chạy lệnh:

drush cc all

0

Hãy kiểm tra gói Drush configure.md, nó có một loạt các gợi ý hữu ích cho các nền tảng, phần MAMP là:

Cấu hình bổ sung cho Mamp:

Người dùng MAMP sẽ cần chỉ định thủ công trong PATH của họ phiên bản php và MySQL nào sẽ sử dụng trong giao diện dòng lệnh. Phiên bản này độc lập với phiên bản php được chọn trong cài đặt ứng dụng MAMP. Trong OS X, chỉnh sửa (hoặc tạo nếu nó chưa tồn tại) một tệp có tên .bash_profile trong thư mục nhà của bạn.

Để sử dụng php 5.3.x, hãy thêm dòng này vào .bash_profile:

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

Nếu bạn muốn sử dụng php 5.4.x, thay vào đó hãy thêm dòng này:

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

Nếu bạn sử dụng MAMP 3 (php 5.5.14 theo mặc định) và muốn sử dụng php 5.5.x, thay vào đó hãy thêm dòng này:

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

Nếu bạn có MAMP v.1.84 trở xuống, cấu hình này sẽ hoạt động cho cả hai phiên bản PHP:

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

Nếu bạn đã thực hiện việc này và vẫn nhận được lỗi "không có tệp hoặc thư mục như vậy" từ cấu trúc PDO :: __, hãy thử điều này:

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

Ngoài ra, bạn có thể cần điều chỉnh cài đặt php.ini trước khi có thể sử dụng drush thành công. Xem XÁC NHẬN PHP.INI bên dưới để biết thêm chi tiết về cách tiến hành.


0

Chạy MAMP Pro Tôi đã làm việc này bằng cách thêm dòng này vào ~/.bash_profiletệp của mình :

export PATH=$PATH:/Applications/MAMP/Library/bin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.