Drush ติดตั้งและใช้งาน; ไม่พบเว็บไซต์ Drupal แม้จะมีการระบุ uri


9

หลังจากการทดลองและความยากลำบากมากฉันคิดว่าฉันได้ดื่มทุกคนพร้อมที่จะคำราม ตื่นเต้นมาก แต่แล้วไม่มีความสุข ...

Drush กำลังทำงาน เว็บไซต์ทำงานได้ดีผ่าน MAMP ไม่ว่าคำสั่ง "drush cc all" จะส่งกลับ:

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

คำถามนี้ทำให้ผู้เข้าร่วมงาน drupalcon ที่ชะงักงันและนักพัฒนาที่มีประสบการณ์สูง ความคิดใด ๆ

ฉันใช้ Mac OS 10.9.3 ใช้ MAMP (ฟรี) เวอร์ชัน 3.0.5

นี่คือสถานะการดื่มเหล้าของฉัน:

 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    

ได้พยายามดำเนินการ drush จาก/Applications/MAMP/htdocs/mysite.dev; จาก/Applications/MAMP/htdocs/mysite.dev/sites/default; และการใช้drush cc all --uri=http://localhost/mysite.dev

พยายามรัน drush จากไซต์ / ค่าเริ่มต้น ผลลัพธ์เดียวกัน


เชื่อมต่อฐานข้อมูลของคุณอยู่ในไซต์ / โฟลเดอร์เริ่มต้นหรือไม่ ถ้าเป็นเช่นนั้นให้ลองใช้งาน drush cc จากโฟลเดอร์นั้น ฉันไม่คิดว่า --uri เป็นอาร์กิวเมนต์ที่ถูกต้องสำหรับ
drush

พยายามรัน drush จากไซต์ / ค่าเริ่มต้น ผลลัพธ์เดียวกัน
jenpasch

คุณค้นพบวิธีแก้ปัญหาสำหรับสิ่งนี้หรือไม่ ฉันมีปัญหาเดียวกันและการตั้งค่าที่คล้ายกัน
Deejay

ฉันไม่ได้. ฉันยังคงดื่มเหล้าน้อยลง
jenpasch

คุณเคยดูที่นี้ไหม ดูเหมือนว่าอยู่ด้านบน: drupal.stackexchange.com/questions/98802/…
Laryn - CEDC.org

คำตอบ:


9

โปรดตรวจสอบอีกครั้งว่ามีการระบุคะแนนด้านล่างทั้งหมด

  1. คุณกำลังทำงานdrushในโฟลเดอร์หรือโฟลเดอร์ Drupal ที่มีsettings.phpไฟล์อยู่
  2. มีmysqlคำสั่งอยู่ (และเป็นของคุณPATH)

    โปรดทราบว่าคำสั่งฐานข้อมูลขึ้นอยู่กับฐานข้อมูลของคุณที่driverตั้งอยู่ในไฟล์การตั้งค่าของคุณ (เช่นsqlcmdสำหรับ SQL Server สำหรับรายละเอียดตรวจสอบคลาสที่แตกต่างใน Drush /src/Sql)

    หากคำสั่งหายไปเมื่อทำงานในโฟลเดอร์ใด ๆ ตรวจสอบให้แน่ใจว่าเพิ่มพา ธ ไปยังไฟล์ไบนารีลงในPATHตัวแปรระบบของคุณ

  3. PHP ของคุณเปิดใช้งานส่วนขยายPDO (ตรวจสอบโดย: php -m | grep pdoหรือdrush sqlc)

  4. PHP ของคุณเปิดใช้งานส่วนขยายฐานข้อมูล (เช่นmysqli) (ตรวจสอบโดยphp -m | grep mysql:)

หากต้องการตรวจสอบสิ่งที่ผิดพลาดให้รันdrushด้วยธง-v(verbose) และ-d(debug) เช่น

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

และตรวจสอบข้อผิดพลาดใด ๆ


