Score:0

CSS, JS, ... ไม่ได้สร้างโดย drush site:install

ธง gq

การติดตั้ง Drupal ล้มเหลวหลังจากทำตามขั้นตอนต่อไปนี้ในกล่อง Debian (สร้างฐานข้อมูลแล้วและให้สิทธิ์แก่ผู้ใช้เฉพาะ):

(ผู้ใช้) $ ผู้แต่ง create-project drupal/recommended-project myproject
# ... ถามว่าการติดตั้งผู้แต่ง/ตัวติดตั้ง, drupal/core-composer-scaffold และ drupal/core-project-message นั้นเหมาะสมหรือไม่ ให้ตอบ ใช่ 
# ... ส่งคำเตือน 2 รายการเกี่ยวกับหลักคำสอน/การสะท้อนกลับ และ webmozart/path-util ล้าสมัย
(ผู้ใช้) $ cd myproject
(ผู้ใช้) $ ผู้แต่ง นักแต่งเพลงต้องการ drush/drush
(ผู้ใช้) $ drush ไซต์:ติดตั้ง --locale=fr
# ... ขอข้อมูลรับรอง MySql
# ... แสดงข้อมูลประจำตัวของผู้ดูแลระบบ

ทุกอย่างดำเนินไปอย่างราบรื่นโดยไม่มีข้อความแสดงข้อผิดพลาด มีเพียงคำถาม 3 ข้อและคำเตือน 2 ข้อเท่านั้นที่กล่าวถึงด้านบน

