ในตอนนี้ เรากำลังเข้าใกล้การควบคุม Raspberry Pi ผ่าน network แล้ว อีกหนึ่ง package ที่น่าสนใจ ก็คือ การทำให้บอร์ด Raspberry Pi ของเรากลายเป็น Server ย่อมๆ ที่กินไฟน้อยที่สุดในโลกเลยก็ว่าได้ โดยในตอนนี้ เราจะมาทำให้กลายเป็น Web server (ที่ให้บริการเกี่ยวกับเว็บเพจ) และ Database Server (ให้บริการเกี่ยวกับฐานข้อมูล)
แน่นอนว่า ถ้าเป็นระบบปฏิบัติการ Linux แล้วหล่ะก็ เรามักนิยมใช้โปรแกรม Apache ซึ่งจะทำให้เครื่องคอมพิวเตอร์เครื่องใดๆ ก็ได้ที่ลงโปรแกรมนี้ จะกลายเป็น Web server ทันที เพียงแค่เราอ้างอิงหมายเลขไอพี ผ่านโปรโตคอล http หน้าเว็บบราวเซอร์ เช่น http://192.168.2.111 ก็จะทำให้บอร์ด Raspberry Pi ของผมกลายเป็น Web server แล้วส่งหน้าเว็บเพจที่ชื่อ index.php หรือ index.html กลับไปที่บราวเซอร์ที่เรียกมาทันที ส่วนฐานข้อมูลที่นิยมกัน ได้แก่ Mysql , sqlite, PostgreSQL และอื่นๆ อีกหลายตัว นอกจากนี้ เรายังสามารถที่จะเพิ่มตัวแปรภาษาสคริปต์ เพื่อทำให้ web server ของเรามีความสามารถมากขึ้นนอกจากจะเป็นเพียงแค่ เว็บให้บริการหน้าเว็บเพจ อาจจะมีการเพิ่มการเก็บข้อมูล การเรียกดูข้อมูล จากฐานข้อมูลได้อีกด้วย พวกภาษาสคริปต์ ก็มีหลายตัว แล้วแต่เราจะถนัด และชอบ ได้แก่ ภาษา PHP , Perl , Python ซึ่งสามารถเข้ากันได้ดีกับตัวฐานข้อมูลที่ได้กล่าวไปแล้วข้างต้น
เอาหล่ะ มัดมือชก เลยหล่ะกัน :P เราจะมาติดตั้ง
- Apache2 เพื่อทำให้ Raspberry Pi ของเรากลายเป็น Web server
- MySQL Server เพื่อทำให้ Raspberry Pi ของเรากลายเป็น Database Server
- PHP5 เพื่อให้ Raspberry Pi ของเรามีตัวแปลภาษาสคริปต์ เพื่อติดต่อกับ Database Server และเขียนภาษาสคริปต์ได้
หลังจากที่ login ผ่าน SSH เข้ามาแล้ว ก็ให้อัพเดท package ที่เคยติดตั้งไว้แล้ว ว่ามีอะไรอัพเดทใหม่บ้าง
sudo apt-get update
จากนั้นทำการโหลด package apache2,php5,ibapache2-mod-php5 เข้ามาต่อเลย ด้วยคำสั่ง
sudo apt-get install apache2 php5 libapache2-mod-php5
แต่โดยปกติแล้ว ผมจะโหลดทีละ package เพราะดูเหมือนโหลดพร้อมๆ กันแล้วมันจะ Error บ่อย U_U
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
ติดตั้งเสร็จแล้ว ตัว apache เองจะทำการ restart apache service อาจจะมีการแจ้งเตือน Fail ขึ้นมา
ให้เราทำการแก้ไขด้วย
sudo groupadd www-data
และ
sudo usermod -g www-data www-data
เพื่อเพิ่ม กรุ๊ปใหม่ และทำการโมดิฟายกรุ๊ปนั้น จากนั้น เราจะต้องทำการกำหนดสิทธิ์ให้ผู้ใช้สามารถเข้าถึง director ใดได้บ้างใน path ที่เก็บเกี่ยวกับหน้าเว็บเพจ ตรงนี้ ถ้าสนใจ ให้หาข้อมูลเพิ่มเติมเกี่ยวกับ htaccess file ทำการแก้ไขไฟล์ 000-default ด้วยคำสั่ง
sudo nano /etc/apache2/sites-enabled/000-default
จากนั้น มองหาบรรทัดที่เขียนว่า AllowOverride None ให้แก้เป็น AllowOverride ALL แล้วทำการบันทึกไฟล์ และออกจากโปรแกรม nano
ทำการรีสตาร์ทเซอร์วิส ของ Apache2 อีกครั้งเพื่อให้เซอร์วิส นี้นำค่าใหม่ไปใช้
sudo service apache2 restart
ในส่วนของการติดตั้ง package เพื่อให้ Raspberry Pi ของเราเสร็จเรียบร้อยแล้ว หากต้องการเพียงแค่ให้ Raspberry Pi แสดงข้อความหน้าเว็บเพจ เราก็ทำได้เลย โดยการใส่ไฟล์ที่เขียนด้วยภาษา HTML แล้วเราไปวางที่ /var/www/ (ด้วยวิธีการ FTP จากตอนที่แล้ว) จากนั้น ลองทำการเรียกดูข้อมูลผ่านหน้าเว็บบราวเซอร์ ที่เครื่องคอมพิวเตอร์ของเรา โดยอ้างอิงไปที่ IP ของบอร์ด Raspberry Pi เช่น http://192.168.2.111/ไฟล์.html ก็จะปรากฏเนื้อหาที่เราเขียนลงไปในไฟล์ html นั้น
ต่อมาเราจะทำให้ php5 ของเราที่ได้ติดตั้งไว้แล้ว สามารถเรียกข้อมูลจฐานข้อมูลที่เราจะติดตั้งต่อไปนี้ได้
ทำการติดตั้ง mysql-server, mysql-client และ php5-mysql ด้วยคำสั่ง
sudo apt-get install mysql-server mysql-client php5-mysql
ในระหว่างขั้นตอนนี้ จะมีการให้ตั้งค่า password ของ root ที่จะ login เข้าในฐานข้อมูล Mysql ซึ่งเราอาจจะตั้ง password ใหม่ ที่ไม่เหมือนกับ password ของ root ที่ login เข้าใช้ raspberry pi ก็ได้ หรือจะให้เหมือนกันก็ไม่เป็นไร แล้วแต่สะดวกหล่ะกัน
เมื่อติดตั้งเรียบร้อยแล้ว ให้ทดสอบ login ใช้ฐานข้อมูล Mysql เพื่อความแน่ใจ ให้ลองรีสตาร์ทเซอร์วิส Mysql ดูสักครั้งก่อน
sudo service mysql restart
จากนั้น ให้พิมพ์คำสั่งเข้าใช้ MySQL ด้วยคำสั่ง
sudo service mysql restart
รอจนเซอร์วิสสตาร์ทเรียบร้อยให้ใช้คำสั่ง
mysql -u root -p
แล้วทำการใส่ password ของ root ที่เราได้กำหนดไปเมื่อสักครู่ (อย่าบอกว่า ลืมนะ!!! งานเข้าแน่ๆ หล่ะ)
เมื่อเข้ามาได้แล้ว prompt จะเปลี่ยนไปเป็น mysql> ให้เราใช้ภาษา SQL (ต้องเรียนรู้เพิ่มอีกแหละ U_U ) เพื่อขอดู database ที่มีอยู่ตอนนี้
mysql> show databases; จะปรากฏดังภาพ (เป็นค่ามาตรฐานที่ติดตั้งมา)
ในตอนหน้า ผมจะแนะนำโปรแกรม MySQL Front ที่ใช้สำหรับรีโมทจากเครื่องคอมพิวเตอร์ของเรา เพื่อเข้าถึงฐานข้อมูลที่อยู่บน Raspberry Pi เพื่อให้การใช้งาน สร้าง แก้ไข ปรับปรุง เพิ่ม ลบ ข้อมูล ในดาต้าเบสเกิดความง่ายดายขึ้น ไม่ต้องมาพิมพ์ภาษา SQL ทั้งหมด (แต่รู้ไว้บ้างก็ดี :P ) และการแก้ไข หากเพื่อนๆ ลืม password ของ root ที่ใช้เข้า login mysql
ขอบคุณรูปประกอบบางส่วนจาก http://www.instructables.com
5 ความคิดเห็น:
ผมไม่รู้จะเริ่มยังไงอะครับ
ใครช่วยผมได้ติดต่อผมหน่อยได้ไหมครับ
มือใหม่อะครับ supatap@hotmail.com
ให้มองว่า Raspberry Pi คือ PC เครื่องเก่าๆ เครื่องนึงที่สามารถลง Debian (Linux ตระกูลหนึ่ง) ได้ เพราะฉะนั้น หากเราเขียนโปรแกรมบน Linux ได้ เราก็เล่น Raspberry Pi ได้ครับ
กำลังทำโปรเจคเกี่ยวกับเรื่องนี้เลย ขอบคุณบล็อกนี้มากครับ
ผมทำตามแล้วอะครับ แต่ เหมือนมันยังเปิดไฟล์ PHP ไม่ได้อะครับ
ของผมเป็น PI3 อะครับ ทำยังไงครับ
webserver พอเข้าใจว่าเก็บไว้บน HW ได้ แล้ว database จะเซฟไว้ส่วนไหนล่ะครับ
Post a Comment