[Raspberry Pi] การใช้ Sublime แก้ไขไฟล์ในบอร์ด R-Pi ผ่าน SFTP

      โดยปกติแล้วการเขียนโปรแกรมบน Raspberry Pi โดยตรงนั้นจะไม่ค่อยสะดวกเท่าไรนัก อาจจะเพราะ Text Editor บนตัว Raspberry Pi ทำงานได้ไม่ดีเท่าบน Windows หรือ Mac OS

      ดังนั้นบทความนี้จะแนะนำวิธีการใช้ Text Editor ที่ชื่อว่า Sublime เพื่อเขียนโปรแกรมให้กับบอร์ด Raspberry Pi โดยที่จะเป็นการเขียนโปรแกรมบนคอมพิวเตอร์ และเชื่อมต่อไฟล์ข้อมูลที่อยู่บนบอร์ด Raspberry Pi ผ่าน SFTP

รู้จักกับ SFTP/FTP

      File Transfer Protocol หรือที่เรียกกันสั้นๆว่า FTP เป็นหนึ่งใน Protocol ที่ใช้รับส่งไฟล์ระหว่างอุปกรณ์สองเครื่องด้วยกัน โดยจะแบ่งเป็น FTP Client และ FTP Host โดยที่ไฟล์ต้นฉบับนั้นจะอยู่ที่ Host (ในบทความนี้ก็คือบอร์ด Raspberry Pi) และ Client ก็จะขอเข้าถึงข้อมูลในไฟล์นั้นๆที่อยู่บน Host (คอมพิวเตอร์ขอเปิดไฟล์ที่อยู่บนบอร์ด Raspberry Pi) โดยมีเงื่อนไขหลักคือเครื่อง Client จะต้องรู้ชื่อและรหัสผ่านของเครื่อง Host ถึงจะเข้าใช้งานไฟล์ในเครื่อง Host ได้

      ส่วน SFTP ก็คือ Secure File Transfer Protocol แต่เป็น FTP ของ SSH อีกทีหนึ่ง เพื่อให้สามารถเข้าถึงข้อมูลได้อย่างปลอดภัยมากขึ้น

      ด้วย Protocol นี้จึงทำให้เราสามารถเขียนโปรแกรมบนบอร์ด Raspberry Pi ได้โดยไม่ต้องใช้ SSH เพื่อรีโมตเข้าไปในบอร์ด Raspberry Pi หรือมานั่งต่อคีย์บอร์ด ต่อเม้าส์ ต่อจอเพื่อเขียนโปรแกรมโดยตรง

 

รู้จักกับ Sublime

      Sublime เป็น Text Editor ตัวหนึ่งที่มีนิยมใช้งานกันเยอะ เป็น Text Editor สำหรับการเขียนโปรแกรมโดยเฉพาะ รองรับการเขียนโปรแกรมหลากหลายภาษาแถมมีเครื่องมีอำนวยความสะดวกให้กับนักพัฒนา และมีปลั๊กอินเสริมที่ให้เลือกติดตั้งได้ตามต้องการ (มีแม้กระทั่ง Arduino IDE Plugin) ซึ่งหนึ่งในนั้นก็คือปลั๊กอินสำหรับ FTP จึงทำให้เป็นที่นิยมมากโดยเฉพาะเหล่านักพัฒนาด้านเว็ปเซิฟเวอร์

      ด้วยหน้าตาที่ดูเรียบง่าย ไม่มีแถบเครื่องมือให้รกสายตา และฉลาดมากพอที่จะช่วยให้เขียนโปรแกรมได้ไวขึ้น ถึงแม้ว่าจะไม่สามารถคอมไพล์ไฟล์ได้ในตัว แต่ในการเขียนโปรแกรมสำหรับบน Web Server ก็ไม่จำเป็นต้องคอมไพล์อยู่แล้ว ดังนั้น Sublime จึงเหมาะมากถ้าจะนำมาใช้เขียนโปรแกรมให้กับ Raspberry Pi ที่ทำงานเป็น Web Server (หรืออื่นๆ)

      ผู้อ่านสามารถดูความสามารถของ Sublime และดาวน์โหลดใช้งานได้ฟรีจาก http://www.sublimetext.com/ โดยตัวโปรแกรมรองรับทั้งบน Windows, OS X และ Linux

      เมื่อดาวน์โหลดมาแล้วและติดตั้งเรียบร้อยแล้วเปิดโปรแกรมขึ้นมา

 

