สร้างเว็บไซต์ Drupal ด้วย Composer+Drush ใน WSL

หลังจากสร้างเว็บเซิร์ฟเวอร์ในเครื่องคอมพิวเตอร์ และทดลองเปิด localhost ได้สำเร็จแล้ว คราวนี้มาลองติดตั้งเว็บไซต์ Drupal 11 ด้วยคำสั่ง Composer+Drush ว่าต้องดำเนินการอย่างไร

อ่านเพิ่มเติม - วิธีติดตั้งเซิร์ฟเวอร์บน WSL ใน Windows 11

เริ่มต้น ติดตั้ง Composer

รันคำสั่ง ดาวน์โหลด Composer

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'c8b085408188070d5f52bcfe4ecfbee5f727afa458b2573b8eaaf77b3419b0bf2768dc67c86944da1544f06fa544fd47') { echo 'Installer verified'.PHP_EOL; } else { echo 'Installer corrupt'.PHP_EOL; unlink('composer-setup.php'); exit(1); }"
php composer-setup.php
php -r "unlink('composer-setup.php');"

เมื่อดำเนินการสำเร็จ จะได้ไฟล์ composer.phar ในตำแหน่งโฟลเดอร์ที่รันคำสั่ง ต้องย้ายไปในตำแหน่งที่จะใช้งาน

sudo mv composer.phar /usr/local/bin/composer

แก้ไขสิทธิการทำงาน

sudo chmod +x /usr/local/bin/composer

ทำสอบการเรียกใช้ composer (ตรวจสอบเวอร์ชั่น)

composer -v

ดาวน์โหลด และติดตั้ง Drupal 11 เลือกใช้ฐานข้อมูล SQLite3

เมื่อ Composer พร้อมใช้งานแล้ว ก็ทำการดาวน์โหลด Drupal 11 ด้วยคำสั่ง Composer ได้เลย

composer create-project drupal/recommended-project drupal

จากนั้นใช้คำสั่ง PHP ในการติดตั้ง Drupal โดยคำสั่งนี้จะสร้างไฟล์ฐานข้อมูลที่เป็น SQLite3 ให้แบบอัตโนมัติ

cd drupal && php -d memory_limit=256M web/core/scripts/drupal quick-start standard

เมื่อติดตั้งเรียบร้อยแล้ว จะได้ Username (admin) และ Password (random) สำหรับใช้ล็อกอินเข้าเว็บไซต์ Drupal ที่สร้างขึ้น

อ่านเพิ่มเติม - สร้างเว็บ Drupal ด้วย composer แค่พิมพ์ 2 บรรทัด เสร็จ!

แก้ไข Apache2 config เปลี่ยนตำแหน่ง DocumentRoot

หลังจากติดตั้ง Drupal เสร็จแล้ว หากกลับมาเปิดเบราว์เซอร์แล้วพิมพ์ localhost (ซึ่งจะแสดงตำแหน่งโฟลเดอร์ /var/www/html) จะพบว่า เปิดเว็บไซต์ไม่ได้ พบแค่โฟลเดอร์ drupal เท่านั้น

กรณีนี้ ถือว่าเป็นเรื่องปกติ เพราะในการติดตั้งโปรเจค drupal จะมีการสร้างโฟลเดอร์ย่อย drupal/web เพิ่มเข้ามา ซึ่งจำเป็นต้องแก้ไขตำแหน่งโฟลเดอร์ที่ใช้เรียกข้อมูลเว็บมาแสดงผล

กลับไปที่หน้าต่าง WSL/Ubuntu แล้วพิมพ์คำสั่ง VIM เพื่อเปิดไฟล์ข้อมูลของ Apache2 config สำหรับแก้ไข DocumentRoot

sudo vi /etc/apache2/sites-available/000-default.conf

โดยโค้ดของเดิมคือ

DocumentRoot /var/www/html

ให้เพิ่มเป็นดังนี้

DocumentRoot /var/www/html/drupal/web

แล้วเติมคำสั่งเพิ่มเข้าไป ต่อจากบรรทัด DocumentRoot เพื่อรองรับการทำงานของ Drupal (คำสั่งนี้ มีผลกับไฟล์ .htaccess เพื่อทำ clean URL)

<Directory /var/www/html/drupal/web>
    AllowOverride All
    Require all granted
</Directory>

เมื่อแก้ไขเรียบร้อยแล้ว ให้ทำการบันทึก แล้ว restart Apache2

sudo service apache2 restart

แก้ไข Owner และ Permissions โฟลเดอร์ /sites/default/files ให้ Drupal เขียนไฟล์ได้

ในจุดนี้ หากไม่ได้ทำการแก้ไข Owner และ Permissions ที่ตำแหน่งโฟลเดอร์ /sites/default/files ของระบบ Drupal ในการเปิดเว็บไซต์ อาจจะพบ Error Message

ให้กลับไปที่หน้าต่าง WSL/Ubuntu แก้ไขตามนี้

sudo chown -R $USER:www-data /var/www/html/drupal/web/sites/default/files
sudo chmod -R 775 /var/www/html/drupal/web/sites/default/files

เว็บไซต์ก็จะสามารถเปิดได้ตามปกติ

ให้ล็อกอินเข้าเว็บไซต์ Drupal ที่เพิ่งสร้าง ด้วย Username และ Password ที่ได้จากด้านบน

ติดตั้ง Drush และการเรียกใช้งาน

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

การติดตั้ง Drush ทำได้โดยพิมพ์คำสั่ง

composer require drush/drush

เมื่อได้ Drush เรียบร้อย คราวนี้มาลองใช้งาน โดยการติดตั้งโมดูล Coffee เครื่องมือค้นหาเมนูคำสั่งต่างๆ ของ Admin

เริ่มต้น ดาวน์โหลดโค้ดไฟล์ของโมดูล Coffee

composer require drupal/coffee

เมื่อดาวน์โหลดเสร็จแล้ว ให้ทำการเปิดใช้งาน รวมถึง ล้างแคช เพื่อพร้อมทำงานต่อไป

vender/bin/drush en coffee -y
vender/bin/drush cr

การส่งความคิดเห็น ถือว่าคุณยอมรับ ข้อกำหนดการใช้งาน และ นโยบายความเป็นส่วนตัว ของเรา