สอนติดตั้ง Raspbian OS ลงบน micro SD card ด้วยโปรแกรม Etcher

Raspberry Pi 2 Bundle

สวัสดีครับ วันนี้ผมจะมาสอนติดตั้งระบบปฏิบัติการ Raspbian ลงบน micro SD card เพื่อนำไปใช้กับบอร์ด Raspberry Pi กันครับ ซึ่งในบทความนี้จะไม่รวมการตั้งค่า raspi-config เมื่อเปิดเครื่องครั้งแรกนะครับ, ก่อนเราจะเริ่มลงมือทำ เรามาเตรียมเครื่องไม้เครื่องมือที่ต้องใช้กันก่อนครับ

สิ่งที่ต้องเตรียม

  1. micro SD card สำหรับติดตั้งระบบปฏิบัติการ Raspbian ลงไป
    • แนะนำให้ใช้เป็นยี่ห้อ SanDisk ครับ (เป็นความชอบส่วนบุคคล)
    • Class ให้เลือกเป็น Class 10 จะได้ไม่มาหงุดหงิดเรื่องความเร็วทีหลังครับ
    • ความจุจะเอากี่ GB ก็แล้วแต่การนำไปใช้งานครับ ถ้ายังไม่แน่ใจว่าจะเอาไปใช้งานอะไรบ้างก็ให้เลือกเป็น 16GB ก็ได้ครับ เพราะว่าตั้งแต่ 8GB ลงมาน่าจะหาซื้อยากแล้ว
    • ยิ่งเราเลือกรุ่นที่ความเร็วในการอ่าน/เขียนเยอะมากเท่าไหร่ ราคาก็จะยิ่งสูงครับ
    • อ้อ! เลือกอันที่มี SD Adapter แถมมาด้วยก็ดีนะ (ตัวแปลง micro SD card เป็น SD card แบบธรรมดา)
    • คลิกที่นี่เพื่อเลือกซื้อ micro SD card ผ่านเว็บไซต์ Advice
  2. External Card Reader (กรณีคอมฯ ไม่มีช่องเสียบ SD card/micro SD card หรือว่ามีแต่ใช่การไม่ได้) – หากลองเช็คคอมฯ ตัวเองดู แล้วพบว่าไม่มีช่องเสียบ SD card หรือ micro SD card หรือว่ามีแต่ใช้การไม่ได้ ให้ซื้อ External Card Reader (ตัวแปลง SD card/micro SD card เป็นพอร์ต USB) เตรียมไว้ด้วยครับ คลิกที่นี่เพื่อเลือกซื้อ External Card Reader ผ่านเว็บไซต์ Advice
  3. ไฟล์ระบบปฏิบัติการ Raspbian (Raspbian Image) – ดาวน์โหลดไฟล์ระบบปฏิบัติการ Raspbian ที่เราจะใช้ติดตั้งลงไปบน micro SD card มาเตรียมไว้ด้วยครับ คลิกที่นี่เพื่อไปหน้าดาวน์โหลด Raspbian เวอร์ชั่นล่าสุด
  4. โปรแกรม Etcher ใช้สำหรับติดตั้ง Raspbian Image ลงบน micro SD card – จริงๆ แล้วโปรแกรมประเภทนี้มีให้ใช้หลายตัวครับ, แต่ว่าโปรแกรม Etcher มันเจ๋งกว่าโปรแกรมตัวอื่นตรงที่มันมีให้ใช้ได้ทั้งบนระบบปฏิบัติการ Windows, macOS และ Linux ครับ แปลว่าไม่ว่าคุณจะเป็นผู้ใช้ระบบปฏิบัติการยอดฮิตตัวไหน คุณก็สามารถทำตามบทความนี้ด้วยวิธีเดียวกันได้ไม่ยากครับ คลิกที่นี่เพื่อไปหน้าดาวน์โหลด Etcher

ขั้นตอนการติดตั้ง Raspbian Image ลงบน micro SD card

หลังจากที่เตรียมเครื่องไม้เครื่องมือกันพร้อมแล้ว เราก็มาเริ่มติดตั้ง Raspbian Image ลงบน micro SD card กันได้เลยครับ

