วิธีลง LAMP Stack (Apache, MySQL/MariaDB, PHP) ไปยัง Ubuntu บน EC2

  1. วิธีลง LAMP Stack (Apache, MySQL/MariaDB, PHP) ไปยัง Ubuntu บน EC2
  2. สร้าง MySQL User + Database และจัดการฐานข้อมูลด้วย Adminer
  3. ตั้งค่า Virtual Host ใน Apache เพื่อใช้งาน Domain และ SSL บน Ubuntu
  4. ลง Let’s Encrypt ใน Apache บน Ubuntu เพื่อใช้เว็บ https

อธิบายขั้นตอนการลงเว็บเซิฟเวอร์ LAMP – Linux, Apache, MySQL/MariaDB, PHP บน Ubuntu ใน Amazon EC2 โดยละเอียด มีขั้นตอนดังนี้

1. สร้าง EC2 Instance และลง Ubuntu หากยังไม่ได้สร้างหรือติดปัญหาในการสร้าง สามารถดูขั้นตอนการสร้าง Instance โดยละเอียดได้ที่โพส การสร้าง EC2 Instance และลง Ubuntu Linux โดยละเอียด และดูวิธีการตั้งค่า IP ถาวรได้ที่โพส การสร้าง Elastic IP และ Assign ไปยัง AWS EC2 Instance

2. เชื่อมต่อ SSH เข้าไปยังเซิฟเวอร์ หากยังไม่เคยเชื่อมต่อ SSH ไปยังเซิฟเวอร์ หรือติดปัญหาในการใช้งาน สามารถดูวิธีการเชื่อมต่อได้ที่โพส การใช้ SSH เชื่อมต่อไปยังเซิฟเวอร์ Ubuntu บน AWS EC2 โดยใช้โปรแกรม Terminus ใน Mac OSX

3. เตรียมความพร้อมเซิฟเวอร์ อัพเดท apt โดยรันคำสั่ง

sudo apt update && sudo apt upgrade -y

4. ลง Apache ด้วยคำสั่ง

sudo apt-get install apache2 -y

เมื่อลง Apache แล้ว สามารถทดสอบได้ทันทีโดยไปยัง http://YOU_IP_ADDRESS จะเห็นหน้า Apache2 Ubuntu Default Page

หากมี Firewall ต้อง Allow Port ก่อน

หากในเซิฟเวอร์มีเปิด Firewall อยู่ จะต้องทำการ Allow port เว็บ (80, 443) เสียก่อนจึงจะสามารถเข้าถึงเว็บไซต์บนเซิฟเวอร์ได้ เช่น กรณีไฟร์วอล์ ufw สามารถเพิ่มพอร์ทที่อนุญาตได้โดยรันคำสั่ง sudo ufw allow 80,443/tcp

5. ลงและตั้งค่า MySQL หรือ MariaDB เลือกลงอย่างใดอย่างหนึ่ง

sudo apt-get install mysql-server -y

# หรือ

sudo apt install mariadb-server -y

เมื่อลง MySQL หรือ MariaDB แล้ว ทำการตั้งค่าโดยรันสคริป (คำสั่งเดียวกันทั้งสองค่าย)

sudo mysql_secure_installation

เมื่อรันคำสั่งดังกล่าวแล้ว จะขึ้นรายการคำถามมาให้เราตอบหลายข้อ และให้ตั้งรหัสผ่าน เช่น

Securing the MySQL server deployment.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: no

Please set the password for root here.
New password: 
Re-enter new password: 

Remove anonymous users? : y

Disallow root login remotely? : y

Remove test database and access to it? : y

Reload privilege tables now? : y

Success.
All done!

เมื่อตั้งค่าเสร็จแล้ว สามารถทดสอบได้โดยรันคำสั่ง

sudo mysql -u root -p

จะขึ้นมาให้กรอกรหัสผ่าน ให้กรอกรหัสที่เพิ่งตั้งไปเมื่อครู่ หากทุกอย่างใช้ได้จะเห็น mysql prompt ขึ้นมา ให้พิมพ์ exit เพื่อออก

6. ลง PHP และ Extension ยอดนิยมที่ใช้บ่อย

sudo apt-get install php libapache2-mod-php php-mysql php-curl php-gd php-json php-zip php-mbstring -y

เมื่อลง PHP แล้วให้ทำการ Restart apache เพื่อใช้งาน Apache ร่วมกับ PHP ด้วยคำสั่ง

sudo service apache2 restart

7. ทดสอบ Apache, PHP ด้วยการลองรัน phpinfo

เมื่อเราลง Apache ค่า default ของ document root หรือโฟลเดอร์ที่ Apache จะไปหยิบไฟล์ออกมาแสดงผลนั้นจะอยู่ที่ /var/www/html ซึ่งหากเราไปดูในโฟลเดอร์ดังกล่าว จะพบไฟล์ index.html ซึ่งคือไฟล์ Default page ที่เราเห็นจากการเปิดหน้าเว็บทดลองที่ http://YOU_IP_ADDRESS นั่นเอง

เราจะทำการทดสอบ PHP ที่เพิ่งลงไป ว่าใช้งานได้สมบูรณ์หรือไม่ด้วยการสร้างไฟล์ info.php ซึ่งจะให้แสดงข้อมูลรายละเอียด php ด้วยคำสั่ง phpinfo() ดังนี้

สร้างไฟล์ info.php ที่ /var/www/html ด้วยคำสั่ง

sudo vi /var/www/html/info.php

แก้ไขข้อมูลในไฟล์ info.php โดยพิมพ์ซอร์สโค้ด และบันทึกไฟล์ ดังนี้

<?php
phpinfo();

จากนั้นทดสอบโดยไปที่หน้าเว็บ http://YOU_IP_ADDRESS/info.php หากทุกอย่างทำงานได้เป็นปกติ จะปรากฎหน้ารายละเอียด PHP ขึ้นมา