ติดตั้ง mysqli ใน Docker PHP 5.6 FPM ในเครื่อง CentOS 9


เข้าไปใน container ที่รัน PHP ก่อน

ใช้คำสั่งดู container ที่กำลังรัน:

docker ps

แล้วใช้คำสั่งเข้า container:

docker exec -it <container_id_or_name> /bin/bash

จากนั้นลองรัน

docker-php-ext-install mysqli

ขั้นตอนถัดไปที่ควรทำ

1.ตรวจสอบว่า mysqli ถูกโหลดใน php.ini หรือในไฟล์ config เพิ่มเติม

grep -r mysqli /usr/local/etc/php/

ดูว่ามีบรรทัด extension=mysqli.so หรือ extension=mysqli อยู่ในไฟล์ไหนบ้าง

2.สตาร์ทเว็บเซิร์ฟเวอร์หรือ PHP-FPM (แล้วแต่คุณใช้ตัวไหน)

service php-fpm restart

3.ตรวจสอบว่า PHP โหลด extension mysqli สำเร็จ

php -m | grep mysqli

จากผลลัพธ์นี้

/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini:extension=mysqli.so

แปลว่า mysqli ถูก enable ผ่านไฟล์ config ที่ conf.d/docker-php-ext-mysqli.ini แล้วนะครับ

4.ทดสอบอีกครั้งว่าปัญหา Database connection error หายไปหรือยัง

เพิ่มเติมวิธีรีสตาร์ท

วิธีรีสตาร์ทเว็บเซิร์ฟเวอร์หรือ PHP-FPM ขึ้นกับว่าใน Docker container ของคุณใช้งานอะไรอยู่ ถ้าไม่แน่ใจลองเช็คดูตามนี้ครับ

รีสตาร์ท container จากฝั่งโฮสต์ Docker แทน

1.ออกจาก container (ถ้าอยู่ใน shell container)

exit

2.เช็ค container ที่กำลังรัน

docker ps

3.รีสตาร์ท container ด้วยคำสั่ง

docker restart <container_id_or_name>

เช่น

docker restart 8999998507019

วิธีรีสตาร์ท PHP-FPM ใน container นี้

ง่ายที่สุดคือรีสตาร์ท container ทั้งหมดเลย:

docker restart php56-fpm

, ,