การติดตั้ง phpMyAdmin บน CentOS


ขั้นตอนการติดตั้ง phpMyAdmin บน CentOS

1. ติดตั้ง Apache, MariaDB, PHP

sudo yum install httpd mariadb-server php php-mysqlnd php-mbstring php-xml php-json -y

2. เริ่มบริการ Apache และ MariaDB

sudo systemctl start httpd
sudo systemctl enable httpd

sudo systemctl start mariadb
sudo systemctl enable mariadb

3. ตั้งรหัสผ่าน root ของ MariaDB

sudo mysql_secure_installation

ตอบคำถามตามนี้:

  • Enter current password for root: (กด Enter ถ้ายังไม่ได้ตั้ง)
  • Set root password? [Y/n]: Y
  • New password: ใส่รหัสผ่านที่ต้องการ
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]: Y
  • Reload privilege tables now? [Y/n]: Y

4.ติดตั้ง phpMyAdmin

CentOS ไม่มี phpMyAdmin อยู่ใน repo หลัก ต้องเปิด EPEL repository ก่อน

sudo yum install epel-release -y
sudo yum install phpmyadmin -y

5. แก้ไขการตั้งค่าการเข้าถึง phpMyAdmin

แก้ไฟล์ config เพื่ออนุญาตให้เข้าถึงจาก IP อื่น (ไม่ใช่แค่ localhost)

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

หา block ที่เป็นแบบนี้:

Require ip 127.0.0.1
Require ip ::1

แล้วเปลี่ยนเป็น:

Require all granted

หรือถ้าคุณต้องการให้เข้าถึงเฉพาะ IP เฉพาะเจาะจง:

Require ip 192.168.1.100

6. รีสตาร์ท Apache

sudo systemctl restart httpd

7. เข้าผ่านเว็บเบราว์เซอร์

เปิดเบราว์เซอร์แล้วเข้า:

http://<IP-Address-Server>/phpmyadmin

เช่น: http://192.168.1.100/phpmyadmin

8. ล็อกอินด้วย root และรหัสผ่านที่ตั้งไว้

หากไม่สามารถล็อกอินด้วย root ได้:

  • แก้ไขไฟล์ /etc/phpMyAdmin/config.inc.php
  • เพิ่มบรรทัด:
$cfg['Servers'][$i]['AllowRoot'] = true;

วิธีอนุญาตให้เข้าถึง phpMyAdmin

ให้คุณ แก้ไขไฟล์ /etc/httpd/conf.d/phpMyAdmin.conf แล้ว เพิ่ม/แทนที่ block ที่เกี่ยวกับไดเรกทอรี /usr/share/phpMyAdmin/ แบบนี้:

เปลี่ยนจาก

<Directory /usr/share/phpMyAdmin/>
    Require all denied
</Directory>

เป็น:

<Directory /usr/share/phpMyAdmin/>
    Require all granted
</Directory>

หากไม่มี block นี้อยู่ในไฟล์ คุณสามารถ เพิ่มใหม่ เข้าไปแบบนี้:

<Directory /usr/share/phpMyAdmin/>
    AllowOverride All
    Require all granted
</Directory>

ส่วน setup/lib และ setup/frames ควรปล่อยให้เป็น Require all denied ตามเดิมเพื่อความปลอดภัย

จากนั้นให้รีสตาร์ท Apache:

sudo systemctl restart httpd

เพิ่ม user ใหม่สำหรับ phpMyAdmin

ลองเพิ่ม user ใหม่สำหรับ phpMyAdmin แยกจาก root (ปลอดภัยกว่าด้วย):

สร้าง user ใหม่:

sudo mysql -u root -p

แล้วใน MySQL prompt:

CREATE USER 'phpadmin'@'localhost' IDENTIFIED BY 'MyStrongPass123!';
GRANT ALL PRIVILEGES ON *.* TO 'phpadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

แล้วไปล็อกอินใน phpMyAdmin ด้วย:

  • Username: phpadmin
  • Password: MyStrongPass123!

ให้สิทธิ์การสร้างฐานข้อมูลแก่ user

ถ้า user นั้นไม่มีสิทธิ์ ให้รันคำสั่งนี้ (ล็อกอินด้วย root หรือ user ที่มีสิทธิ์สูงสุด):

GRANT ALL PRIVILEGES ON *.* TO 'phpadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

หรือถ้าต้องการให้สิทธิ์แค่สร้างฐานข้อมูลและใช้งาน:

GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT ON *.* TO 'phpadmin'@'localhost';
FLUSH PRIVILEGES;

,