ขั้นแรกให้เปิดโปรแกรม Etcher ขึ้นมาก่อนครับ หน้าตาโปรแกรมตอนเปิดขึ้นมาจะได้แบบนี้ครับ

มาถึงตรงนี้หลายๆ คนคงจะร้องอ๋อแล้วครับ ว่าต้องทำยังไงต่อ เพราะหน้าตาโปรแกรมมันบอกซ๊ะขนาดนั้น การใช้งานหลังจากเปิดโปรแกรมขึ้นมามีแค่ 3 ขั้นตอนเท่านั้นครับ

ขั้นตอนที่ 1

กดปุ่ม Select Image จากนั้นเลือกไฟล์ Raspbian Image ที่เราโหลดมาเป็นไฟล์ .zip ครับ เช่น 2017-09-07-raspbian-stretch.zip (ถ้าเป็นโปรแกรมอื่นๆ ส่วนใหญ่จะต้อง unzip ให้ได้ไฟล์ .img ออกมาก่อนครับ)

ขั้นตอนที่ 2

เสียบ micro SD card เข้ากับคอมฯ เลยครับ อาจจะใช้ SD Adapter หรือ External Card Reader อันนี้ก็แล้วแต่ครับ

พอเสียบ micro SD card เรียบร้อย ตัวโปรแกรมก็จะเลือกไดร์ฟ micro SD card ที่เราเพิ่งเสียบเข้าไปให้โดยอัตโนมัติครับ

*** กรณีเสียบที่ micro SD card, Flash Drive หรือ External HardDisk Drive ตัวอื่นๆ เอาไว้ให้กดปุ่ม Change แล้วเลือกไดร์ฟให้ถูกต้อง ให้เป็น micro SD card ที่เราเพิ่งเสียบเข้าไปครับ ย้ำนะครับ เลือกไดร์ฟให้ถูกต้อง ไม่อย่างนั้นข้อมูลในไดร์ฟอื่นของคุณอาจสูญหายได้ โดยสังเกตได้จากความจุว่ากี่ GB และ Label ที่แสดงครับ หรือถ้าไม่มั่นใจจริงๆ ว่าที่เลือกอยู่ถูกตัวมั้ย ให้ดึงอุปกรณ์ประเภทเก็บข้อมูลตัวอื่นๆ ออกไปก่อนก็ได้ครับ ***

ขั้นตอนที่ 3

กดปุ่ม Flash! เพื่อเริ่มติดตั้ง Raspbian Image ลง micro SD card ได้เลยครับ ระยะเวลาติดตั้งก็ราวๆ 15นาที

เมื่อติดตั้งเสร็จแล้วโปรแกรมจะแจ้งว่า Flash Complete! หลังจากนั้นก็ถอด micro SD card ไปเสียบใช้งานกับ Raspberry Pi ได้เลยครับ

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีติดตั้ง Docker บน Ubuntu

Docker ปัจจุบันมี 2 Edition คือ Docker CE (Community Edition) และ Docker EE (Enterprise Edition) โดยความแตกต่างของทั้ง 2 Edition นี้ คือ

  1. Docker CE = Docker ตัวเดิม เวอร์ชั่นฟรี (แค่เปลี่ยนชื่อ)
  2. Docker EE = Docker ตัวใหม่ เวอร์ชั่นเสียเงิน

โดยในบทความนี้จะสอนติดตั้ง Docker CE หรือ Docker เวอร์ชั่นฟรีบน Ubuntu กันครับ

Ubuntu เวอร์ชั่นที่สามารถติดตั้ง Docker CE ได้

  • Ubuntu 64-bit เวอร์ชั่น 16.04 / 18.04 / 18.10

ขั้นตอนการติดตั้ง Docker CE

ติดตั้ง package ที่ทำให้ apt สามารถใช้งาน repository ผ่าน HTTPS ได้

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

เพิ่ม GPG key ของ Docker

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

เพิ่ม repository ของ Docker

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

ทำให้ apt รู้จัก package จาก repository ที่เราเพิ่งเพิ่มเข้าไปใหม่

sudo apt-get update

ติดตั้ง Docker CE

sudo apt-get install -y docker-ce docker-ce-cli containerd.io

