LAMP = Linux, Apache, MySQL, PHP เป็นกลุ่มซอฟท์แวร์ที่เหมาะสำหรับใช้ในการพัฒนาเวบ ในหัวข้อนี้เราจะติดตั้งกลุ่มซอฟท์แวร์นี้ลงบน Raspberry Pi ซึ่งมีการติดตั้ง Raspbian (หรือ Raspberry pi OS) ไว้เรียบร้อยแล้ว
ขั้นตอนการติดตั้ง LAMP ในที่นี้จะทำผ่านทาง terminal หรือผ่าน SSH เข้าไปที่ตัว Raspberry Pi
1. Update และ Upgrade ตัว Raspberry Pi ก่อน
ใช้คำสั่งดังนี้ ทำการอัพเดท และอัพเกรดตัว Raspberry Pi ก่อนทำการติดตั้งซอฟท์แวร์อะไรใหม่
sudo apt update && sudo apt upgrade -y
2. ติดตั้ง Apache2
ทำการติดตั้ง Apache2 เพื่อไว้ใช้เป็น Web server ซึ่งจะเป็นตัวจัดการการร้องขอการเข้าถึงหน้าเวบต่างๆ โดยใช้คำสั่งดังนี้
sudo apt install apache2 -y
หลังจากนั้น ทำการทดสอบการติดตั้ง Apache2 ดูว่าใช้งานได้หรือไม่ โดยไปที่ไดเรคตอรี่ /var/www/html แล้วลิสต์ไฟล์ที่มีอยู่ขึ้นมา
cd /var/www/html
ls -la
จะพบไฟล์ชื่อ index.html ปรากฎอยู่ ให้เปิดเบราเซอร์เข้าไปที่ ip ของ Raspberry Pi ก็จะปรากฎหน้าเวบ Apache2 Debian Default Page ขึ้นมาตามภาพด้านล่างนี้
ปล. หากไม่ทราบ ip ของตัว Raspberry Pi ให้ใช้คำสั่งด้านล่างนี้เพื่อแสดง ip ออกมา
hostname -I
3. ติดตั้ง PHP
PHP เป็นภาษาสคริปที่ใช้รันบนฝั่งเซิร์ฟเวอร์ นิยมใช้ในการสร้างเวบแอพพลิเคชั่นหรือหน้าเวบที่เปลี่ยนแปลงไปตามเงื่อนไขต่างๆได้ การติดตั้ง PHP ให้ใช้คำสั่งดังต่อไปนี้
sudo apt install php -y
หลังจากติดตั้งแล้ว สามารถทดสอบการติดตั้ง PHP ได้โดยการสร้างไฟล์ index.php ง่ายๆขึ้นมา (อาจจะลบไฟล์ index.html ออกไปก่อน หรือเปลี่ยนชื่อไปเป็นชื่ออื่นก็ได้) ดังนี้
sudo rm index.html
sudo nano index.php
แล้วพิมพ์บรรทัดคำสั่งนี้ลงไป แล้วบันทึกและออกจาก nano editor
<?php echo "Hello PHP world"; ?>
แล้วเริ่มตัว Apache2 service ใหม่ ด้วยคำสั่งต่อไปนี้
sudo service apache2 restart
ถึงตอนนี้ หากเปิดเบราเซอร์เข้าไปที่ ip ของ Raspberry Pi หน้าเวบก็จะเปลี่ยนเป็นตามภาพด้านล่างนี้
4. ติดตั้ง MySQL (MariaDB Server)
ใช้คำสั่งต่อไปนี้ เพื่อติดตั้ง MySQL Server และแพคเกจ PHP-MySQL
sudo apt install mariadb-server php-mysql -y
เมื่อติดตั้ง MySQL Server แล้วก็ต้องเริ่ม Apache2 service ใหม่เพื่อใช้การติดตั้งมีผลกระทบ
sudo service apache2 restart
5. เพิ่มความปลอดภัยให้กับ MySQL
หลังจากติดตั้ง MySQL เสร็จใหม่ๆ ยูสเซอร์ root จะยังคงไม่มีพาสเวิร์ด (พาสเวิร์ดเป็น blank) เพื่อความปลอดภัย จึงควรตั้งพาสเวิร์ดใหม่ให้กับ root โดยใช้คำสั่งดังนี้
sudo mysql_secure_installation
จากนั้นให้ตอบคำถามดังต่อไปนี้
- Enter current password for root: ให้ตอบ Enter (เริ่มต้นไม่มีพาสเวิร์ด)
- กด Y และ Enter เพื่อเซ็ท root password ใหม่
- ป้อนพาสเวิร์ดใหม่สำหรับ root (ป้อน 2 ครั้ง)
- ตอบ Y เพื่อลบ anonymous users
- ตอบ Y เพื่อห้าม root login remotely
- ตอบ Y เพื่อลบ test database
- ตอบ Y เพื่อ reload privilege tables now
ถึงตอนนี้ Database และ MySQL ก็ไม่สามารถเข้าถึงได้โดยไม่มีการป้องกันแล้ว
6. สร้าง User และ Password ไว้สำหรับใช้กับ phpMyAdmin
เมื่อติดตั้ง phpMyAdmin อาจจะมีปัญหาในการเข้าล็อกอิน phpMyAdmin จึงควรสร้างยูสเซอร์และพาสเวิร์ดไว้สำหรับใช้กับ phpMyAdmin โดยใช้คำสั่งต่อไปนี้
sudo mysql --user=root --password
แล้วป้อนพาสเวิร์ดของ root ตามที่ตั้งในข้อ 5 แล้วใช้คำสั่งต่อไปนี้สร้างยูสเซอร์ใหม่
> CREATE USER admin@localhost IDENTIFIED BY 'your_password';
> GRANT ALL PRIVILEGES ON *.* TO admin@localhost;
> FLUSH PRIVILEGES;
> exit;
7. ติดตั้ง phpMyAdmin
ใช้คำสั่งต่อไปนี้ติดตั้ง phpMyAdmin
sudo apt install phpmyadmin -y
หลังจากนั้น ตอบคำถามตามนี้
- เลือก Apache2 (เคาะ space bar) แล้วกด Enter หรือคลิก OK
- Configure database for phpmyadmin with dbconfig-common? ตอบ Yes
- ป้อนพาสเวิร์ด (ตามที่ตั้งในข้อ 6) แล้วกด OK และคอนเฟิร์มพาสเวิร์ดอีกครั้ง
8. Enable PHP MySQLi extension
หลังจากติดตั้ง phpMyAdmin แล้ว ให้ Enable PHP MySQLi extension แล้วเริ่ม Apache2 service ใหม่
sudo phpenmod mysqli
sudo service apache2 restart
9. เพิ่ม Link ให้กับ phpMyAdmin
ทดสอบการเปิด phpMyAdmin โดยเข้าเบราเซอร์ด้วย ip ของ Raspberry Pi ตามด้วย /phpmyadmin หากขึ้นหน้าเวบว่า Not Found ให้ย้ายไดเร็คตอรี่ phpmyadmin ไปไว้ที่ /var/www/html แล้วใช้คำสั่งเพิ่ม link ตามนี้
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
แต่ถ้าเปิดเข้า phpMyAdmin ได้แล้ว ก็ไม่ต้องย้ายไดเรคตอรี่ แต่ให้เพิ่มบรรทัดลงไปในไฟล์ apache2.conf ตามนี้
sudo nano /etc/apache2/apache2.conf
เพิ่มบรรทัดนี้ลงไปด้านล่างสุดของไฟล์ แล้ว save และออกจาก Editor (กด Ctrl+x แล้วตอบ Yes แล้วกด Enter)
Include /etc/phpmyadmin/apache.conf
จากนั้นเพิ่ม link ตามนี้
sudo ln -s /usr/share/phpmyadmin /var/www/html
10. ขั้นตอนเพิ่มเติม (Optional but recommended)
ควรเปลี่ยนการอนุญาตการเข้าไปที่ไดเร็คตอรี่ /var/www/html ใหม่ตามนี้
ls -lh /var/www/
sudo chown -R pi:www-data /var/www/html/
sudo chmod -R 770 /var/www/html/
ls -lh /var/www/