ระบบฐานข้อมูลเบื้องต้นด้วย phpMyAdmin การทำงานร่วมกับ WordPress

บทนำ

ปฏิบัติการนี้คือการติดตั้ง MySQL Server, phpMyAdmin, และ WordPress ด้วย Docker โดยนักศึกษาทำตามลำดับขั้นตอนที่กำหนดให้ โดยนักศึกษาพิมพ์คำสั่งต่าง ๆ ของ Docker ตามที่กำหนดให้ ซึ่งความหมายและการทำงานต่าง ๆ ของคำสั่ง Docker จะอธิบายอีกทีภายหลัง อย่างไรก็ตามคำสั่งต่าง ๆ ของ Docker ไม่ใช่วัตถุประสงค์หลักของวิชา ดังนั้นเราจะใช้ค่า config ของ Docker ต่าง ๆ ที่จำเป็นต้องใช้เท่านั้น

วัตถุประสงค์หลักในปฏิบัติการนี้คือนักศึกษาทุกคนจะต้องติดตั้ง MySQL Server, phpMyAdmin, และ WordPress โดยใช้คำสั่ง Docker ที่กำหนดให้

การติดตั้ง MySQL Server, phpMyAdmin และ WordPress ด้วยโปรแกรม XAMPP สำหรับระบบปฏิบัติการ Window

ขั้นตอนที่ 1: ดาวน์โหลดโปรแกรม XAMPP installer package จากเว็บไซต์  ให้เลือกดาวน์โหลดเวอร์ชั่นล่าสุด และตามระบบปฏิบัติการทีใช้ได้ที่ https://www.apachefriends.org/index.html

ขั้นตอนที่ 2: เลือกดาวน์โหลดโปรแกรม XAMPP for Windows ขี้นอยู่กับระบบปฏิบัติการ (OS) ของเครื่องผู้ใช้งาน เวอร์ชัน XAMPP 8.2.12 (PHP 8.2.12) ณ วันที่ 15 สิงหาคม 2563 จากนั้นกด Save ไฟล์ตัวติดตั้งไว้ที่เครื่องก่อน หรือจะเลือก Run ติดตั้งโปรแกรมก็สามารถทำได้เลย

ขั้นตอนที่ 3: จากนั้นไปที่ไฟล์ติดตั้งทำการ ติดตั้งโปรแกรม กด OK   เมื่อระบบมีการแจ้งเตือนเรื่องของการกำหนดสิทธิ์การใช้งานระบบกับการติดตั้งโปรแกรม XAMPP เพื่อป้องกันปัญหานักศึกษาอาจติดตั้งไปยังไดร์อื่นนอ่กจากไดร์ C เช่น D หรือ E เป็นต้น

ขั้นตอนที่ 4: คลิกเลือกส่วนประกอบของโปรแกรมที่ต้องการติดตั้ง  โดยในที่นี้ให้เลือกคลิกทุกตัว

ขั้นตอนที่ 5: เปิดโปรแกรม XAMPP จาก Control Panel Application โดยไปที่ directory ที่นักศึกษาติดตั้งโปรแกรมไว้ เช่น D:\xampp จากนั้นเรียกใช้คำสั่ง xampp-control

ขั้นตอนที่ 6: Start Apache, MySQL services โดยกดปุ่ม start

ขั้นตอนที่ 7: เปิดบราวเซอร์ไปที่ http://localhost ดังแสดงในรูป

นักศึกษาสามารถเปิด phpMyAdmin จากเมนูด้านบนขวา

ขั้นตอนที่ 8: คลิกเมนู phpMyAdmin จะปรากฎดังรูป

ขั้นตอนที่ 9: คลิกลิงค์ New เพื่อสร้างฐานข้อมูลสำหรับ WordPress ตั้งชื่อเป็น wordpress_db จากนั้นกดปุ่ม Create