หลังจากเรียกใช้คำสั่งเหล่านั้นตามเอกสารการติดตั้ง Drupal (https://www.drupal.org/docs/develop/using-composer/using-composer-to-install-drupal-and-manage-dependencies#s-install-drupal-using-the-command-line) ไซต์ควรสามารถเข้าถึงได้ผ่านทางเว็บ แต่เมื่อฉันเรียกดูเส้นทางที่กำหนดค่าไว้ (DocumentRoot ถูกตั้งค่าเป็นไดเร็กทอรี "เว็บ") ฉันได้รับเพจที่ไม่มีสไตล์ (มีลักษณะเหมือนกันกว่า CSS ใช้กับไซต์ drupal 8 ไม่ได้ แต่ stylesheets href เป็น ตั้งค่าให้ "/").

ถ้าฉันใช้เส้นทางการติดตั้งผ่านเว็บแทนการเรียกใช้ Drush ทุกอย่างก็ดำเนินไปได้ด้วยดี ยกเว้นการรบกวนเล็กน้อยกับการตั้งค่าสิทธิ์ภายใต้ 'เว็บไซต์/ไซต์/ค่าเริ่มต้น'

การเปรียบเทียบไดเร็กทอรี "เว็บ" ทั้งสองแสดงว่า (นอกเหนือจากความแตกต่างที่ไม่สำคัญ เนื่องจากแฮชต่างกัน) ไม่มีไดเร็กทอรี "css", "js", "languages" หรือ "php" สร้างและบรรจุภายใต้ Drush ที่ติดตั้ง "web/sites/default/files" ไดเรกทอรี

ผมทำอะไรผิดหรือเปล่า? ฉันไม่พบความช่วยเหลือในเอกสารของ Drupal หรือโดย กูเกิลไปรอบ ๆ

  • Drupal : 9.3.9
  • ผู้แต่ง : 2.2.9
  • ดรัช : 11.0.7

ขอบคุณล่วงหน้า

cn flag
เป็นไปได้มากที่จะเป็นสิทธิ์ คุณติดตั้งกับผู้ใช้หนึ่งราย จากนั้นให้บริการบนเว็บด้วยผู้ใช้รายอื่นที่ไม่สามารถเขียนไปยังโฟลเดอร์ที่ผู้ใช้รายแรกสร้างขึ้นเป็นส่วนหนึ่งของการติดตั้ง ตรวจสอบให้แน่ใจว่า `www-data` หรือเทียบเท่าสามารถเขียนไปยังโฟลเดอร์ไฟล์และโฟลเดอร์ tmp
phep avatar
gq flag
@Clive ขอบคุณสำหรับความคิดเห็นของคุณ แต่ตามที่ระบุไว้ในคำถามของฉัน ปัญหาจะเกิดขึ้นก็ต่อเมื่อการติดตั้งทั้งหมดถูกเรียกใช้จากบรรทัดคำสั่ง ซึ่งแน่นอนว่าเป็นผู้ใช้คนเดียวกัน ดังนั้นจึงไม่มีปัญหาเกี่ยวกับการอนุญาต ปัญหาทั่วไปที่คุณอธิบายเกี่ยวข้องกับการติดตั้งผ่านเว็บ แต่ปัญหานี้ทำงานได้ดีในกรณีของฉัน
cn flag
คุณได้รับ "เพจที่ไม่ได้จัดรูปแบบ" ผ่านบรรทัดคำสั่งได้อย่างไร สิ่งที่คุณอธิบายยังคงแสดงให้เห็นอย่างชัดเจนถึงปัญหาการอนุญาต เรียกใช้ `sudo -u www-data touch docroot/sites/default/files/test.txt` เพื่อให้แน่ใจว่า หากคุณได้รับข้อผิดพลาดเกี่ยวกับสิทธิ์ในการดำเนินการนั้น คุณอาจพบปัญหาแล้ว
phep avatar
gq flag
@Clive ฉันแก้ไขคำถามเพื่อพยายามทำให้ชัดเจนขึ้นว่าปัญหาเกิดขึ้นเมื่อทำการติดตั้งด้วยการเรียกใช้ Drush ไม่ใช่โดยผ่าน "core/install.php" ตามที่ระบุไว้ ถ้าฉันติดตั้งโดยใช้อินเทอร์เฟซเว็บ ฉันพบปัญหาไม่มากนัก สิ่งเหล่านี้เกิดขึ้นเมื่อฉันใช้ `drush site:install' แทน ตามเอกสาร การเรียกใช้คำสั่งนี้ควรเท่ากับการไปดำเนินการเว็บตามปกติ (ฉันหมายถึงการเรียกดูที่ core/install.php, ... ตอนนี้ชัดเจนกว่านี้ไหม?
ru flag
Drush ไม่ได้สร้าง JS หรือ CSS หรือไฟล์แคช สิ่งนี้เกิดขึ้นตามความต้องการโดยไปที่หน้าต่างๆ ในเบราว์เซอร์ และหากสิ่งเหล่านั้นไม่ได้สร้างขึ้นตามความต้องการ ก็แทบจะแน่นอนว่าเป็นเพราะการอนุญาต และแม้แต่การติดตั้งเว็บ *ทำงานได้ดี ยกเว้น **ความรำคาญเล็กน้อยกับการตั้งค่าสิทธิ์ภายใต้ 'เว็บไซต์/เว็บไซต์/ค่าเริ่มต้น'***
cn flag
ใช่ ฉันโต้เถียงกับการตั้งค่าเหล่านี้วันแล้ววันเล่า มันคุ้นเคยกับฉันมาก :) ฉันคิดว่าฉันเข้าใจแล้วว่าสับสนตรงไหน - โฟลเดอร์ css/js/php ไม่ได้สร้างขึ้นโดยการติดตั้งไซต์ แต่สร้างขึ้นโดย คำขอเว็บที่ตามมา ดังนั้นคุณจึงติดตั้งผ่านเว็บ โฟลเดอร์ `files` เป็นของ `www-data` และในคำขอเว็บที่ตามมา `www-data` สามารถเขียนไปยังโฟลเดอร์นั้นได้ เมื่อคุณติดตั้งผ่าน CLI `files` จะเป็นของ `foo_user` จากนั้นเมื่อเรียกใช้คำขอเว็บที่ตามมา `www-data` จะไม่สามารถเขียนไปยังโฟลเดอร์นั้นได้เนื่องจาก `foo_user` เป็นเจ้าของ
phep avatar
gq flag
ขอบคุณ @Clive และ @Hudri ที่สละเวลาตอบ แต่คุณช่วยบอกฉันหน่อยได้ไหมว่าการเรียกใช้ 'drush site:install' มีประโยชน์อย่างไร หากยังคงต้องใช้วิธี `core/install.php` ในภายหลัง . ฉันคิดว่า drush จะทำให้เราติดตั้งและกำหนดค่าไซต์ Drupal ได้อย่างแม่นยำในแบบสคริปต์และทำซ้ำได้
cn flag
คุณทำสำเร็จแล้ว นั่นคือสิ่งที่ `site:install` ทำ - คุณไม่จำเป็นต้องไปที่ core/install.php ในภายหลัง (อันที่จริง คุณทำไม่ได้ มันจะบอกคุณว่าไซต์นั้นติดตั้งแล้ว) เว้นแต่กรณีนี้จะเป็นกรณีขอบซึ่งอิงจากสิ่งที่มองไม่เห็นในบริบทจนถึงขณะนี้ สไตล์แทบจะขาดหายไปอย่างแน่นอน เนื่องจากเว็บเซิร์ฟเวอร์ไม่สามารถเขียนไปยังไซต์/ค่าเริ่มต้น/ไฟล์ได้ ฉันเพิ่งโพสต์คำตอบที่มีรายละเอียดทั้งสองกระบวนการ หวังว่าจะช่วยให้ชัดเจนขึ้น
leymannx avatar
ne flag
เพียงเพื่อความสมบูรณ์: ในทั้งสองกรณีมีไฟล์ .htaccess อยู่ในเว็บ/ และ RewriteBase ไม่ได้แสดงความคิดเห็นหรือไม่
Score:0
ธง cn

โฟลเดอร์ที่คุณกล่าวถึงไม่ได้สร้างขึ้นโดยกระบวนการติดตั้งไซต์ แต่สร้างขึ้นโดยคำขอของเพจที่ส่งไปยังไซต์ Drupal ที่เป็นผลลัพธ์

เมื่อคุณติดตั้งผ่าน UI สิ่งนี้จะเกิดขึ้น:

  • Drupal ได้รับการติดตั้ง
  • sites/default/files ถูกสร้างและเป็นเจ้าของโดยเว็บเซิร์ฟเวอร์ (โดยทั่วไปคือ www-ข้อมูล)
  • คุณถูกเปลี่ยนเส้นทางไปยังส่วนหน้าของไซต์ Drupal สร้างสินทรัพย์และพยายามคงไว้ที่ไซต์/ค่าเริ่มต้น/ไฟล์
  • คำขอทำงานเป็น www-ข้อมูลโฟลเดอร์นี้เป็นของ www-ข้อมูลดังนั้นสิ่งที่ดีทั้งหมด - ไฟล์ถูกสร้างขึ้น

เมื่อคุณติดตั้งผ่าน CLI จะแตกต่างกันเล็กน้อย:

  • Drupal ได้รับการติดตั้ง
  • sites/default/files ถูกสร้างขึ้นและเป็นเจ้าของโดยผู้ใช้ที่คุณเรียกใช้ หยด ซึ่งโดยปกติแล้วจะไม่เป็นเช่นนั้น www-ข้อมูล (ถ้าใช่คุณไม่น่าจะมีปัญหาเหล่านี้)
  • คุณเยี่ยมชมไซต์ในเบราว์เซอร์ Drupal สร้างสินทรัพย์และพยายามคงไว้ที่ไซต์/ค่าเริ่มต้น/ไฟล์
  • คำขอทำงานเป็น www-ข้อมูลแต่ผู้ใช้ของคุณเป็นเจ้าของโฟลเดอร์ ดังนั้นจึงไม่มีการสร้างลูกเต๋า - ไฟล์จะไม่ถูกสร้างขึ้น

ระดับสูง คำตอบคือเพื่อให้แน่ใจว่า www-ข้อมูล สามารถเขียนไปยังโฟลเดอร์ sites/default/files หลังจากที่คุณติดตั้งผ่าน CLI เดอะ การรักษาความปลอดภัยสิทธิ์และการเป็นเจ้าของไฟล์ docs มีคำแนะนำบางประการเกี่ยวกับวิธีที่คุณสามารถทำสิ่งนี้ให้สำเร็จได้

phep avatar
gq flag
คุณช่วยบอกฉันหน่อยได้ไหมว่าคุณหมายถึงอะไรในขั้นตอนที่ 3 ของกระบวนการติดตั้ง CLI ที่คุณอธิบายเมื่อคุณพูดว่า "คุณเยี่ยมชมไซต์ในเบราว์เซอร์" คุณหมายถึง URL ใด ๆ (ที่เกี่ยวข้องกับไซต์) หรือ _end เฉพาะของ URL การติดตั้ง_ อันใดอันหนึ่ง และในกรณีนี้ ฉันถามคำถามซ้ำ: การใช้เส้นทาง Drush คืออะไร ขอบคุณอย่างไรก็ตามฉันขอขอบคุณที่คุณช่วย
cn flag
ฉันหมายถึง URL ใดๆ ที่ส่วนหน้าของเว็บไซต์ ไม่ใช่ URL ใดโดยเฉพาะ เมื่อเปิดใช้การรวม CSS/JS (ตามค่าเริ่มต้นหลังการติดตั้ง) ไฟล์รวมจะถูกสร้างขึ้นตามความต้องการเมื่อมีการเยี่ยมชมเพจ และแคชหลังจากนั้น ปัญหาปัจจุบันของคุณดูเหมือนว่าไม่สามารถเขียนไฟล์รวมได้ และขั้นตอนที่คุณระบุไว้เพื่อไปยังจุดนี้สนับสนุนแนวคิดดังกล่าว
phep avatar
gq flag
ขอขอบคุณสำหรับความอดทนของคุณ. เบาะแสพื้นฐานดังกล่าวน่าเสียดายที่ไม่มีอยู่ใน Drupal docs ฉันต้องยอมรับว่าฉันไม่เคยข้ามเส้นทางของเว็บแอพที่รอการเชื่อมต่อที่ไม่ตรงเป้าหมาย / ไม่ผ่านการรับรองความถูกต้องเป็นครั้งแรกเพื่อให้กระบวนการติดตั้งเสร็จสมบูรณ์ ;-)
cn flag
มันหลีกเลี่ยงไม่ได้เพราะการสร้างสินทรัพย์ควรจะเป็นแบบไดนามิก ไม่ใช่ส่วนหนึ่งของกระบวนการติดตั้ง แต่ฉันเข้าใจที่คุณหมายถึง มันน่าสับสนถ้าคุณยังไม่เคยทำมาก่อนร้อยครั้ง

โพสต์คำตอบ

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