ไม่ได้ติดตั้งส่วนขยาย mysql สำหรับ PHP PDO ตรวจสอบ php.ini ของคุณเพื่อดูว่าคุณสามารถเปิดใช้งานได้อย่างไร

ติดตั้งส่วนขยายฐานข้อมูล (เช่นmysqli) (ตามจุดที่ 4 ด้านบน)

สำหรับ MAMP ให้ดูที่: Drush ไม่ทำงานบน Mac ของฉัน


MAMP

เนื่องจากคุณกำลังใช้ MAMP ให้แน่ใจว่าคุณยังใช้เวอร์ชั่นขวาของphpไบนารี (การตรวจสอบทางwhich php) /Applications/MAMP/bin/php/php5.X.X/bin/phpและมันควรจะชี้ไปที่ หากไม่ได้โปรดเพิ่มเส้นทางลงPATHในไฟล์rcของคุณ(เช่น~/.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

สำหรับ XAMPP สำหรับ Windows, สิ่งที่คล้ายกันเพิ่มของคุณลงในตัวแปรสภาพแวดล้อมของคุณC:\xampp\mysql\binPATH

แก้จุดบกพร่อง

หากdrushคำสั่งของคุณล้มเหลวด้วยเหตุผลบางประการต่อไปนี้เป็นขั้นตอนที่แนะนำในการดีบัก drush (คำสั่งเชลล์)

  1. ติดตั้งและเปิดใช้งานPHPxdebugนามสกุล php71 -i | grep xdebugตรวจสอบโดย
  2. ตรวจสอบราก Drupal , การตั้งค่าไฟล์และฐานข้อมูลdrush statusที่มีอยู่ในปัจจุบัน
  3. สร้างไฟล์ติดตาม:

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

    หรือ:

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

    หาก xdebug เปิดใช้งานสำหรับ PHP DRUSH_PHP=/path/to/phpรุ่นที่แตกต่างกันกับระบุ

    หากสำเร็จไฟล์การติดตามควรพิมพ์ที่ส่วนท้ายจึงจดบันทึกไว้

  4. ตอนนี้เปิดและตรวจสอบไฟล์ติดตาม

  5. ในการทดสอบหรือเปรียบเทียบผลลัพธ์ drush กับ Drupal ใหม่ทั้งหมดคุณสามารถติดตั้ง Drupal ใหม่ในโฟลเดอร์เปล่าโดย:

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

2
+1 คำตอบที่ดีมากนอกเหนือจากการตรวจสอบ settings.php และ db โดยเฉพาะอย่างยิ่งสำหรับฉันdrush sqlcช่วยฉันเพราะมันแสดงให้เห็นว่าฐานข้อมูลไม่สามารถเชื่อมต่อกับผู้ใช้ซึ่งทำให้ฉันตรวจสอบผู้ใช้และรหัสผ่านและพบว่าฉันตั้งพวกเขาผิด ขอบคุณ!
therobyouknow

1
ฉันมีปัญหาคล้ายกับ @therobyouknow - ฉันมี~/.my.cnfไฟล์ที่ระบุผู้ใช้สำหรับการเชื่อมต่อ mysql แต่ไม่ใช่รหัสผ่าน ฉันคิดว่าสิ่งนี้ส่งผลให้เกิดความสับสนโดยใช้ผู้ใช้จากไฟล์นั้นด้วยรหัสผ่านจากเว็บไซต์ซึ่งไม่ถูกต้อง การเพิ่มรหัสผ่านลงใน~/.my.cnfไฟล์ของฉันหรือลบไฟล์นั้นแก้ไขปัญหาทั้งหมด
artfulrobot

4

พบปัญหาเดียวกันกับ Drush 8 ใหม่บน Mac ที่ใช้ MAMP

คุณต้องเพิ่มสิ่งนี้ลงใน. bash_profile export PATH = / Applications / MAMP / Library / bin /: $ PATH

เมื่อเพิ่มแล้วอย่าลืมเปิดหน้าต่างเทอร์มินัลใหม่เพราะจะไม่สามารถใช้งานได้ในหน้าต่างปัจจุบันของคุณเนื่องจากทุบตีต้องเริ่มใหม่อีกครั้ง


1
บรรทัดการโยนอันนี้เป็นสิ่งที่แก้ไขให้ฉัน ฉันดึงผมออกมาบนอันนี้ เปิดหน้าต่างใหม่ของเทอร์มินัลเมื่อคุณทำการอัพเดท / เปลี่ยนแปลงเพื่อทุบตี! มิฉะนั้นการตั้งค่าใหม่ของคุณจะไม่ส่งผลกระทบ
erier

1

ดังที่ @kenorb กล่าวว่าใช้drush -vd cc allมันจะทำให้คุณมีความคิดที่ดีเกี่ยวกับสิ่งที่เกิดขึ้นในรายละเอียด "mysql command not found"ในกรณีของฉันมันเป็นเพราะข้อผิดพลาด ฉันแก้ไขมันโดยการตั้งค่าพา ธ สำหรับ mysql ในตัวแปรสภาพแวดล้อมของฉัน ฉันรู้สึกว่าคุณต้องตรวจสอบเส้นทางของคุณด้วยสำหรับ Drush และ MySQL ทั้งคู่และดูว่ามันใช้งานได้หรือไม่

ขอบคุณ !!


1

ในการล้างแคชทั้งหมดโดยใช้ Drush คุณจะต้องไปที่ไดเรกทอรีของไซต์บนเทอร์มินัลที่ไดเรกทอรีไซต์ของคุณอยู่ในไดเรกทอรี www หรือ htdocs จากนั้นเรียกใช้โฟลเดอร์โครงการของคุณหลังจากนั้นเรียกใช้คำสั่ง:

drush cc all

0

ชำระเงินแพคเกจ Drush configure.md มันมีคำแนะนำที่เป็นประโยชน์สำหรับแพลตฟอร์มส่วน MAMP จึง:

การกำหนดค่าเพิ่มเติมสำหรับ Mamp:

ผู้ใช้ MAMP จะต้องระบุด้วยตนเองใน PATH ว่ารุ่นใดของ php และ MySQL ที่จะใช้ในอินเตอร์เฟสบรรทัดคำสั่ง สิ่งนี้เป็นอิสระจากรุ่น php ที่เลือกในการตั้งค่าแอปพลิเคชัน MAMP ใน OS X ให้แก้ไข (หรือสร้างหากไม่มีอยู่) ไฟล์ชื่อ. bash_profile ในโฟลเดอร์บ้านของคุณ

หากต้องการใช้ php 5.3.x ให้เพิ่มบรรทัดนี้ใน. bash_profile:

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

หากคุณต้องการใช้ php 5.4.x ให้เพิ่มบรรทัดนี้แทน:

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

หากคุณใช้ MAMP 3 (php 5.5.14 โดยค่าเริ่มต้น) และต้องการใช้ php 5.5.x ให้เพิ่มบรรทัดนี้แทน:

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

หากคุณมี MAMP v.1.84 หรือต่ำกว่าการกำหนดค่านี้จะใช้ได้กับ PHP ทั้งสองเวอร์ชัน:

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

หากคุณทำสิ่งนี้แล้วและยังคงได้รับข้อผิดพลาด "ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว" จาก PDO :: __ สร้างลองนี้:

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

นอกจากนี้คุณอาจต้องปรับการตั้งค่า php.ini ก่อนจึงจะสามารถใช้งาน drush ได้สำเร็จ ดูการกำหนดค่า PHP.INI ด้านล่างสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีดำเนินการ


0

ใช้ MAMP Pro ฉันสามารถใช้งานได้โดยเพิ่มบรรทัดนี้ลงใน~/.bash_profileไฟล์ของฉัน:

export PATH=$PATH:/Applications/MAMP/Library/bin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.