ขั้นตอนที่ 10: ดาวน์โหลด WordPress จากลิงค์ https://itsci.mju.ac.th/~watcharin/downloads/it241/wordpress-6.6.zip หรือนักศึกษาอาจดาวน์โหลดจาก Official Site ได้ https://wordpress.org/download/ จากนั้นแตกไฟล์ไว้ใน directory ที่ติดตั้งโปรแกรม xampp เช่น D:\xampp\htdocs แต่ก่อนคัดลอกให้ลบไฟล์ต่าง ๆ ใน D:\xampp\htdocs ก่อน (นักศึกษาอาจ backup โดยคัดลอกไปเก็บไว้ที่อื่นก่อนได้) หลังจากแตกไฟล์ wordpress-6.6.zip แล้วดังแสดงในรูป

ขั้นตอนที่ 11: เปิดบราวเซอร์ไปที่ http://localhost ดังแสดง ให้กดปุ่ม Let's go!

ขั้นตอนที่ 12: กรอกข้อมูลดังแสดงในรูป (Password ให้ว่างไว้)

ขั้นตอนที่ 13: กดปุ่ม Run installation

ขั้นตอนที่ 14: ตั้งชื่อเว็บและรหัสผ่านของ Admin จากนั้นกดปุ่ม Install WoprdPress เมื่อระบบติดตั้งเสร็จจะปรากฎหน้าจอให้กดลิงค์ Log In ให้นักศึกษากรอกรหัสที่ตั้งไว้ Username: admin และ Password: 1234

ขั้นตอนที่ 15: เสร็จสิ้นขั้นตอนการติดตั้ง

Pre-Lab

ให้นักศึกษาเปิดโปรแกรม Docker โดยโปรแกรมจะแสดงหน้าจอดังแสดงต่อไปนี้

การติดตั้ง MySQL Server

การติดตั้ง MySQL Server ด้วย Docker ประกอบไปด้วยขั้นตอนต่าง ๆ ดังต่อไปนี้

ขั้นตอนที่ 1. ให้นักศึกษาสร้าง directory ชื่อ it241 ในเครื่องคอมพิวเตอร์ของตัวเอง เช่นสร้างไว้ที่ C:\workspaces\it241

หรือนักศึกษาอาจสร้างใน directory อื่นได้ตามต่้องการเช่น D:\workspaces\it241 หรือ E:\workspaces\it241 เป็นต้น

PS C:\workspaces\it241> tree
C:.
└────workspaces
     └───it241

ขั้นตอนที่ 2. ให้นักศึกษาสร้างไฟล์ชื่อ docker-compose.yaml ไว้ใน directory ที่นักศึกษาได้สร้างขึ้น เช่น C:\workspaces\it241\docker-compose.yaml

PS C:\workspaces\it241> tree
C:.
└────workspaces
     └───it241
         └───docker-compose.yaml

ขั้นตอนที่ 3. สร้าง MySQL Server service โดยพิมพ์คำสั่งดังต่อไปนี้ลงในไฟล์ docker-compose.yaml

services:
mysql:
image: "mysql:latest"
restart: always
volumes:
- ./mysql-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=1234

- MYSQL_DATABASE=wordpress_db

ขั้นตอนที่ 4. รันและทดสอบ โดยใช้คำสั่ง docker-compose up -d (Docker compose คือคำสั่ง command line ดังนั้นจำเป็นต้องเปิด Terminal เพื่อให้ Docker Compose ทำงาน)

หากเป็นการรันครั้งแรก Docker จะโหลด MySql Image และติดตั้งระบบฐานข้อมูลให้รอประมาณ 1-2 นาที

ขั้นตอนที่ 5. เมื่อ Docker ติดตั้งค่าต่าง ๆ เสร็จเรียบร้อยให้รันคำสั่ง docker-compose down เพื่อหยุดการทำงานก่อนเพื่อติดตั่ง service อื่น ๆ ในขั้นตอนต่อไป

