ในบทความนี้จะช่วยแนะนำวิธีการติดตั้ง phpMyAdmin เพื่อจัดการกับฐานข้อมูล ซึ่ง phpMyAdmin เป็นโปรแกรมที่ถูกออกแบบมาไว้ใช้จัดการฐานข้อมูลผ่านเว็บบราวเซอร์ โดยสามารถสร้าง ลบ แก้ไขหรืออัพเดทได้เช่นเดียวกัน

 

ขั้นตอนที่ 1 ตรวจสอบที่เครื่องว่ามีการติดตั้ง LEMP Stack แล้วหรือไม่

[root@ns1 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core) 

[root@ns1 ~]# nginx -v 
nginx version: nginx/1.16.1 

[root@ns1 ~]# php-fpm -v 
PHP 7.3.16 (fpm-fcgi) (built: Mar 17 2020 10:18:38) 
Copyright (c) 1997-2018 The PHP Group 
Zend Engine v3.3.16, Copyright (c) 1998-2018 Zend Technologies 

[root@ns1 ~]# mysql -V 
mysql Ver 15.1 Distrib 10.3.22-MariaDB, for Linux (x86_64) using readline 5.1

หากยังไม่ได้ดำเนินการติดตั้ง ให้ทำการติดตั้งซอฟแวร์ที่กล่าวมาทั้งหมดก่อน

 

ขั้นตอนที่ 2 ดำเนินการติดตั้ง phpMyAdmin 

เข้าเว็บไซต์ของ phpMyAdmin แล้วเลือก copy link address เพื่อนำ URL ที่ได้ ไปทำการดาวน์โหลดไฟล์ จากนั้นให้ทำการแยกไฟล์ไปไว้ที่ Path root ของ Nginx

# yum install epel-release
# yum install phpmyadmin
# wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip

# unzip phpMyAdmin-5.0.2-all-languages.zip -d /usr/share/nginx/html/
# cd /usr/share/nginx/html/
# mv phpMyAdmin-5.0.2-all-languages/ phpMyAdmin

หลังจากเปลี่ยนชื่อเรียบร้อยแล้ว ไปที่ไดเรคทอรี่ของ phpMyAdmin  และทำการ copy ไฟล์ config.sample.inc.php เพื่อให้สามารถแก้ไขค่า config ได้ตามต้องการ

# cd phpMyAdmin
# cp config.sample.inc.php config.inc.php

 

ขั้นตอนที่ 3 ตั้งค่า phpMyAdmin สำหรับ Nginx

เข้าไปที่ Path การจัดการไฟล์ Config ของ Nginx แล้วสร้างไฟล์ขึ้นมาไว้ใช้จัดการ phpMyAdmin

# cd /etc/nginx/conf.d/
# vi phpMyAdmin.conf

วางค่าดังนี้

server {
        server_name Your_IP_ADDRESS;
        root /usr/share/nginx/html/;
        location / {
		index index.html index.htm index.php;
        }

        location ~ \.php$ {
		include /etc/nginx/fastcgi_params;
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name;
        }
}

จากนั้น restart service

# systemctl restart nginx
# systemctl restart php-fpm

 

ขั้นตอนที่ 4 สร้าง User เพื่อใช้งาน phpMyAdmin

สร้าง User พร้อมกับให้สิทธิในการใช้ฐานข้อมูลสำหรับ User ดังกล่าวให้เรียบร้อย

# mysql -u root -p
# CREATE USER ‘Adminpma’@’localhost’ IDENTIFIED BY’Admin012’;
# GRANT ALL PRIVILEGES ON *.* TO 'Adminpma’@'localhost' WITH GRANT OPTION;
# FLUSH PRIVILEGES;

 

ขั้นตอนที่ 5 เข้าสู่หน้าจัดการ phpMyAdmin 

จะพบกับหน้า Login ดังภาพด้านล่าง

# YOUR_IP_ADDRESS/phpMyAdmin

หลังจาก Login เรียบร้อยแล้ว หากพบแจ้งเตือนดังต่อไปนี้

 

ท่านสามารถปิดการแจ้งเตือนทั้ง 2 อย่างได้ โดยดำเนินการตามข้อมูลด้านล่าง

เมื่อเจอ “The configuration file now needs a secret passphrass (blowfish_secret).” ให้เข้าไปที่ path ของ phpMyAdmin และแก้ไขไฟล์ config.inc.php

# vi config.inc.php

หาค่า

$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ 

แล้วเปลี่ยนเป็นค่าเฉพาะของท่านเองโดยการ generate ค่า blowfish_secret ขึ้นมา เนื่องจากค่าดังกล่าวเป็น passphrase ซึ่งข้อความที่เข้ารหัสจะต้องมีค่าไม่ซ้ำกัน

 

ส่วนของ “The $cfg[‘TempDir’] (/usr/share/nginx/html/phpMyAdmin/tmp/) is not accessible. phpMyAdmin is not able to cache templates and will be slow because of this”

สามารถแก้ไขได้โดยการสร้างไดเรคทอรี่ tmp ที่ path : /usr/share/nginx/html/phpMyAdmin/ 

และเปลี่ยนสิทธิของไดเรคทอรี่ tmp ให้เป็น 777 

จากนั้นให้ทดลอง login เข้าหน้าจัดการ phpMyAdmin อีกครั้ง จะพบว่าไม่มีการแจ้งเตือนดังกล่าวขึ้นมาแล้ว

 

และหากต้องการให้แต่ละโดเมนมีหน้าจัดการ phpMyAdmin เป็นของโดเมนนั้นๆก็สามารถทำได้ โดยดำเนินการตามข้อ 2 แต่ให้แยกไฟล์ไปที่ path root ของโดเมนดังกล่าวแทน เช่น /home/user1/public_html/phpMyAdmin เป็นต้น

และให้ข้ามขั้นตอนที่ 3 ไปสร้าง User ไว้ใช้งาน พร้อมกับให้สิทธิ User กับฐานข้อมูล เฉพาะโดเมนดังกล่าว ทั้งนี้หากพบการแจ้งเตือนดังข้อมูลด้านบนก็สามารถดำเนินการตามข้อมูลที่กล่าวไปก่อนหน้านี้ได้ แต่ต้องแก้ไขที่ไฟล์ config.inc.php ของแต่ละโดเมน

 

HostPacific หวังเป็นอย่างยิ่งว่าผู้ใช้งานทุกท่านที่ได้อ่านบทความนี้ จะนำการติดตั้ง phpMyAdmin ร่วมกับ Nginx ไปใช้ในการจัดการฐานข้อมูลบน VM หรือเซิฟเวอร์ของท่าน ซึ่งการติดตั้ง phpMyAdmin เป็นอีกหนึ่งทางเลือกในการใช้งานผ่าน SSH และจัดการกับฐานข้อมูลได้เช่นกัน