ติดตั้ง Package Control ให้กับ Sublime

      ต้องใช้อินเตอร์เน็ตในการติดตั้ง

      เพื่อติดตั้งปลั๊กอินสำหรับ SFTP/FPT ให้กับ Sublime จะต้องติดตั้ง Package Control เสียก่อน เพื่อให้ Sublime สามารถติดตั้งปลั๊กอินเสริมได้

      สามารถดูวิธีการติดตั้ง Package Control ได้โดยตรงที่ https://packagecontrol.io/installation

      ที่หน้าเว็ปดังกล่าว ให้คัดลอกคำสั่งทั้งหมดที่อยู่ในกรอบสี่เหลี่ยมตรงซ้ายมือของหน้าเว็ป ซึ่งเป็นคำสั่งติดตั้ง Package Control โดยเลือกให้ตรงกับเวอร์ชันที่ติดตั้ง

      กลับมาที่โปรแกรม Sublime ให้กดปุ่ม Ctrl + ~ เพื่อเรียกหน้าต่าง Console ขึ้นมา หรือจะเลือกไปที่ View > Show Console ก็ได้เหมือนกัน จะมีช่องกรอกข้อความโผล่ขึ้นมาที่ข้างล่างของหน้าจอโปรแกรม ให้วางข้อความที่คัดลอกมาจากเว็ปติดตั้ง Package Control ลงไปในช่องดังกล่าว แล้วกดปุ่ม Enter

      จะมีข้อความแจ้งที่หน้าต่าง Console ว่าการติดตั้งเสร็จแล้วให้รีสตาร์ทโปรแกรม ก็ให้ปิด Sublime แล้วเปิดขึ้นมาใหม่ได้เลย

      เป็นอันเสร็จเรียบร้อย

 

ติดตั้งปลั๊กอิน SFTP/FTP

      ต้องใช้อินเตอร์เน็ตในการติดตั้ง

      เปิดหน้าต่าง Package Control ขึ้นมาโดยเลือกไปที่

      Windows และ Linux : Preferences > Package Control

      OS X : Sublime Text > Preferences > Package Control

 

      จะมีหน้าต่าง Package Control แสดงขึ้นมาที่กลางหน้าจอโปรแกรม ให้พิมพ์ค้นหาว่า Install Package แล้วเลือกเมนูดังกล่าว

 

      รอซักพักก็จะมีช่องให้กรอกอีกครั้ง ให้พิมพ์ลงไปว่า SFTP ก็จะเห็นรายชื่อปลั๊กอินที่อยู่ข้างล่าง ซึ่งจะมี SFTP อยู่ด้วย ให้กดเลือกเพื่อทำการติดตั้ง

     รอโปรแกรมทำการติดตั้งจนเสร็จ

 

การใช้งาน SFTP บน Sublime

     ให้สร้างโฟลเดอร์เพื่อสำรองข้อมูลที่ได้จาก Raspberry Pi เพราะเวลาแก้ไขไฟล์จะไม่ได้เป็นการแก้ไขไฟล์บน Raspberry Pi โดยตรง แต่จะเป็นการแก้ไขไฟล์ที่อยู่บนคอมพิวเตอร์ เมื่อเสร็จแล้วจึงค่อยส่งไปที่ Raspberry Pi อีกที

      เมื่อสร้างโฟลเดอร์ขึ้นมาแล้วก็ให้เปิดโฟลเดอร์นั้นด้วย Sublime (สามารถเลือกเปิดเป็นโฟลเดอร์ได้)

      ยกตัวอย่างเช่น ผมสร้างโฟลเดอร์ไว้ชื่อว่า RPi Server เมื่อกดเปิดโฟลเดอร์ดังกล่าวด้วย Sublime ก็จะขึ้นชื่อโฟลเดอร์ที่ด้านซ้ายมือของหน้าจอโปรแกรมดังรูป

 

      คลิกขวาที่โฟลเดอร์นั้น แล้วเลือกไปที่ SFTP/FTP > Map to Remote…

 

 

      จะมีไฟล์ที่ชื่อว่า sftp-config.json ถูกสร้างขึ้นมาในนี้ ไม่ต้องตกใจ เพราะไฟล์นี้คือไฟล์ที่เอาไว้กำหนดการเชื่อมต่อ SFTP กับ Raspberry Pi

      ให้กำหนดค่าตามนี้

