คุณอยากสร้างเว็บไซต์ตัวเองแต่ไม่ต้องการ Server-side processing ขนาดใหญ่? จะดีกว่ามากถ้าสร้าง โฮสต์ และดูแลเว็บไซต์ได้โดยตรงบน Raspberry Pi? บทความนี้จะสอนวิธีเปลี่ยน Raspberry Pi ให้เป็น Personal Web Server ของคุณเอง
จบบทช่วยสอนนี้ คุณจะเรียนรู้วิธีติดตั้ง Apache Web Server ยอดนิยมบน Raspberry Pi ตั้งค่า PHP และสร้างเว็บเพจง่ายๆ ที่เข้าถึงได้จากเครือข่ายท้องถิ่น
Apache Web Server คืออะไร?
Apache เป็นแอปพลิเคชัน Web Server ยอดนิยมอันดับหนึ่งของโลก ครอบคลุมเกือบ 40% ของ Web Servers ทั้งหมด ณ เวลาเขียน
เมื่อตั้งค่า Apache บน Raspberry Pi เรียบร้อย คุณสามารถใช้มัน 서빙 (Serve) ไฟล์ต่างๆ ให้ทุกคนในเครือข่ายท้องถิ่น
สิ่งที่ต้องเตรียม
เพื่อทำบทช่วยสอนนี้ ต้องมี:
- Raspberry Pi รัน Raspbian หากยังไม่มี ให้ดาวน์โหลดเวอร์ชันล่าสุดและเขียนลงการ์ด SD ด้วย Etcher
- สายไฟที่เข้ากับ Raspberry Pi
- คีย์บอร์ดภายนอกและวิธีต่อกับ Raspberry Pi
- สาย HDMI หรือ micro HDMI ขึ้นอยู่กับรุ่น
- หน้าจอภายนอก
- สาย Ethernet หรือ Wi-Fi
อัปเดต Raspbian
หากยังไม่ได้ทำ ให้ต่อคีย์บอร์ด หน้าจอ และอุปกรณ์ต่อพ่วง แล้วเสียบไฟ
ก่อนเริ่ม ควรตรวจสอบว่า Raspbian เป็นเวอร์ชันล่าสุด เปิด Terminal โดยคลิกไอคอน "Terminal" ในแถบเครื่องมือ พิมพ์คำสั่ง:
sudo apt-get update sudo apt-get upgrade
หาก Raspbian ติดตั้งอัปเดต ให้รีบูท Raspberry Pi ด้วยคำสั่ง:
reboot
เมื่อ Raspberry Pi รีบูทเสร็จ จะรัน Raspbian เวอร์ชันล่าสุดแล้ว
ติดตั้ง Apache Web Server
พร้อมติดตั้งแพ็กเกจ Apache2 บน Raspberry Pi ใน Terminal พิมพ์:
sudo apt install apache2 -y
เพียงเท่านี้: Raspberry Pi ทำงานเป็น Basic Web Server แล้ว!
เพื่อดู Apache Web Server ในการทำงาน ให้ใส่ IP Address ของ Raspberry Pi ลงในเว็บเบราว์เซอร์ หา IP Address โดยรันคำสั่งใน Terminal:
hostname -I
จะได้ IP Address ของ Raspberry Pi ใส่ลงในเบราว์เซอร์ใดก็ได้ ควรเห็นหน้าต่อไปนี้
ยินดีด้วย! คุณสร้าง Web Server ของตัวเองแล้ว!
ขอสิทธิ์: แก้ไขไฟล์ HTML ของ Apache
หน้า "It works!" จริงๆ เป็นไฟล์ HTML อยู่ที่ "/var/www/html" ของ Raspberry Pi
เพื่อดูไฟล์นี้ ให้เปิด File Manager ของ Raspbian (คลิกไอคอนโฟลเดอร์ในแถบเครื่องมือ) ไปที่ "/var/www/html" โฟลเดอร์นี้มีไฟล์ "index.html" ซึ่งคือหน้าที่คุณเห็นในเบราว์เซอร์
ในส่วนต่อไป คุณจะแก้ไขไฟล์นี้เล็กน้อย และสร้างไฟล์ HTML เพิ่มเติมที่ Apache จะเสิร์ฟให้ทุกคนในเครือข่ายท้องถิ่น
ใน Terminal ให้เปลี่ยน Directory (cd) ไปที่ไฟล์ "index.html"
cd /var/www/html
รันคำสั่ง:
ls -al
Terminal จะแสดงข้อมูลว่าไฟล์ "index.html" เป็นของ User "root"
ก่อนแก้ไข ต้องเอาสิทธิ์เป็นเจ้าของไฟล์ ใช้คำสั่ง Terminal ตัวอย่างสมมติคุณใช้ Username "pi" ของ Raspbian หากเปลี่ยนเอง ให้ปรับในคำสั่ง:
sudo chown pi: index.html
หากรัน ls -al อีกครั้ง ควรเห็นว่า "pi" มีสิทธิ์แก้ไขไฟล์แล้ว
HTML: ปรับแต่งหน้าเว็บของ Apache
ตอนนี้เปิดหน้า "It works" เพื่อแก้ไขด้วยคำสั่ง Terminal:
nano index.html
จะเปิดไฟล์ "index.html" ใน Nano Text Editor ของ Raspbian
คุณสามารถแก้ไขโค้ดทุกส่วน แต่เพื่อความง่าย ตัวอย่างนี้เปลี่ยนแค่ข้อความที่แสดงใน Heading
บันทึกไฟล์ด้วย Ctrl + O ตามด้วย Ctrl + X
ตอนนี้โหลด IP Address ของ Raspberry Pi ในเบราว์เซอร์ ควรเห็นการเปลี่ยนแปลง
ทำให้เว็บไซต์ Dynamic: ติดตั้ง PHP 7
Apache Web Server ค่าเริ่มต้นจำกัดแค่ Static Content หน้าจึงไม่ตอบสนองข้อมูลจากผู้ใช้ หากต้องการ Dynamic Content ต้องติดตั้ง PHP เวอร์ชันล่าสุด ซึ่งเป็น PHP 7.4 ณ เวลาเขียน
ในส่วนนี้ จะติดตั้ง PHP ล่าสุดและ PHP Module สำหรับ Apache:
sudo apt install php libapache2-mod-php -y
เพื่อทดสอบว่า PHP ทำงานถูกต้อง จะสร้างไฟล์ PHP ใน "/var/www/html/" แล้วเช็คในเบราว์เซอร์
สร้างไฟล์ PHP ชื่อ "mywebpage.php" ด้วยคำสั่ง Terminal:
sudo nano /var/www/html/mywebpage.php
ไฟล์ "mywebpage.php" จะเปิดใน Nano ให้พิมพ์ PHP Script ต่อไปนี้:
<?php echo "Today is " . date('Y-m-d H:i:s');
สคริปต์ง่ายนี้ดึงวันที่ปัจจุบันและแสดงเป็นส่วนของเว็บเพจ
บันทึกด้วย Ctrl + O ตามด้วย Ctrl + X
ทดสอบ Dynamic PHP
เพื่อทดสอบว่าไฟล์ PHP ถูกเสิร์ฟถูกต้อง ใส่ IP Address ของ Raspberry Pi ในเบราว์เซอร์ ตามด้วย "/mywebpage.php" เช่น IP เป็น 190.100.1.100 ให้ใส่ URL:
https://190.100.1.100/mywebpage.php
หากไฟล์ PHP ถูกเสิร์ฟถูกต้อง เบราว์เซอร์ควรแสดงภาพคล้ายด้านล่าง
เห็นได้ว่าง่ายมากที่จะเปลี่ยน Raspberry Pi ให้เป็น Web Server แม้คุณจะต้องตั้งค่า Dynamic IP เพื่อเข้าถึง Web Server จากเครือข่ายสาธารณะ (Public Network)