การติดตั้ง phpMyAdmin service

ขั้นตอนที่ 1. เพิ่ม phpMyAdmin service โดยเพิ่มคำสั่งดังต่อไปนี้ในไฟล์ docker-compose.yaml ให้ต่อจาก mysql service ดังแสดงต่อไปนี้

services:
mysql:
image: "mysql:latest"
restart: always
volumes:
- ./mysql-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=1234

- MYSQL_DATABASE=wordpress_db

phpMyAdmin:
image: phpmyadmin:latest
restart: always
ports:
- "3001:80"
depends_on:
- mysql
environment:
- PMA_HOST=mysql
- PMA_PORT=3306
- MYSQL_ROOT_PASSWORD=1234

- UPLOAD_LIMIT=200M

ขั้นตอนที่ 2. รันและทดสอบ โดยใช้คำสั่ง docker-compose up -d

ขั้นตอนที่ 3. เปิดบราวเซอร์พิมพ์ URL http://localhost:3001/ ดังแสดงต่อไปนี้ (กรอก Username: root และ Password: 1234)

ขั้นตอนที่ 4. รันคำสั่ง docker-compose down เพื่อหยุดการทำงานก่อนเพื่อติดตั่ง service อื่น ๆ ในขั้นตอนต่อไป

หมายเหตุ: นักศึกษาสามารถศึกษาการติดตั่งค่าต่าง ๆ ของ Docker PhpMyAdmin เพิ่มเติมได้ที่ https://github.com/wildscamp/docker-phpmyadmin

การติดตั้ง WordPress service

ขั้นตอนที่ 1. เพิ่ม WordPress service โดยเพิ่มคำสั่งดังต่อไปนี้ในไฟล์ docker-compose.yaml

services:
mysql:
image: "mysql:latest"
restart: always
volumes:
- ./mysql-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=1234

- MYSQL_DATABASE=wordpress_db

phpMyAdmin:
image: phpmyadmin:latest
restart: always
ports:
- "3001:80"
depends_on:
- mysql
environment:

- PMA_HOST=mysql
- PMA_PORT=3306
- MYSQL_ROOT_PASSWORD=1234

wordpress:
image: wordpress:latest
restart: always
ports:
- "3002:80"
depends_on:
- mysql
environment:
- WORDPRESS_DB_HOST=mysql
- WORDPRESS_DB_USER=root
- WORDPRESS_DB_PASSWORD=1234
- WORDPRESS_DB_NAME=wordpress_db

- UPLOAD_LIMIT=200M

volumes:
- ./wordpress:/var/www/html

- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini

ขั้นตอนที่ 2. สร้างไฟล์ uploads.ini ไว้ที่เดียวกับไฟล์ docker-compose.yaml

C:.
└───workspaces
└───it241
├───mysql-data
│ └───...
├───docker-compose.yaml
└───uploads.ini

ขั้นตอนที่ 3. กรอกข้อมูลในไฟล์ uploads.ini การกำหนดค่านี้จะทำให้สามารถติดตั้ง Extension หรือ Plugin โดยการ upload ขั้นตอนนี้จะทำให้ WordPress สามารถ download และติดตั้ง plugins ไฟล์ที่มีขนาดใหญ่ได้ ซึ่งปกติแล้ว PHP จะจำกัดขนาดไฟล์ในการ upload เพิ่มโค้ดดังแสดงต่อแสดงไปนี้

file_uploads = On
memory_limit = 500M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 600

ขั้นตอนที่ 4. รันและทดสอบ Docker services ด้วยคำสั่ง docker-compose up -d ดังแสดงต่อไปนี้ (รอประมาณ 1-2 นาทีเพื่อให้ wordpress โหลดและติดตั้งค่าง ๆ)

หลังจากรันคำสั่งรายการ files และ directories ใน C:\workspaces\it241\wordpress ควรแสดงดังต่อไปนี้