{
    “type”: “sftp”,

    “save_before_upload”: true,
    “upload_on_save”: true,
    “sync_down_on_open”: false,
    “sync_skip_deletes”: false,
    “sync_same_age”: true,
    “confirm_downloads”: false,
    “confirm_sync”: true,
    “confirm_overwrite_newer”: false,

    “host”: “example.com”,
    “user”: “username”,
    “password”: “password”,
    “port”: “22”,

    “remote_path”: “/example/path/”,

    “connect_timeout”: 30,
    “keepalive”: 360,
}

      นอกเหนือจากนี้ไม่จำเป็นต้องสนใจ (โดยปกติโปรแกรมจะ Comment อันอื่นไว้ให้หมดแล้ว) ส่วนบริเวณตัวหนังสือสีแดงคือส่วนที่ผู้อ่านจะต้องแก้ไขเอง โดยที่

      host คือ IP Address ของ Raspberry Pi (ใช้คำสั่ง ifconfig บน Raspberry Pi เพื่อตรวจสอบได้)

      user คือชื่อผู้ใช้งานบน Raspberry Pi (โดยปกติคือ pi)

      password คือรหัสผ่านของผู้ใช้งานบน Raspberry Pi (โดยปกติคือ raspberry)

      remote_path คือที่อยู่ของโฟลเดอร์ที่จะเข้าถึงด้วย SFTP (ถ้าทำเปิด Web Server ข้อมูลก็จะอยู่ที่ /var/www/)

 

 

     จากตัวอย่างของผู้เขียนจะได้ออกมาดังนี้

      เมื่อแก้ไขเสร็จแล้ว ก็ให้บันทึกไฟล์นี้ให้เรียบร้อย

 

ทำการดึงไฟล์ข้อมูลจาก Raspberry Pi

      เมื่อกำหนด SFTP เรียบร้อยแล้ว ให้คลิกขวาที่โฟลเดอร์ใน Sublime ใหม่อีกครั้ง แล้วเลือกไปที่ SFTP/FTP > Browse Remote…

 

      ซักพักจะมีหน้าต่างแสดงรายชื่อไฟล์ขึ้นมาให้เลือก (ขึ้นอยู่กับตอนกำหนด remote_path ใน sftp-config.json) เลือกไฟล์ที่ต้องการด้วยการกดปุ่มขึ้นลงบนคีย์บอร์ด แล้วกด Enter เพื่อเลือกไฟล์นั้นๆ จากตัวอย่าง ผู้เขียนเลือกไฟล์ที่ชื่อว่า index.html

      หมายเหตุ ถ้ามีปัญหาไม่สามารถดูรายชื่อไฟล์ได้ ให้กลับไปดูการตั้งค่าใน sftp-config.json ใหม่อีกครั้ง เพราะถ้ากำหนดค่าไม่ถูกต้องก็จะไม่สามารถเชื่อมต่อ SFTP กับ Raspberry Pi ได้

      จากนั้นขะมีเมนูให้เลือกว่าจะทำอะไรกับไฟล์ดังกล่าว ให้กดเลือกที่  Download เพื่อดึงไฟล์จาก Raspberry Pi มาเก็บไว้ในเครื่องของเรา (ระมัดระวังด้วย เพราะเราสามารถสั่งลบไฟล์จากในนี้ได้ด้วย)

        ไฟล์ดังกล่าวก็จะถูกดาวน์โหลดมาเก็บไว้ในโฟลเดอร์ที่ได้สร้างไว้ (ของผู้เขียนจะเก็บไว้ในโฟลเดอร์ที่ชื่อว่า RPi Server)

      จากนั้นก็เริ่มเขียนโปรแกรมบนนี้ได้เลย เวลากดบันทึกไฟล์ตัวนี้ โปรแกรมก็จะส่งไปที่ Raspberry Pi โดยอัตโนมัติ (กำหนดไว้ใน sftp-config.json)

      ถ้าอยากรู้ว่าไฟล์ส่งไปที่ Raspberry Pi เสร็จแล้วหรือยัง ก็ให้ดูที่แถบข้างล่างของโปรแกรม เพราะจะมีข้อความว่า Success เป็นตัวหนังสือสีเขียว เพื่อแจ้งให้ผู้ใช้รู้ว่าส่งไฟล์เสร็จเรียบร้อยแล้ว

 

เจอปัญหา Permission denied เวลาบันทึกไฟล์

      ปัญหานี้เกิดมาจากไฟล์ที่เขียนโปรแกรมนั้นไม่อนุญาตให้แก้ไขไฟล์ได้

 

      วิธีแก้ไขคือเข้าไปเปลี่ยน Permission ของไฟล์ให้เข้าใช้งานได้ โดยจะต้องล็อกอินเข้าไปใน Raspberry Pi แล้วใช้คำสั่งตรวจสอบว่าว่า User ของ Pi เป็นเจ้าของไฟล์นั้นหรือป่าว ให้แก้ Permission หรือ User Group ให้เรียบร้อย

 

Facebook Comments