คำถามติดแท็ก configuration-management

7
คำแนะนำสำหรับ settings.php - Local dev, เซิร์ฟเวอร์เพื่อการพัฒนา, เซิร์ฟเวอร์สด
โดยทั่วไปแล้วหนึ่งในคำถามที่ยิ่งใหญ่ที่สุดตลอดกาล: มีวิธีใดบ้างที่คุณใช้ settings.php ในขั้นตอนการพัฒนา / จัดเตรียมเวิร์กโฟลว์ ตอนนี้ฉันมีไฟล์ settings.php ของฉันตั้งค่าดังต่อไปนี้และฉันยึดการพัฒนาของฉันตามคำสั่ง $ HOST ของเซิร์ฟเวอร์ - หมายถึงฉันสามารถทำงานบน dev.example.com สำหรับเซิร์ฟเวอร์การพัฒนา (แชร์), local.example com สำหรับคอมพิวเตอร์ในพื้นที่ของฉัน (และการตรวจสอบรหัสท้องถิ่นอื่น ๆ ของ dev) และ www.example.com (หรือเพียงแค่ example.com) สำหรับไซต์สด (รหัสนี้อยู่ในส่วน 'การตั้งค่าฐานข้อมูล' ของ settings.php): $host = $_SERVER['HTTP_HOST']; $base_url = 'http://'.$host; $cookie_domain = $host; switch($host) { case 'example.com': # Production server $db_url …

6
ฉันจะนำเข้าการกำหนดค่าบนไซต์อื่นได้อย่างไร
ฉันมีข้อผิดพลาดนี้เมื่อฉันพยายามนำเข้าการกำหนดค่าของไซต์อื่น: ไม่สามารถนำเข้าการกำหนดค่าฉากได้เนื่องจากมาจากไซต์อื่นนอกเหนือจากไซต์นี้ คุณสามารถซิงโครไนซ์การกำหนดค่าระหว่างอินสแตนซ์ที่โคลนของไซต์นี้เท่านั้น ฉันมีลูกค้า 10 คนและฉันต้องการซิงค์การกำหนดค่าไซต์ของฉันกับเว็บไซต์ 10 แห่ง UUID ของไซต์เป็นปัญหาในการแบ่งปันการกำหนดค่ากับเว็บไซต์อื่น มีวิธีแก้ไขไหม?

13
ฉันจะลบวัตถุการกำหนดค่าออกจากการกำหนดค่าที่ใช้งานอยู่ได้อย่างไร
ฉันกำลังเขียนโมดูลที่กำหนดเองสำหรับ Drupal 8 มันกำหนดวัตถุการกำหนดค่าการจัดเก็บข้อมูลในไฟล์ที่เรียกว่าโมดูล / mymod / config / ติดตั้ง / field.storage.bloom_stem.bs_twitter_ac.yml ปัญหาคือว่าสิ่งนี้จะไม่ถูกลบเมื่อฉันถอนการติดตั้งโมดูล; เห็นได้ชัดว่ามันถูกทิ้งไว้เพราะเมื่อฉันติดตั้งโมดูลอีกครั้ง drush -y pm-uninstall mymod drush cr drush -y en mymod ข้อยกเว้น 'Drupal \ Core \ Config \ PreExistingConfigException' พร้อมกับข้อความ 'วัตถุการกำหนดค่า (field.storage.bloom_stem.bs_twitter_ac) ให้โดย mymod อยู่ในการกำหนดค่าที่ใช้งานอยู่' ดังนั้นฉันต้องการบางวิธีลบวัตถุการกำหนดค่านี้ด้วยตนเอง ฉันต้องระบุรหัสเพิ่มเติมที่จะลบมันเมื่อโมดูลถูกถอนการติดตั้งหรือไม่?

6
ฉันจะอัพเดตการกำหนดค่าของโมดูลได้อย่างไร?
ฉันกำลังสร้างโมดูลที่กำหนดเองใน Drupal 8 ซึ่งมีไฟล์กำหนดค่า YAML บางไฟล์ ขณะที่ฉันพัฒนาฉันต้องเปลี่ยนและเพิ่มการกำหนดค่าเช่นเพื่อเพิ่มฟิลด์อื่นลงในเอนทิตีที่กำหนดเองของฉัน ในปัจจุบันวิธีเดียวที่ฉันได้รับ Drupal สังเกตเห็นการเปลี่ยนแปลงคือการถอนการติดตั้งโมดูลและติดตั้งใหม่ มีวิธีใดที่จะทำให้ Drupal ตรวจสอบว่าไฟล์ config ที่โมดูลจัดเตรียมไว้นั้นเหมือนกับการกำหนดค่าที่ใช้งานอยู่และถ้าไม่ให้อัพเดทการตั้งค่าที่ใช้งานอยู่ มีการจัดการปรับปรุงโมดูลอย่างไร ใน D7 hook_update_Nจะถูกใช้เพื่อเพิ่มฟิลด์โดยใช้ PHP แต่ดูเหมือนว่า CM นี้จะได้รับการจัดการโดย D8? สิ่งที่ฉันได้ลองหลังจากอัปเดตไฟล์ yml ในโมดูล: drush cr, กำหนดค่าการซิงค์ การคัดลอกไฟล์กำหนดค่าที่อัปเดตด้วยตัวเองทั้งหมดsites/default/files/config_XXX/staging/- แต่นี่ทำให้เกิดข้อผิดพลาดนี้"การกำหนดค่าแบบฉากไม่สามารถนำเข้าได้เพราะมันมาจากไซต์อื่นนอกเหนือจากไซต์นี้คุณสามารถซิงโครไนซ์การกำหนดค่าระหว่างอินสแตนซ์ . การอิมพอร์ตไฟล์ด้วยตนเองทีละคนโดยใช้ตัวจัดการการกำหนดค่า วิธีนี้ใช้ได้ผล แต่จะต้องมีวิธีอัตโนมัติมากกว่า [แก้ไข] ใช้โมดูลconfig_updateด้วยตนเองเพื่อตรวจสอบการเปลี่ยนแปลงและ 'เปลี่ยนกลับ' เป็นค่ากำหนดของโมดูล นี่เป็นคู่มืออีกครั้ง แก้ไข:จากการจัดการการกำหนดค่า - สิ่งที่ต้องทำและไม่ควรทำ DON'TS ลองเปลี่ยนการกำหนดค่าที่ใช้งานอยู่บนเว็บไซต์ของคุณโดยเปลี่ยนไฟล์ในไดเรกทอรี config / install ของโมดูล …

9
วิธีการป้องกันไม่ให้โมดูล Devel ติดตั้งในสภาพแวดล้อมการผลิต
การใช้ตัวจัดการการกำหนดค่า Drupal 8 ใหม่ฉันจะป้องกันไม่ให้ติดตั้งโมดูล Devel ในสภาพแวดล้อมบางอย่างได้อย่างไร เท่าที่ฉันรู้การติดตั้งในเครื่องของฉันหมายถึงครั้งต่อไปที่ฉันส่งออกการกำหนดค่าและย้ายไปยังสภาพแวดล้อมอื่น ๆ ของฉัน (dev, test, prod) มันจะถูกเปิดใช้งานโดยอัตโนมัติ


3
ฉันจะตั้งค่าตัวแปรในไฟล์การตั้งค่าได้อย่างไรและใช้มันจากรหัส
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบคำถามได้ใน Drupal Answers อพยพ 8 ปีที่ผ่านมา ฉันจะตั้งค่าตัวแปรในไฟล์การตั้งค่าได้อย่างไรและใช้มันจากรหัส

1
ข้อได้เปรียบทางเทคนิคของการกำหนดค่าหรือฟีเจอร์อื่น ๆ ?
ในระยะสั้นการกำหนดค่า vs คุณสมบัติใน Drupal 7 ต่อสู้! เช่นเคยข้อดีทางเทคนิคหรือข้อเท็จจริงที่ยากอื่น ๆ เนื่องจากเราไม่ได้ทำการสนทนาที่นี่ Drupal 7 เฉพาะเพื่อ จำกัด ขอบเขตเนื่องจาก CMI vs Features เป็นการสนทนาที่แตกต่างอย่างสิ้นเชิง

7
ไม่รวมการกำหนดค่าจากการนำเข้า / ส่งออก
ฉันคิดว่านี่เป็นกรณีการใช้งานที่ง่ายของระบบจัดการการกำหนดค่าใหม่ แต่ฉันไม่มีโชคในการหาวิธีแก้ปัญหานี้: ปัญหา ฉันต้องการเก็บการกำหนดค่าใน git และใช้ drush เพื่อส่งออกการกำหนดค่าในระหว่างการพัฒนาและจากนั้นในการปรับใช้การนำเข้าการกำหนดค่า ค่อนข้างคล้ายกับการทำคุณสมบัติย้อนกลับใน Drupal 7 ปัญหาของฉันคือฉันไม่ต้องการเก็บรหัสการเข้าถึงในคอมไพล์สำหรับการผสานรวมที่หลากหลาย ซึ่งส่งผลให้การกำหนดค่าเหล่านี้ถูกลบ $ drush cim -y ที่ฉันดู ฉันหวังว่าจะมีรายการ / การกำหนดค่าอย่างง่ายสำหรับการกำหนดค่าที่ควรยกเว้นในการนำเข้า / ส่งออก ดูเหมือนว่าจะมีบางจุด แต่มันจะต้องถูกลบออกอีกครั้งเนื่องจากมีวางจำหน่ายในปัจจุบัน Drupal 8 ฉันตรวจดูว่ามีการเปลี่ยนแปลงการกำหนดค่าอย่างไรเมื่อเปรียบเทียบการใช้งานและซิงค์การจัดเก็บข้อมูลเพื่อดูว่ามีสถานที่ที่ฉันสามารถลบการเปลี่ยนแปลงได้หรือไม่ดูเหมือนจะไม่เป็นเช่นนั้น ฉันดูว่า drush นำเข้าการกำหนดค่าอย่างไรเนื่องจากมีการกำหนดค่าบางอย่างแยกออกมาเป็นของตัวเอง แต่มันก็ไม่ได้ดูเหมือนว่าสิ่งนี้จะขยายออกไปได้ ฉันดูConfigEventsแต่สิ่งเหล่านี้ดูเหมือนจะเกิดขึ้นหลังจากการนำเข้าดังนั้นจึงไม่สามารถใช้สิ่งนี้ได้ ฉันทำบางสิ่งขาดหายไปหรือไม่สามารถแยกการกำหนดค่าออกจากการนำเข้า / ส่งออกได้

3
ฉันจะปรับใช้ / จัดการไซต์ที่คล้ายกันจากโปรไฟล์ที่ไม่ซ้ำได้โดยไม่ทิ้งได้อย่างไร
ฉันไม่ชอบโซลูชัน "เว็บไซต์โคลนนิ่ง " ที่บอกเป็นนัยถึงการทุ่มตลาดฐานข้อมูลและนำเข้าการถ่ายโอนข้อมูลนี้ในสภาพแวดล้อมอื่น สิ่งนี้ดูเหมือนจะไม่เหมือนโลกแห่งการปรับใช้อินสแตนซ์ต่าง ๆ ของเว็บไซต์เดียวกัน (staging / prod / dev / etc) ด้วย D7 เรามักจะใช้โปรไฟล์ที่กำหนดเองและใช้ drush เพื่อติดตั้งเว็บไซต์จากโปรไฟล์เหล่านี้ (และอาจใช้ฟีเจอร์สำหรับการซิงโครไนซ์ไซต์ในภายหลัง) สิ่งนี้ทำให้เรามีการติดตั้งใหม่ไม่มีเนื้อหาการทดสอบ แต่การแชร์การตั้งค่าที่สำคัญ การซิงโครไนซ์เนื้อหาทั่วไปจะทำได้ด้วยการโอนย้ายตัวอย่างเช่น ฉันพยายามจัดการอินสแตนซ์ D8 หลายตัวที่ใช้โปรไฟล์การติดตั้งร่วมกัน เป้าหมายสุดท้ายคือการแบ่งปันและซิงค์การกำหนดค่าไซต์ และการติดตั้งทุกครั้งจะมี UUID ของไซต์ที่แตกต่างกัน ฉันไม่ประสบความสำเร็จในการบังคับใช้system.site uuidตัวแปร config ในเวลาติดตั้ง (แน่นอนว่าฉันสามารถเปลี่ยนค่าได้ในภายหลัง แต่สำหรับฉันดูเหมือนว่ามันสายเกินไปและวัตถุทั้งหมดถูกสร้างขึ้นด้วย UUID ที่แตกต่างกันซึ่งทำให้การประสานครั้งแรกเป็นฝันร้ายซึ่งเนื้อหาเริ่มต้นบางอย่างต้องถูกลบหรือภาษาเริ่มต้นขัดข้องการซิงค์เนื่องจากไม่สามารถลบออกได้ ฯลฯ ) ในการบังคับใช้ UUID นี้ฉันพยายามใช้ไฟล์ settings.php ที่สร้างขึ้นโดยมี$config['system.site']['uuid']ค่าอยู่ภายในนั้นล้มเหลวอย่างมาก (การตั้งค่านั้นถูกข้ามไปโดยสิ้นเชิง ฉันยังดูโปรไฟล์การติดตั้งการกำหนดค่าซึ่งฉันไม่เข้าใจโดยเฉพาะอย่างยิ่งวิธีผสมโซลูชันนี้กับโปรไฟล์การติดตั้งอื่น ดังนั้นคำถามคืออะไรเป็นวิธีที่ดีที่สุดในการปรับใช้ไซต์สดจากโปรไฟล์การติดตั้ง: โดยไม่ต้อง "โคลนไซต์" …

2
ไซต์โคลนใน Drupal 8 คืออะไร
เมื่อพยายามส่งออกการกำหนดค่าไซต์ของฉันจาก Drupal 8 ไซต์หนึ่งไปยังอีกไซต์หนึ่งฉันได้รับข้อผิดพลาดต่อไปนี้ ไม่สามารถนำเข้าการกำหนดค่าฉากได้เนื่องจากมาจากไซต์อื่นนอกเหนือจากไซต์นี้ คุณสามารถซิงโครไนซ์การกำหนดค่าระหว่างอินสแตนซ์ที่ถูกโคลนของไซต์นี้เท่านั้น ดังนั้นในบริบทนี้ไซต์ที่ถูกโคลนคืออะไร ฉันจะแทนที่ข้อผิดพลาดนี้เพื่อนำเข้าการกำหนดค่าได้อย่างไร

2
การส่งออกฟิลด์สำหรับประเภทเนื้อหา
คุณสมบัติการส่งออกการกำหนดค่าของ Drupal 8 ดูเหมือนจะเป็นคุณสมบัติที่มีประโยชน์มาก อย่างไรก็ตามฉันไม่แน่ใจว่าฉันเข้าใจการทำงานของมันอย่างไร ตัวอย่างเช่นหากฉันทำการส่งออกครั้งเดียวให้เลือก "ประเภทเนื้อหา" จากนั้นเลือกประเภทเนื้อหาประเภทใดประเภทหนึ่งฉันคาดว่าการส่งออกจะมีคำอธิบายแบบเต็มของประเภทเนื้อหานั้น แต่ไม่มีข้อมูลใด ๆ เกี่ยวกับฟิลด์ในประเภทเนื้อหานั้น ดังนั้นหากคุณต้องการส่งออกการกำหนดค่าประเภทเนื้อหาสำหรับใช้ในเว็บไซต์อื่นดูเหมือนจะเป็นไปไม่ได้ที่จะทำเช่นนั้น ฉันไม่แน่ใจว่าฉันเข้าใจการใช้งานการส่งออกแบบครั้งเดียวหากพวกเขาไม่มีข้อมูลที่จำเป็นทั้งหมดสำหรับเอนทิตี ฉันพลาดอะไรไปรึเปล่า?

4
ส่งออกการกำหนดค่าเมนู [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน9 เดือนที่ผ่านมา กำลังมองหาวิธีการส่งออกการกำหนดค่าเมนู ระบบจัดการการกำหนดค่าจะส่งออกเมนู แต่จะไม่เชื่อมโยงการกำหนดค่าเมนู ฉันกำลังมองหาวิธีที่จะนำหนึ่งในเมนูเด่นเหล่านั้นลงในการควบคุมเวอร์ชันเพื่อนำเข้า / ส่งออกผ่านสภาพแวดล้อมที่หลากหลาย หากใครพบวิธีที่ดีในการทำเช่นนี้ ฉันจะขอบคุณอย่างมาก

1
ลำดับการนำเข้าการกำหนดค่าและการปรับปรุงโมดูลใดที่ควรเรียกใช้
เนื่องจากโมดูลเวอร์ชันสกีมาถูกเก็บไว้ในหน่วยเก็บคีย์ - ค่ามันไม่ซ้ำกันสำหรับแต่ละไซต์และไม่ซิงค์ผ่านการจัดการการกำหนดค่า เนื่องจากการอัปเดตอาจต้องทำการปรับแต่งที่ไม่ได้อยู่ในการกำหนดค่า (เช่นการอัพเดทฐานข้อมูล) แต่มีการเปลี่ยนแปลงอื่น ๆ ที่อาจรวมอยู่ในการกำหนดค่า (เช่นการเพิ่มค่าการกำหนดค่าใหม่) มีความเสี่ยงใด ๆ หรือไม่ที่จะรันการนำเข้าการกำหนดค่าและการอัพเดทฐานข้อมูลในลำดับใด ๆ คำสั่งซื้อที่พึงประสงค์สำหรับการใช้งานการดำเนินการเหล่านั้นคืออะไร การอัพเดท hooks จำเป็นต้องสร้างที่พักพิเศษสำหรับรายการปรับแต่งที่อาจมีการนำเข้ามาแล้วหรือไม่? มีการดำเนินงานอื่น ๆ ที่อาจจำเป็นต้องปรับปรุงสภาพแวดล้อมการผลิตอย่างเต็มที่หรือไม่?

2
การจำลองแบบ Drupal Master / Slave
ฉันได้ติดตั้งเซิร์ฟเวอร์ MySQL สองเครื่องด้วยการจำลองแบบ Master / Slave สำหรับฐานข้อมูล drupal และฉันยืนยันว่าฐานข้อมูลนั้นซิงค์และทำซ้ำ ตอนนี้ฉันกำลังพยายามชี้ drupal ไปยังฐานข้อมูลทั้งคู่โดยทั่วไปเพื่อวัตถุประสงค์ในการ failover / redundancy นั่นคือถ้าฉันต้องการรีบูตเซิร์ฟเวอร์ฐานข้อมูลหลักของฉันฉันไม่ต้องการให้เว็บไซต์ของเราล้มลง (การอ่านอย่างเดียวเป็นที่ยอมรับในสถานการณ์ความล้มเหลว) บนพื้นฐานของบทความต่อไปนี้ ฉันแก้ไขsettings.phpดังนี้: $databases['default']['default'] = array( 'driver' => 'mysql', 'database' => 'sdrupal', 'username' => 'drupal', 'password' => 'topsecret', 'host' => 'masterdb.ptp.local', ); $databases['default']['slave'][] = array( 'driver' => 'mysql', 'database' => 'sdrupal', 'username' => 'drupal', …

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