30 ก.ค. 2567

How to install Apache ,MySQL ,PHP (LAMP stack) on Ubuntu 22.04



1. ติดตั้ง Linux OS โดยเลือกใช้เป็น Ubuntu Server 22.04

หลังจากติดตั้งเสร็จ อัพเดท&อัพเกรดเวอร์ชันให้เป็นปัจจุบัน

sudo apt update && sudo apt upgrade -y
# คำสั่ง config Timezone(ไทย) แบบถาวรรีสตาร์ทเครื่องค่าไม่หาย(permanent)
sudo timedatectl set-timezone Asia/Bangkok

# คำสั่งดู timeZone
timedatectl

### โปรดระวังหากใช้คำสั่ง tzselect ใช้ง่ายแต่จะเป็นการเปลี่ยน timezone แบบชั่วคราวเท่านั้นเคสนี้เราจะไม่ใช้

APACHE

2. ติดตั้ง Apache Webservice (apache2) on Ubuntu Server 22.04

#ติดตั้งเซอร์วิส Apache
sudo apt install apache2 -y

#คำสั่งเช็คเวอร์ชั่น
apache2 -v

#คำสั่งเช็คเช็ค service เปิดให้บริการหรือไม่ต้องขึ้นเป็น "Active" สีเขียว
service apache2 status

#ทดสอบเรียกหน้าเว็บโดยใช้คำสั่ง CURL หากมีแท็ก html แสดงขึ้นมาเป็นอันใช้ได้
CURL localhost
การติดตั้งสำรเร็จ

MYSQL

3. ติดตั้งฐานข้อมูล MySQL on Ubuntu Server 22.04

ฐานข้อมูลตระกูล MySQL มีหลายเจ้าให้เลือกใช้ต้องศึกษาเพิ่มเติมเอาเอง (ผู้เขียนแนะนำ MariaDB) แต่ในดราฟนี้ใช้จะเป็น MySQL-Server

  • หากติดตั้งอยู่แล้วหรือคอนฟิกผิดพลาดให้ลบแพ็คเกจเก่าออกก่อน
#ลบ MySQL
sudo apt-get remove mysql* --purge
sudo apt-get autoremove
sudo apt-get autoclean
  • คำสั่งติดตั้งฐานข้อมูล MySQL
#ติดตั้ง
sudo apt install mysql-server -y

#เช็คเวอร์ชั่นหากติดตั้งสำเร็จ
sudo mysql -V
  • เมื่อติดตั้งเสร็จ MySQL 8.0 ฐานข้อมูลจะมีค่าเริ่มต้น (Default Config) ที่ไม่ปลอดภัยจำเป็นต้องตั้งค่าใหม่โดยใช้สคริปที่ชื่อว่า “mysql_secure_installation”

****(ดอกจัน) MySQL 8.0 จะเกิดข้อผิดพลาดของสคริปที่ไม่สามารถเปลี่ยนรหัส Root และติดอยู่ใน loop ออกไปไหนไม่ได้ ดังข้อความต่อไปนี้

Output
… Failed! Error: SET PASSWORD has no significance for user ‘root’@’localhost’ as the authentication method used doesn’t store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.

New password:

ดังนั้น ก่อนที่จะใช้ mysql_secure_installation จำเป็นต้องรันคำสั่งแก้ไขสิทธิ์ root ในระบบฐานข้อมูล ให้เปลี่ยนการล็อกอินเป็นแบบเก่า — native_password คือล็อกอินด้วยยูสเซอร์พาสเวิร์ด (Password-based) ก่อน !!

จากเดิม (default) MySQL ล็อกอินด้วยวิธี —auth_socket คือใช้ local user ของระบบปฏิบัติการตระกูลยูนิกซ์ (UNIX) ที่ได้สิทธิ์เป็น Root ถึงจะให้เข้าใช้งานฐานข้อมูลได้แบบไม่ต้องใส่รหัสผ่าน (Passwordless)

เลยเป็นเหตุผลว่าทำไม? เราถึงรันคำสั่ง “sudo mysql” แล้วใส่รหัสยกสิทธิ์รูทของ Ubuntu เฉยๆ ก็เข้าฐานข้อมูลได้เลย — โดยที่ยังไม่ทันได้ใส่ user password ของ mysql เลยด้วยซ้ำ

REF: “In MySQL 8.0, caching_sha2_password is the default authentication plugin rather than mysql_native_password, which was the default in MySQL 5.7”

  • แก้ไขโดยใช้คำสั่งเปลี่ยนการยืนยันตัวตนของยูสเซอร์ root และตั้งรหัสใหม่เป็นคำว่า “password”