เสร็จแล้วครับ ตอนนี้คุณก็สามารถเริ่มต้นใช้งาน Docker ได้แล้ว !

ขั้นตอนการติดตั้ง docker-compose

เช็คเลขเวอร์ชั่นของ docker-compose ตัวล่าสุดจาก GitHub

DOCKER_COMPOSE_VER=$(curl -s https://github.com/docker/compose/tags | grep "release" | grep -v rc | grep -oP "\d{1,2}\.\d{1,2}\.\d{1,2}" | head -n1)

ดาวน์โหลด docker-compose โดยอิงจากเลขเวอร์ชั่นที่ได้มาจากคำสั่งก่อนหน้า

sudo curl -L "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VER/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

ทำให้ไฟล์ docker-compose ที่โหลดมาสามารถ execute ได้

sudo chmod +x /usr/local/bin/docker-compose

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีติดตั้ง OWASP ZAP บน Ubuntu

วิธีติดตั้ง OWASP ZAP

1. ดาวน์โหลด OWASP ZAP เวอร์ชั่น 2.7.0 ที่เป็นไฟล์ archive ไปไว้ที่ไดเรคทอรี่ /tmp

wget -c -P /tmp https://github.com/zaproxy/zaproxy/releases/download/2.7.0/ZAP_2.7.0_Linux.tar.gz

2. extract ไฟล์ archive ไปไว้ที่ไดเรคทอรี่ /opt

sudo tar xvf /tmp/ZAP_2.7.0_Linux.tar.gz -C /opt

3. ถึงตอนนี้ก็ติดตั้งเสร็จแล้วครับ, เริ่มต้นใช้งาน OWASP ZAP ได้เลย 🙂

/opt/ZAP_2.7.0/zap.sh

การตั้งค่า OWASP ZAP เบื้องต้น

วิธีติดตั้ง Root CA certificate บน Web Browser

ปัญหาที่เราจะพบเมื่อเราไม่ติดตั้ง Root CA certificate บน Web Browser เอาไว้ คือ เมื่อเราเข้าเว็บไซต์ที่เป็น HTTPS จะมีข้อความแจ้งเตือนเกี่ยวกับ invalid security certificate แบบในรูปครับ

*** วิธีแก้ไข คือ Export Root CA certificate ออกมาจากโปรแกรม OWASP ZAP แล้วเอาไปติดตั้งลงบน Web Browser ครับ ***

วิธี Export Root CA certificate

  1. เปิดโปรแกรม OWASP ZAP
  2. ไปที่เมนู Tools > Options > Dynamic SSL Certificates
  3. คลิ๊กปุ่ม Save เพื่อ Export ไฟล์ Root CA certificate ออกมา (จำไว้ด้วยครับ ว่าเราตั้งชื่อไฟล์ว่าอะไร แล้วบันทึกไว้ที่ไหน)

วิธีติดตั้ง Root CA certificate บน Firefox

  1. เปิดโปรแกรม Firefox
  2. พิมพ์ about:preferences ที่ address bar แล้วกดปุ่ม Enter
  3. ไปที่ Advanced > Certificates > View Certificates > Authorities
  4. กดปุ่ม Import แล้วเลือกไฟล์ Root CA certificate ที่เราเพิ่ง Export ออกมา
  5. จากนั้นจะมีหน้าต่างใหม่โผล่ขึ้นมา คลิ๊กให้มีเครื่องหมายถูกที่ Trust this CA to identify websites จากนั้นกดปุ่ม OK

วิธีแก้ปัญหา OWASP ZAP มีสถานะเป็น Always on Top เมื่อ Traffic ถูก Intercept

  1. เปิดโปรแกรม OWASP ZAP
  2. ไปที่เมนู Tools > Options > Breakpoints
  3. คลิ๊กเอาเครื่องหมายถูกออกที่ ZAP always on top when breakpoint hit
  4. คลิ๊กปุ่ม OK

วิธีตั้งค่า Firefox ให้ใช้งาน OWASP ZAP เป็น Proxy

  1. เปิดโปรแกรม Firefox
  2. พิมพ์ about:preferences ที่ address bar แล้วกดปุ่ม Enter
  3. ไปที่ Advanced > Network > Connection > Settings
  4. เลือก Manual proxy configuration
  5. กำหนด HTTP Proxy=127.0.0.1, Port=8080
  6. คลิ๊กให้มีเครื่องหมายถูกที่ Use this proxy server for all protocols
  7. ตรง No Proxy for ลบออกให้หมด หากจะใช้ OWASP ZAP เพื่อทดสอบกับ localhost หรือ 127.0.0.1 ด้วย
  8. กดปุ่ม OK

วิธีทำให้ OWASP ZAP ใช้ Tor เป็น Proxy

1. สร้างไฟล์สำหรับเรียกใช้งาน OWASP ZAP ที่ใช้ Tor เป็น Proxy ชื่อว่า zap-tor.sh

sudo cp /opt/ZAP_2.7.0/zap.sh /opt/ZAP_2.7.0/zap-tor.sh

2. แก้ไขไฟล์ zap-tor.sh ให้ใช้ Tor เป็น Proxy โดยส่งผ่าน option ไปที่ JVM (ZAP เป็น JAVA application)

sudo sed 's/exec java ${JMEM}/exec java -DsocksProxyHost=127.0.0.1 -DsocksProxyPort=9050 ${JMEM}/g' -i /opt/ZAP_2.7.0/zap-tor.sh

3. เรียกใช้งาน OWASP ZAP ที่ใช้ Tor เป็น Proxy

/opt/ZAP_2.7.0/zap-tor.sh

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

Raspberry Pi คืออะไร ?

Raspberry Pi คือ บอร์ดคอมพิวเตอร์ขนาดเล็ก (Single-Board Computer หรือ SBC) ที่ถูกพัฒนาขึ้นโดย Raspberry Pi Foundation มีคุณสมบัติเด่น คือ ติดต่อ และความคุมอุปกรณ์อิเล็กทรอนิกส์ได้

Raspberry Pi 3 B+ by Gareth Halfacree from Bradford, UK [CC BY-SA 2.0], via Wikimedia Commons
Raspberry Pi Zero
Raspberry Pi Zero By Evan-AmosOwn work, Public Domain, Link
Raspberry Pi Compute Module
Raspberry Pi Compute Module By Raspberry Pi Foundation (Raspberry Pi Foundation) [CC BY-SA 4.0], via Wikimedia Commons

ลักษณะทั่วไปของ Raspberry Pi

  • เป็นคอมพิวเตอร์ที่ มีความสามารถในการใช้งานทั่วไป เช่น ใช้เพื่อทำงานเอกสาร, ดูหนัง ฟังเพลง, ใช้เพื่อการคำนวณต่างๆ หรือจะทำเป็น Web Server ก็ย่อมได้
  • เป็นคอมพิวเตอร์ที่ มีขนาดเล็ก
  • เป็นคอมพิวเตอร์ที่ มีราคาถูก เพราะผู้พัฒนามีเจตนาสร้างขึ้นมาเพื่อให้เป็นสื่อการเรียนการสอนทางด้านคอมพิวเตอร์ และเพื่อให้กลุ่มประเทศที่กำลังพัฒนาสามารถมีคอมพิวเตอร์ใช้ได้ทั่วถึงขึ้น
    • Raspberry Pi 3 Model B+ ราคาประมาณ 35 USD (ประมาณ 1,200 บาท)
    • Raspberry Pi Zero ราคาประมาณ 5 USD (ประมาณ 170 บาท)
    • Raspberry Pi Compute Module 3 ราคาประมาณ 30 USD (ประมาณ 1,000 บาท)
    • *** ราคานี้เป็นราคาโดยประมาณที่ยังไม่รวมค่านำเข้าไทย ค่าภาษี และ ราคาที่แต่ละร้านจะบวกเพิ่มเพื่อเป็นกำไร ***
  • เป็นคอมพิวเตอร์ที่ มีความสามารถในการสื่อสาร และควบคุมอุปกรณ์อิเล็กทรอนิกส์ได้ เช่น สามารถรับรู้สถานะของเครื่องใช้ไฟฟ้าได้ว่ากำลังทำงานอยู่หรือไม่ และ ยังสามารถสั่งงานให้เครื่องใช้ไฟฟ้าทำงานหรือหยุดทำงานก็ได้

ใช้ Raspberry Pi ทำอะไรได้บ้าง ?

เนื่องจาก Raspberry Pi เป็นคอมพิวเตอร์ แน่นอนมันย่อมทำทุกอย่างที่คอมพิวเตอร์ทำได้ เช่น

  • ใช้เป็นคอมพิวเตอร์ส่วนบุคคล เพื่อดูหนัง ฟังเพลง เล่นอินเทอร์เน็ต
  • ใช้เป็นเว็บเซิร์ฟเวอร์ สำหรับเปิดเว็บไซต์ขนาดเล็ก
  • ใช้ทำระบบตรวจจับใบหน้า

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

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

ซึ่งผมคงบรรยายได้ไม่หมดว่ามันทำอะไรได้บ้าง เอาเป็นว่าไปลองดูเว็บนี้ก็แล้วกัน ว่าเค้าใช้ Raspberry Pi ทำอะไรกันไปแล้วบ้าง 1132 Projects tagged with “raspberry pi” – Hackaday.io

Raspberry Pi ต้องมีระบบปฏิบัติการ

ก่อนที่จะใช้ Raspberry Pi ได้นั้น จำเป็นต้องติดตั้งระบบปฏิบัติการให้กับ Raspberry Pi ก่อน โดยระบบปฏิบัติการที่นิยมใช้กัน คือ ระบบปฏิบัติการ Raspbian เพราะเป็นระบบปฏิบัติการที่ถูกสนับสนุนโดยตรงจากทาง Raspberry Pi Foundation นั่นเอง

*** Raspbian เป็นระบบปฏิบัติการตระกูลลินุกซ์ครับ ใครที่ไม่เคยใช้ลินุกซ์ก็อาจจะรู้สึกว่ามันยากสักหน่อยนะครับ ***

แต่นอกเหนือจากระบบปฏิบัติการ Raspbian แล้ว ก็ยังมีระบบปฏิบัติการอื่นๆ ให้เลือกใช้กันมากมาย ไปเลือกดูกันเองที่ https://www.raspberrypi.org/downloads/

การควบคุมอุปกรณ์อิเล็กทรอนิกส์

บนบอร์ด Raspberry Pi จะมีสิ่งที่เรียกว่า GPIO (General Purpose Input-Output) ซึ่งมันคือส่วนที่เอาไว้ต่อสัญญาณ Input/Output เข้ากับวงจรอิเล็กทรอนิกส์ภายนอกได้

Raspberry Pi 1 Model B+ GPIO Pins

การรับ/ส่งสัญญาณ Input/Output ผ่าน GPIO จำเป็นต้องเขียนโปรแกรมสั่งงาน โดยภาษาที่นิยมใช้กันทั่วไป ได้แก่ ภาษา Python แต่นอกจากภาษา Python แล้ว ก็ยังมีภาษาอื่นๆ ให้เลือกใช้กันอีก เช่น C/C++, Shell Script และภาษาอื่นๆ

โดยรูปแบบหนึ่งของสัญญาณที่ใช้รับ/ส่งจะอยู่รูปแบบของแรงดันไฟฟ้า 0V กับ 3.3V เช่น

  • เมื่อ GPIO ขา X ได้รับไฟ 0V (หรือไม่ถูกจ่ายไฟ) >> โปรแกรมจะได้รับสัญญาณเป็น 0 หรือ False
  • เมื่อ GPIO ขา X ได้รับไฟ 3.3V >> โปรแกรมจะได้รับสัญญาณเป็น 1 หรือ True
  • เมื่อโปรแกรมส่งสัญญาณออกไปเป็น 0 หรือ False >> GPIO ขา X จะจ่ายไฟ 0V (หรือไม่จ่ายไฟ)
  • เมื่อโปรแกรมส่งสัญญาณออกไปเป็น 1 หรือ True >> GPIO ขา X จะจ่ายไฟ 3.3V

ตัวอย่างโค้ดโปรแกรมภาษา Python

GPIO.setup(X, GPIO.OUT)
GPIO.output(X, True)

ตัวอย่างนี้เป็นการตั้งให้ GPIO ขาที่ X เป็นขา Output และส่งสัญญาณออกไปเป็น True หรือก็คือจ่ายไฟออกไป 3.3V แต่ถ้าเปลี่ยนจาก True เป็น False ก็จะจ่ายไฟออกไป 0V (หรือไม่จ่ายไฟ)

GPIO.setup(X, GPIO.IN)
input = GPIO.input(X)

ส่วนตัวอย่างนี้เป็นการตั้งให้ GPIO ขาที่ X เป็นขา Input และเมื่อได้รับไฟ 3.3V ตัวแปร input จะมีค่าเท่ากับ True และแน่นอนเมื่อได้รับไฟ 0V (ไม่ถูกจ่ายไฟ) ตัวแปร input ก็จะมีค่าเท่ากับ False นั่นเอง

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีแก้ Windscribe Extension ถูกมองว่าเป็น Ad Blocker

ปัญหา

เมื่อเราติดตั้ง Windscribe Extension บน Web Browser เช่น Chrome, Firefox หรือ Opera

แล้วเราเข้าเว็บไซต์ที่มีระบบป้องกันการใช้งาน Ad Blocker (ตัวบล็อกโฆษณา)

เว็บไซต์นั้นๆ อาจแสดงผลผิดเพี้ยนไปจากเดิม หรือ ไม่แสดงเนื้อหาในส่วนที่ผู้ใช้ต้องการ พร้อมแจ้งเตือนผู้ใช้ว่า

คุณใช้ Ad Blocker อยู่นะ, คุณต้องปิดมันก่อน, เราจึงจะแสดงเนื้อหาในส่วนที่คุณต้องการเข้าถึง

วิธีแก้ไข

Windscribe Extension จะมีฟังก์ชั่น Ad Blocker ติดมาด้วย และถูกเปิดใช้งานโดยอัตโนมัติครับ

ดังนั้น วิธีแก้ไขก็คือ ปิดฟังก์ชั่น Ad Blocker ใน Windscribe ครับ

ขั้นตอนการปิดฟังก์ชั่น Ad Blocker ใน Windscribe

1.คลิ๊กที่ไอคอน Windscribe บน Web Browser ของคุณ

2.เมื่อมีหน้าต่าง Popup ขึ้นมาให้คลิ๊กที่ไอคอนเมนู ที่มุมซ้ายมือบน

3.คลิ๊กที่เมนู Privacy Options

4.ตรง Ad Blocker คลิ๊กให้เป็น OFF เป็นอันเสร็จครับ

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธี ADD / COPY Hidden File ขณะ Build Docker Image

ปัญหา

เมื่อเราใช้คำสั่ง ADD หรือ COPY ใน Dockerfile เพื่อคัดลอก Hidden File (ไฟล์ในระบบ Linux ที่ชื่อขึ้นต้นด้วยจุด .) ไปยัง Docker Image ในขณะที่เรา Build Image

ถ้าเราใช้รูปแบบคำสั่งเป็น

ADD <src>... <dest>

หรือ

COPY <src>... <dest>

เราอาจจะพบข้อผิดพลาดดังนี้

lstat destdir/.filename: no such file or directory

วิธีแก้ไข

เพื่อหลีกเลี่ยงข้อผิดพลาดดังกล่าว แนะนำให้ใช้คำสั่ง ADD และ COPY ในอีกรูปแบบหนึ่ง ดังนี้

ADD ["<src>",... "<dest>"]

หรือ

COPY ["<src>",... "<dest>"]

ซึ่งโดยส่วนตัวแล้ว ผมคิดว่ารูปแบบนี้น่าใช้กว่ารูปแบบแรก เพราะนอกจากจะใช้คัดลอก Hidden File ได้แล้ว ก็ยังสามารถใช้รูปแบบนี้คัดลอกไฟล์ที่มี Whitespace (เว้นวรรค) ได้ด้วย

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธี build hping3 บน Ubuntu

โดยปกติบน Ubuntu คุณสามารถติดตั้ง hping3 ผ่าน repository ได้โดยใช้คำสั่ง apt หรือ apt-get อยู่แล้ว

แต่ถ้าคุณจะ build hping3 เอง อาจจะด้วยเหตุผลอะไรก็แล้วแต่ ให้คุณทำตามขั้นตอนด้านล่างนี้

1. ถ้าคุณยังไม่ได้ติดตั้งชุดเครื่องมือสำหรับ build ให้ติดตั้งก่อน โดยใช้คำสั่งนี้

sudo apt install -y build-essential

2. ติดตั้ง pcap development package

sudo apt install -y libpcap-dev
sudo ln -s /usr/include/pcap/bpf.h /usr/include/net/bpf.h

3. ติดตั้ง TCL development package

sudo apt install -y tcl-dev

4. ดาวน์โหลด source ไฟล์ hping3 จากเว็บไซต์ต้นฉบับ

wget http://www.hping.org/hping3-20051105.tar.gz

5. extract hping3 archive ที่เพิ่งดาวน์โหลดมา

tar xf hping3-20051105.tar.gz

6. ย้ายไปทำงานที่ไดเรกทอรี่ hping3 ที่เพิ่ง extract ออกมา

cd hping3-20051105

7. ถ้าคุณใช้ Ubuntu เวอร์ชั่น 64บิท คุณต้อง Patch ไฟล์ bytesex.h ก่อน

wget -O hping3-bytesex.h-64bit.patch https://git.io/fjNkJ
patch bytesex.h hping3-bytesex.h-64bit.patch

8. รันสคริป configure เพื่อสร้าง Makefile ใหม่

./configure

9. build, strip และ ติดตั้ง hping3

make
make strip
sudo make install

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีอัปเกรด PHPMailer สำหรับ WordPress

เงื่อนไขการอัปเกรด

การอัปเกรดด้วยวิธีต่อไปนี้ เป็นวิธีการอัปเกรดด้วย command line บน linux server

วิธีอัปเกรด

ย้ายไปทำงานที่ไดเรกทอรี่ของเว็บไซต์ WordPress ที่ต้องการอัปเกรด

cd /var/www/your-wordpress

ค้นหาไฟล์ที่มีคำว่า “phpmailer.php” อยู่ในชื่อไฟล์

find . -iname *phpmailer.php*

ตรวจสอบเวอร์ชั่น PHPMailer ของไฟล์ที่พบ

grep \$Version ./your-found-file # Result is public $Version = 'x.y.zz';

สำรองไฟล์เอาไว้เผื่ออยากดาวน์เกรดกลับมาเป็นเวอร์ชั่นเดิมทีหลัง

# WordPress Core
cp ./wp-includes/class-phpmailer.php ./wp-includes/class-phpmailer.php.bak
cp ./wp-includes/class-pop3.php ./wp-includes/class-pop3.php.bak
cp ./wp-includes/class-smtp.php ./wp-includes/class-smtp.php.bak

# WordPress Themes and Plugins
cp ./wp-content/plugins/your-plugin/class.phpmailer.php ./wp-content/plugins/your-plugin/class.phpmailer.php.bak
cp ./wp-content/themes/your-theme/class.phpmailer.php ./wp-content/themes/your-theme/class.phpmailer.php.bak

ดาวน์โหลด PHPMailer และไฟล์ที่เกี่ยวข้อง เวอร์ชั่นล่าสุดมาพักไว้ที่ไดเรกทอรี่ /tmp

wget -P /tmp https://raw.githubusercontent.com/PHPMailer/PHPMailer/master/class.phpmailer.php
wget -P /tmp https://raw.githubusercontent.com/PHPMailer/PHPMailer/master/class.pop3.php
wget -P /tmp https://raw.githubusercontent.com/PHPMailer/PHPMailer/master/class.smtp.php

เริ่มการอัปเกรดโดยการเขียนทับไฟล์เวอร์ชั่นเก่า ด้วยไฟล์ที่เราดาวน์โหลดมาพักไว้ในไดเรกทอรี่ /tmp

# WordPress Core
cp /tmp/class.phpmailer.php ./wp-includes/class-phpmailer.php
cp /tmp/class.pop3.php ./wp-includes/class-pop3.php
cp /tmp/class.smtp.php ./wp-includes/class-smtp.php

# WordPress Themes and Plugins
cp /tmp/class.phpmailer.php ./wp-content/plugins/your-plugin/class.phpmailer.php
cp /tmp/class.phpmailer.php ./wp-content/themes/your-theme/class.phpmailer.php

ตั้งค่าสิทธิ์ของไฟล์ที่เราเพิ่งอัปเกรด เพื่อให้โปรแกรม Web Server เข้าถึงไฟล์ได้อย่างถูกต้อง

# WordPress Core
chown www-data:www-data ./wp-includes/class-phpmailer.php
chown www-data:www-data ./wp-includes/class-pop3.php
chown www-data:www-data ./wp-includes/class-smtp.php

# WordPress Themes and Plugins
chown www-data:www-data ./wp-content/plugins/your-plugin/class.phpmailer.php
chown www-data:www-data ./wp-content/themes/your-theme/class.phpmailer.php

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธี save docker image เป็นไฟล์ .tar.gz

เมื่อคุณ save docker image โดยใช้คำสั่ง “docker save” คุณจะได้ไฟล์ออกมาเป็น .tar (tar archive)

docker save image_name > image_name.tar

คำสั่งนี้เป็นแค่คำสั่งที่รวมให้ docker image ซึ่งประกอบไปด้วยไฟล์หลายๆ ไฟล์ออกมาเป็นไฟล์ๆ เดียว แต่ยังไม่ได้ผ่านกระบวนการบีบอัดไฟล์ จึงทำให้ขนาดไฟล์ยังมีขนาดที่ข้อนข้างใหญ่ครับ (แต่ถ้าใครคิดว่าขนาดไฟล์ไม่ใช่ปัญหา ก็ใช้คำสั่งนี้ไปก็ได้ครับ)

วิธี save docker image เป็นไฟล์ .tar.gz

คุณสามารถ save docker image ให้ไฟล์ที่ออกมามีขนาดเล็กลงกว่าเดิมได้ โดยการบีบอัดด้วย gzip โดยใช้คำสั่งด่านล่างนี้ครับ

docker save image_name | gzip > image_name.tar.gz

นอกจากนี้คุณยังสามารถบีบอัดไฟล์ด้วย xz หรือ bzip2 ได้อีกด้วย

เช่น คำสั่งด้านล่างนี้ สำหรับ save docker image เป็น .tar.xz

docker save image_name | xz > image_name.tar.xz

หรือ คำสั่งด้านล่างนี้ สำหรับ save docker image เป็น .tar.bz2

docker save image_name | bzip2 > image_name.tar.bz2

วิธี load docker image จากไฟล์ .tar.gz

ข้อความจากเว็บไซต์ docker

The tarball may be compressed with gzip, bzip, or xz

หมายความว่า คุณสามารถ load docker image จากไฟล์ที่ถูกบีบอัดด้วย gzip, bzip หรือ xz ก็ย่อมได้

ดังนั้นคุณสามารถใช้คำสั่ง “docker load” แบบธรรมดาๆ ได้เลย โดยไม่จำเป็นต้องใส่ option เพิ่มเติมใดๆ เลย เช่น

docker load -i image_name.tar.gz

หรือ

docker load -i image_name.tar.bz2

หรือ

docker load -i image_name.tar.xz

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

Burp Proxy ไม่ Intercept HTTPS บน Firefox

ปัญหา

เมื่อตั้งค่า Burp Proxy บน Firefox แล้วไม่สามารถ Intercept HTTPS ได้ แต่สามารถ Intercept HTTP ได้ปกติ

ปัญหาอาจจะเกิดจากการตั้งค่า Proxy บน Firefox ที่ไม่ถูกต้องครับ โดยที่คุณอาจจะลืมเลือกตัวเลือก “Use this proxy server for all protocols” ครับ

วิธีแก้ไข

  • เข้าไปที่ Edit > Preferences > Advanced > Network > Connection > Settings > Manual proxy configuration > HTTP Proxy
  • เลือกตัวเลือก “Use this proxy server for all protocols”
  • กดปุ่ม OK
firefox-settings-for-burp-proxy

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน