ภายใต้สถานการณ์ปกติ หน้าของ phpinfo() สามารถแสดงได้ เริ่มจากปัญหาที่เกิดขึ้นหลังจากสามารถแสดงหน้านี้ได้
ปัญหา PHP จะแสดงบนหน้า phpinfo()
ขั้นแรก ให้ตรวจสอบว่าเส้นทางของ php.ini ของคุณถูกต้องหรือ
ไม่ ไฟล์ แต่หลังจากรีสตาร์ทเซิร์ฟเวอร์ เหตุใดจึงใช้งานไม่ได้
ตอบ:ปัญหานี้ส่วนใหญ่เกี่ยวข้องกับสถานการณ์ต่อไปนี้
เหตุผลแรกคือไฟล์ php.ini ที่ระบบอ่านไม่สอดคล้องกับไฟล์ php.ini ที่คุณแก้ไขในขณะนั้น 1. คุณสามารถตรวจสอบเซิร์ฟเวอร์ PHP ปัจจุบันที่อ่านได้ผ่านตัวเลือกเส้นทางไฟล์การกำหนดค่า (php.ini) phpinfo() php.ini คืออะไร
2. หากคุณต้องการเปลี่ยนตำแหน่งการเข้าถึงไฟล์ของ php.ini คุณสามารถดูลำดับการค้นหาของ php.ini ดังที่แสดงด้านล่าง:
a) ตำแหน่งที่ระบุโดยโมดูล SAPI (คำสั่ง PHPNiDir ใน Apache 2, ตัวเลือกบรรทัดคำสั่ง -c ใน CGI และ CLI, พารามิเตอร์ php_ini ใน NSAPI, ตัวแปรสภาพแวดล้อม PHP_INI_PATH ใน THTTPD)
b) HKEY_LOCAL_MACHINESOFTWAREPHPIniFilePath (ตำแหน่งรีจิสทรีของ Windows)
c) ตัวแปรสภาพแวดล้อม PHPRC d) ไดเร็กทอรีการทำงานปัจจุบัน (สำหรับ CLI)
e) ไดเร็กทอรีเว็บเซิร์ฟเวอร์ (สำหรับโมดูล SAPI) หรือไดเร็กทอรีที่ PHP ตั้งอยู่ (กรณีอื่น ๆ ภายใต้ Windows)
f) ไดเร็กทอรี Windows (C:windows หรือ C:winnt) หรือตำแหน่งที่ระบุโดยตัวเลือกเวลาคอมไพล์ --with-config-file-path 3. วิธีการทั่วไป: โดยการตั้งค่าตัวแปรสภาพแวดล้อม PHPRC
a) การทำงาน: คลิกขวาที่ My Computer->Properties->Advanced->Environment Variables b) สร้างตัวแปรสภาพแวดล้อมใหม่ภายใต้ตัวแปรระบบด้วย "ชื่อตัวแปรคือ PHPRC และค่าตัวแปรคือเส้นทางไฟล์ของไฟล์ php.ini ของคุณ "
เหตุผลที่สองคือ: PHP ไม่พบไลบรารีส่วนขยายที่เกี่ยวข้อง 1. ตรวจสอบตำแหน่งของไลบรารีส่วนขยายที่พบโดย PHP: คุณสามารถดูได้ในตัวเลือก extension_dir ของ phpinfo() 2. เปลี่ยนไฟล์ extension_dir ใน
php.ini เหตุผลที่สาม: ไม่มีการรีสตาร์ท IIS โดยสมบูรณ์
1. การแก้ไข php.ini จะต้องเริ่มต้นใหม่ทั้งหมดจึงจะมีผล ไม่ใช่แค่ไซต์ปัจจุบันเท่านั้น
2. ป้อน cmd หยุดเซิร์ฟเวอร์: net stop iisadmin; เริ่มเซิร์ฟเวอร์: net start w3svc
ถาม: เหตุใดฉันจึงไม่สามารถเปิดใช้งานไลบรารีส่วนขยาย MySql ใน PHP ของฉันได้
ตอบ: ใน PHP5.0 ขึ้นไป MySQL ไม่ได้เปิดใช้งานตามค่าเริ่มต้น ดังนั้นเราจึงจำเป็นต้องเปิดใช้งานด้วยตนเอง
1. หากต้องการเรียกใช้ MySql ใน PHP คุณต้องเปิดใช้งานไลบรารีลิงก์ไดนามิก php_mysql.dll ใน php.ini นอกจากนี้ คุณต้องเข้าถึงไลบรารีลิงก์ไคลเอนต์ MySQL นั่นคือไฟล์ libmysql.dll 2. คุณสามารถเปิดใช้งานได้ ไลบรารีลิงก์ไดนามิก php_mysql.dll ผ่านส่วนขยายใน php.ini และไฟล์ libmysql.dll จะต้องอยู่ในเส้นทางระบบ Windows เพื่อเข้าถึง คุณสามารถคัดลอก libmysql.dll ไปยังไดเร็กทอรี system32 หรือเพิ่มได้ เส้นทางใหม่ไปยังตัวแปรสภาพแวดล้อม PATH
3. วิธีการที่แนะนำ: ตั้งค่า PATH เพื่ออำนวยความสะดวกในการอัพเกรด PHP ในอนาคต เพียงเพิ่มโฟลเดอร์ที่มี "libmysql.dll" ตั้งอยู่หลัง PATH ในตัวแปรสภาพแวดล้อมของระบบ อย่าลืมคั่นด้วย ";" 4. [กรณี] เมื่อเร็ว ๆ นี้เซิร์ฟเวอร์ไม่พบไลบรารีส่วนขยาย MySql ทำให้โปรแกรมทำงานล้มเหลว ดังนั้น ให้ลบไฟล์ทั้งหมดและกำหนดค่าเซิร์ฟเวอร์ PHP ใหม่ แต่ท้ายที่สุดแล้ว เมื่อฉันติดตั้ง MySql ฉันไม่สามารถเปิดใช้งานไลบรารีส่วนขยาย MySql ได้
ข้อมูลที่พบใน phpinfo() มีดังนี้:
เส้นทาง:c:php
PHPRC:C:php
extension_dir:c:phpต่อ
นอกจากนี้ ฉันทดสอบการเปิดใช้งานไลบรารีอื่นๆ เช่น msql, gd2, xml และสามารถแสดงผลได้ตามปกติใน phpinfo() เพื่อพิสูจน์ว่า PHP สามารถค้นหาไลบรารีลิงก์ไดนามิก php_mysql.dll ได้ และเงื่อนไขอื่นสำหรับการทำงานของ MySql คือ เพื่อให้สามารถสืบค้นไคลเอนต์ MySQL ได้ ไลบรารีการเชื่อมต่อเทอร์มินัลคือไฟล์ libmysql.dll ดูเหมือนว่าปัญหาอยู่ที่นี่
ฉันค้นหาไฟล์ libmysql.dll บนไดรฟ์ C และพบว่ามีไฟล์อยู่ในโฟลเดอร์ system32 และ php หลังจากทำการสำรองข้อมูล ฉันพยายามลบไฟล์ libmysql.dll ใน system32 และพบว่ามันถูกล็อคและสามารถ ไม่สามารถลบได้ แต่สามารถเปลี่ยนชื่อได้ ฉันเปลี่ยนชื่อโดยไม่ตั้งใจและรีสตาร์ท IIS และเซิร์ฟเวอร์ก็ทำงานได้ตามปกติ
อีกประเด็นหนึ่ง: หากเส้นทางไฟล์การกำหนดค่า (php.ini) แสดงเป็น C:Windows
หมายความว่ายังไม่ได้อ่านไฟล์ php.ini
นอกจากนี้ ฉันพบว่าเมื่อใช้ IIS เพื่อรวม php มีสองวิธี: โหมด ISAPI และ CGI
ในทั้งสองวิธี เราจะเห็นหน้า phpinfo
แต่เมื่อใช้โหมด ISAPI ตัวแปรสภาพแวดล้อมจะไม่สามารถอ่านได้ ดังนั้นตัวแปรสภาพแวดล้อม PHPRC ถูกตั้งค่า ไม่พบเส้นทาง php.ini
เพียงใช้ CGI คุณจึงไม่ต้องคัดลอกไฟล์จำนวนมากไปยังไฟล์ระบบ