# เข้าฐานข้อมูลแบบ Command-line ด้วยคำสั่ง
sudo mysql

# (เพิ่มเติม)หากมีการใช้ user password อื่นๆให้ใช้คำสั่ง
mysql -uชื่อยูสเซอร์ -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
กด enter หากคำสั่งสำเร็จจะขึ้น Query OK
#รันคำสั่ง
sudo mysql_secure_installation


#ระบบจะถามหารหัสผ่าน root ซึ่งเราได้เปลี่ยนใหม่เป็นคำว่า "password" หรือตามที่ผู้อ่านตั้งไว้เองข้างต้น
Securing the MySQL server deployment.
Enter password for user root: ใส่รหัสรูท
  • จากนั้นสคริปจะทำงานเพื่อตั้งค่าความปลอดภัยให้ฐานข้อมูล ตามภาพต่อไป
ตั้งค่าความปลอดภัยตามตัวอย่างดังภาพ

All done! เสร็จสิ้นการตั้งค่าความปลอดภัยฐานข้อมูล mysql เบื้องต้นแล้ว

PHP

4. ติดตั้งตัวประมวลผล PHP on Ubuntu Server 22.04

เนื่องจาก PHP เป็นตัวประมวลผลที่สามารถเชื่อมต่อกับฐานข้อมูล MySql ได้แต่เมื่ออยู่บน Apache จำเป็นต้องมีการปรับแต่งไลบารี่เพื่อให้สามารถทำงานได้ โดยใช้แพคเกจ libapache2-mod-php ดังนี้

sudo apt install php libapache2-mod-php php-mysql -y
#คำสั่งตรวจสอบเวอร์ชั่นที่ติดตั้ง PHP สำเร็จแล้วได้เป็น Version 8.1.2
php -v
#(**ส่วนนี้ยังไม่ต้องคอนฟิก) 
# NOTE การตั้งค่าระบบ PHP.ini ที่ใช้บ่อย
ไฟล์คอนฟิกอยู่ที่พาธ /etc/php/8.1/apache2/php.ini
upload_max_filesize = 96M
post_max_size = 64M
memory_limit = 512M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000

phpMyAdmin

5. ติดตั้งระบบจัดการฐานข้อมูล phpMyadmin on Ubuntu Server 22.04

เมื่อเรามีฐานข้อมูล MySQLจากข้อ 3 แล้ว การบริหารจัดการข้อมูลด้วยคำสั่งแบบ CLI เป็นเรื่องยุ่งยากพอสมควร เราจึงต้องติดตั้งระบบจัดการแบบ GUI (web-base) เพื่อให้ใช้ง่ายขึ้นฐานข้อมูลง่ายขึ้น

ติดตั้งโปรแกรม phpMyAdmin

#ติดตั้ง phpmyadmin
sudo apt install phpmyadmin

#*** หากไม่ขึ้นหน้าสีชมพู ให้ใช้คำสั่งนี้
sudo apt install phpmyadmin --fix-missing
1.เลือก [ * ] apache2 (กด space bar เพื่อติ๊ก * ลงในช่อง) จากนั้น TAB ไปที่ <ok> แล้ว enter
2. ต้องการตั้งค่าฐานข้อมูลสำหรับ phpmyadmin ด้วยสคริป dbconfig-common หรือไม่? ให้เลือก YES
3. password for phpmyadmin ? ให้กรอกรหัสผ่านยากๆลงไป และกรอกยืนยันอีกครั้ง

รหัสผ่าน phpMyAdmin ใช้สำหรับระบบหลังบ้านของ phpMyAdmin ตั้งครั้งเดียวแล้วไม่ต้องจำเพราะจะถูกเก็บไว้ที่ไฟล์ /etc/phpmyadmin/config-db.php

ติดตั้งส่วนขยายของ PHP

## ติดตั้งส่วนขยายของ PHP ที่ต้องใช้รัน phpmyadmin

sudo apt install php-mbstring -y

sudo apt install php-zip #<< คำสั่งนี้อาจติดErrorดาวน์โหลดpackageไม่ได้ ให้ทำคำสั่งต่อไปเลย

sudo apt install php-gd -y

sudo apt install php-json -y

sudo apt install php-curl -y

sudo phpenmod mbstring
#สุดท้าย รีสตาร์ทเซอร์วิส apache
sudo service apache2 restart

ไม่มีความคิดเห็น:

แสดงความคิดเห็น