Menu

Tuesday, February 5, 2019

[Server - Ubuntu] การสร้างหรือต่ออายุ Let's Encrypt Certificate สำหรับ Website
[Server - Ubuntu] How to Create or Renew Let's Encrypt Certificate for Website

สมมติว่า ได้ลง certbot ไว้ในเครื่อง server เรียบร้อยแล้ว
  1. รันคำสั่ง sudo certbot certonly -d {domain_name}
  2. เลือก option ที่ 2 เพื่อใช้วิธีการระบุ path ของ public folder ของเว็บแทนการสร้าง standalone web server ขึ้นมา
  3. ใส่ path ของ public folder แล้วกด enter 
ไฟล์ certificates ที่ถูกสร้างใหม่ จะอยู่ใน folder /etc/letsencrypt/live/{domain_name} ซึ่งเราสามารถนำไฟล์นี้ไปแทนที่ไฟล์ certificates เดิมที่กำลังจะหมดอายุได้เลย

[Laravel - Command] วิธีการเรียกใช้ command ที่ถูกต้อง จากอีก command นึงใน Laravel
[Laravel - Command] How to Call Laravel Command from Other Commands

บางครั้งเราต้องการสร้าง command เพื่อเรียกใช้ชุด command ที่ได้สร้างไว้ก่อนหน้าแล้ว

สมมติว่า มี 2 commands คือ command A และ B แล้วเราสร้าง command C มาอีกตัว เพื่อเรียกใช้ 2 commands นี้

ถ้าหากเป็นการเรียกรัน command จาก controller ปกติ ก็จะใช้คำสั่งดังนี้
Artisan::call('A');
Artisan::call('ฺB');

แต่สำหรับการเรียกรัน command จากอีก command นึง ห้ามใช้ Artisan::call โดยเด็ดขาด เนื่องจากถ้าหากเกิด exception ขึ้น มันจะไม่ throw exception ออกมายัง command C ทำให้ command C สามารถรันต่อจนเสร็จได้ ถึงแม้จะเกิด exception ใน command A หรือ B ซึ่งเราจะไม่สามารถรู้ได้เลยว่า มันทำงานเสร็จแล้วจริงๆหรือมันเกิด exception ขึ้น ถ้าเราไม่ดูจาก error logs

ในความเป็นจริงแล้ว เราควรจะรู้ว่า command ใดเกิด exception ขึ้น และไม่มีความจำเป็นที่ต้องรัน command อื่นๆต่อไป ในกรณีที่ exception ได้เกิดขึ้นแล้ว ดังนั้นให้ใช้ $this->call แทนดังนี้
$this->call('A');
$this->call('ฺB');

อ่านเพิ่มเติม: https://laravel.com/docs/5.7/artisan#calling-commands-from-other-commands