ฉันจะดูส่วนขยายที่โหลดโดย PHP ได้อย่างไร


156

มันต้องอยู่ที่ไหนซักแห่งใน phpinfo () แต่ฉันไม่รู้ว่าอยู่ที่ไหน มันควรจะอยู่ภายใต้ส่วน "โมดูลเพิ่มเติม"? ที่อื่น? ฉันพยายามหาสาเหตุที่ทำให้ส่วนขยายบางอย่างไม่ปรากฏขึ้นให้โหลด แต่ฉันไม่รู้ด้วยซ้ำว่าฉันควรมองที่ใด

คำตอบ:


238

วิ่ง

php -m
จะให้โมดูลทั้งหมดแก่คุณและ
php -i
จะให้รายละเอียดเพิ่มเติมแก่คุณเกี่ยวกับการกำหนดค่าปัจจุบัน


60

เรียกใช้คำสั่ง คุณจะได้รับการติดตั้งขอบเขต:

php -r "print_r(get_loaded_extensions());"

หรือเรียกใช้คำสั่งนี้เพื่อรับโมดูลการติดตั้งและถอนการติดตั้งด้วยเวอร์ชัน

dpkg -l | grep php5

37

ใช้get_loaded_extensions()ฟังก์ชั่น PHP


7
มันใช้งานได้ในบรรทัดคำสั่งphp -r 'print_r(get_loaded_extensions());'มันส่งออกรายการเดียวกันกับphp -m
phpguru

1
cmd เป็นโมดูลการส่งออกที่มีหมายเลขเวอร์ชั่น:php -r "phpinfo(INFO_MODULES);" | grep -B 3 -i version > modules.txt
Agnius Vasiliauskas

33

คุณต้องการเรียกใช้:

 php -m 

บนบรรทัดคำสั่ง

หรือถ้าคุณสามารถเข้าถึงไฟล์การกำหนดค่าเซิร์ฟเวอร์ที่เปิดอยู่

/etc/php5/apache2/php.ini

และดูส่วนขยายทั้งหมด

คุณสามารถเปิดหรือปิดใช้งานได้โดยสลับระหว่างเปิดและปิดเช่นนี้

<Extension_name> = <[On | Off]>

17
  <?php 
      echo "<pre>";
      print_r(get_loaded_extensions());
      echo "<pre/>";
 ?>

รายการจาก php -m นั้นยาวกว่า get_loaded_extensions () ซึ่งไม่แสดงรายการ curl, mbstring และอื่น ๆ อีกมากมาย? ทำไมถึงเป็นอย่างนั้น? ฉันติดตั้ง curl, mbstring แต่ดูเหมือนว่าจะไม่แสดงจากสคริปต์ PHP
Meryan

วิธีการจัดเรียง get_loaded_extensions () ตามลำดับตัวอักษร? เพื่อเปรียบเทียบกับการติดตั้ง php อื่น ๆ ที่ทำงานขอบคุณ
Meryan

6

get_loaded_extensions() ส่งออกรายการส่วนขยาย

phpinfo(INFO_MODULES); ส่งออกส่วนขยายและรายละเอียดของพวกเขา


5

หากคุณต้องการทดสอบว่ามีการโหลดส่วนขยายเฉพาะคุณสามารถใช้extension_loadedฟังก์ชั่นนี้ได้หรือไม่ดูเอกสารประกอบที่นี่

php -r "var_dump(extension_loaded('json'));"

1

คุณกำลังมองหาส่วนขยายเฉพาะหรือไม่ ในของคุณphpinfo();เพียงแค่กดCtrl+ Fในเว็บเบราว์เซอร์ของคุณพิมพ์ตัวอักษร 3-4 ตัวแรกของส่วนขยายที่คุณกำลังมองหาและควรแสดงให้คุณเห็นว่ามันกำลังโหลดหรือไม่

โดยปกติแล้วphpinfo()มันจะไม่แสดงส่วนขยายที่โหลดทั้งหมดไว้ในที่เดียว แต่ก็มีส่วนแยกต่างหากสำหรับส่วนขยายที่โหลดแต่ละอันซึ่งจะแสดงตัวแปรทั้งหมดเส้นทางไฟล์ ฯลฯ ดังนั้นหากไม่มีส่วนสำหรับชื่อส่วนขยายของคุณ อาจหมายความว่าไม่ได้โหลด

หรือคุณสามารถเปิดไฟล์ php.ini ของคุณและใช้วิธีCtrl+ Fเพื่อค้นหาส่วนขยายของคุณและดูว่าส่วนขยายนั้นถูกคอมเม้นต์หรือไม่ (โดยปกติคือเครื่องหมายอัฒภาคใกล้จุดเริ่มต้นของบรรทัด)


0

คุณถามว่าคุณเห็นส่วนขยายที่โหลดในเอาต์พุต phpinfo () ที่ไหน

ตอบ:

พวกเขาจะถูกระบุไว้ทางด้านล่างเป็นส่วน / ตารางแยกต่างหากและเฉพาะเมื่อพวกเขาจะโหลด นี่คือตัวอย่างของส่วนขยาย Curl ที่โหลด

ป้อนคำอธิบายรูปภาพที่นี่ ...

... ป้อนคำอธิบายรูปภาพที่นี่

ฉันติดตั้งบน Linux Debian ด้วย

sudo apt-get install php7.4-curl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.