ป้ายกำกับ: โมดูล

php -m ( Modules ) / extensionphp -m ( Modules ) / extension

การใช้คำสั่ง php -m ( ย่อมาจาก Modules ) เป็นหนึ่งในคำสั่งพื้นฐานที่สำคัญที่สุดสำหรับนักพัฒนา PHP และผู้ดูแลระบบเซิร์ฟเวอร์ ( SysAdmin ) เพื่อตรวจสอบว่า PHP “ทำอะไรได้บ้าง” ในขณะนั้น ช่วยได้มากในการติดตั้งและปรับให้ WordPress ทำงานได้ดี


💡 php -m คืออะไร ?

คำสั่งนี้ใช้สำหรับ แสดงรายชื่อโมดูล ( Extensions ) ทั้งหมดที่ถูกโหลดเข้ามาในระบบ PHP ณ ขณะนั้น ไม่ว่าจะเป็นโมดูลพื้นฐาน ( Core ) หรือโมดูลที่ติดตั้งเพิ่ม ( เช่น Redis, MySQLi, Imagick )


🛠 วิธีการใช้งานเบื้องต้น

เพียงพิมพ์คำสั่งใน Terminal หรือ Command Prompt
php -m

ผลลัพธ์ที่ได้จะแบ่งเป็น 2 ส่วนหลัก

  1. [PHP Modules]: รายชื่อ Extension ทั่วไป เช่น curl, mbstring, openssl
  2. [Zend Modules]: รายชื่อ Extension ที่ทำงานในระดับลึกของเอนจิน เช่น Zend OPcache

เช่น

php -m
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
hash
iconv
igbinary
imagick
intl
json
lexbor
libxml
mbstring
mcrypt
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
random
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
uri
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

🔍 เทคนิคการใช้งานขั้นสูง ( Advanced Usage )

การดูรายชื่อทั้งหมดอาจจะตาลาย หากคุณกำลังตามหาโมดูลเฉพาะเจาะจง ให้ใช้เทคนิคเหล่านี้ครับ


ค้นหาโมดูลที่ต้องการ ( Grep )

ถ้าอยากรู้ว่าติดตั้ง Redis หรือ APCu หรือยัง ?
php -m | grep -i redis
( Option -i ช่วยให้ค้นหาแบบไม่สนตัวพิมพ์เล็ก-ใหญ่ )


ตรวจสอบเวอร์ชันและรายละเอียดของโมดูล

หากพบชื่อโมดูลแล้ว แต่อยากรู้ว่ามันตั้งค่าไว้อย่างไร ( เช่น เช็คค่า memory_limit หรือ path ของ config )
php --ri redis
คำสั่ง --ri (Resource Info) จะแสดงการตั้งค่าทั้งหมดของโมดูลนั้น ๆ


ตรวจสอบจาก PHP-FPM ( สำหรับสาย Web Server )

ข้อควรระวัง: บางครั้ง php -m ใน Terminal ( CLI ) แสดงผลอย่างหนึ่ง แต่หน้าเว็บ ( FPM ) กลับรันไม่ได้ เพราะใช้ไฟล์ php.ini คนละชุดกัน หากคุณใช้ Nginx + PHP-FPM ให้เช็คโมดูลผ่านคำสั่งนี้เพื่อให้มั่นใจว่าเป็นตัวเดียวกับที่เว็บใช้
php-fpm8.5 -m
( เปลี่ยนเลขเวอร์ชันตามที่คุณใช้งาน )


⚠️ ข้อควรระวัง: CLI vs Web ( FPM )

หนึ่งในปัญหาที่พบบ่อยที่สุดคือ “ใน Terminal เช็ค php -m แล้วมีโมดูล แต่รันบนเว็บแล้วฟ้องว่า Class not found”

  • PHP CLI: ใช้ไฟล์คอนฟิกที่ /etc/php/8.5/cli/php.ini
  • PHP-FPM: ใช้ไฟล์คอนฟิกที่ /etc/php/8.5/fpm/php.ini

คำแนะนำ: หากคุณติดตั้งโมดูลใหม่ อย่าลืมสั่ง Restart Service เสมอ
sudo systemctl restart php8.5-fpm


📌 สรุป

php -m คือ “เข็มทิศ” ของคุณเมื่อเกิดปัญหาเกี่ยวกับฟังก์ชันหาย ( Function not found ) หรือต้องการตรวจสอบความพร้อมของเซิร์ฟเวอร์ก่อนเริ่มโปรเจกต์ใหม่

[!TIP] ก่อนที่คุณจะแก้ไขหรือติดตั้งโมดูลใหม่ผ่านคำสั่งเหล่านี้ อย่าลืมทำ Snapshot หรือ Backup คอนฟิกของ Nginx / PHP เพื่อความปลอดภัยของระบบครับ!


อ่านเพิ่มเติม