C:.
└───workspaces
└───it241
├───mysql-data
│ └───...
├───wordpress
│ └───...
├───docker-compose.yaml
└───uploads.ini

ตรวจสอบความถูกต้องของการติดตั้ง

รายละเอียดของ services ต่าง ๆ ที่ปรากฎในหน้า Docker Desktop ทุก services จะต้องมีสถานะ Running ดังแสดงอต่อไปนี้

ขั้นตอนที่ 5. เพิ่มโค้ดในไฟล์ wp_config.php ด้วยโค้ดด้านล่างต่อไปนี้

C:.
└───workspaces
    └───it241
        ├───mysql-data
        │   └───...
        ├───WordPress_db
        │   ├───...
        │   ├───wp_config.php <<- แก้ไขไฟล์นี้
        │   └───...
        ├───docker-compose.yaml
        └───uploads.ini

แทรกโค้ดไปในตําแหน่งที่ กําหนดให้ดังต่อไปนี้ จะทําให้การติดตั้ง Extension สามารถติดตั้งได้โดยไม่ต้องใช้ FTP Protocol (ประมาณบรรรทัดที่ 66)

...
/** The database collate type. Don't change this if in doubt. */
define('DB_COLLATE', getenv_docker('WordPress_DB_COLLATE', ''));

define('FS_METHOD', 'direct');
...

เข้าสู่ phpMyAdmin  โดยพิมพ์ที่ url : http://localhost:3001

Username: root
Password: 1234

เมื่อ login แล้วจะเข้าสู่หน้าจอ

การตั้งค่า WordPress

เข้าสู่ WordPress  โดยไปที่ url : http://localhost:3002/wp-admin จะปรากฎหน้าเว็บดังแสดงต่อไปนี้

ให้เลื่อกรายการ English (United States) จากนั้นกดปุ่ม Continue จากนั้น WordPress จะแสดงหน้าจอให้ตั้งค่าครั้งแรกต่าง ๆ ดังแสดงต่อไปนี้ (บางครั้งหน้านี้อาจไม่ปรากฎขึ้นอยู่กับเวอร์ชัน wordpress ในช่วงเวลาที่นักศึกษาทำการติดตั้ง)

เมื่อกรอกข้อมูลเสร็จแล้ว

จะแสดงหน้าเว็บให้ลงชื่อเข้าสู่ระบบ ในตอนนี้เรามีแค่ผู้ใช้เดียวคือ Admin

เมื่อเข้าสู่หน้าเว็บด้วยผู้ใช้ที่เป็น Admin จะมีรายการเมนูให้สร้าง post, page, media, user, และเครื่องมือต่าง ๆ

หากไม่ได้ลงชื่อเข้าสู่ระบบให้เข้าไปที่ลิงค์ url: http://localhost:3002

แบบฝึกหัดเพิ่มเติม

ให้นักศึกษาแก้ไขหน้า page “Simple Page” ของ WordPress โดยแสดงข้อมูล Profile ของนักศึกษาดังแสดงในตัวอย่างต่อไปนี้

** นักศึกษาทำเป็นภาษาไทยหรืออังกฤษก็ได้

** ให้นักศึกษาเพิ่มเติมข้อมูลอื่น ๆ เช่น ประวัติการศึกษา ความสามารถพิเศษ และอื่น ๆ พร้อมทั้งตกแต่งให้สวยงาม

** ให้นักศึกษา Capture หน้าจอส่งใน MS Teams Assignment เก็บ 5 คะแนน

อ.ดร.วัชรินทร์ สาระไชย
อ.ดร.วัชรินทร์ สาระไชย

Hello! I’m Watcharin Sarachai, an enthusiastic and dedicated educator with a passion for advancing the field of computer science. I hold a Ph.D. in Computer Science from Chiang Mai University, where I focused on cutting-edge research in Machine Learning, Computer Programming, and Embedded Systems.

Articles: 18