Abort class-pclzip.php : Missing zlib extensions
ปัญหานี้ผมเจอเนื่องจากติดตั้ง plugin บางตัวของ wordpress ซึ่งมันจะเรียกใช้งาน zlib extension ซึ่งเวอร์ชั่น php ที่ผมใช้คือ PHP5.5.9-1 ubuntu4.11
คำสั่งตรวจสอบ version ของ PHP
ซึ่งจากการ search บน google พบว่าปัญหาเกิดที่ไฟล์ class-pclzip.php ซึ่งจะเรียกใช้งาน ฟังก์ชั่น gzopen ซึ่งในเวอร์ชั่นที่ผมติดตั้งไม่มี ฟังก์ชั่นดังกล่าว มีด้วยกัน 2 แนวทางด้วยกันคือ
- แก้ไขไฟล์ wp-admin/includes/class-pclzip.php ของ wordpress โดยเปลี่ยนจากการเรียกใช้ฟังก์ชั่น gzopen ให้เป็น gzopen64 (เข้าใจว่าน่าจะเป็นฟังก์ชั่นของ PHP ที่คอมไพล์ใช้สำหรับ 64 bit โดยเฉพาะ) ทุกบรรรทัด
- ดาวน์โหลด PHP เวอร์ชั่นสูงกว่ามาคอมไพล์ โดยกำหนด parameter –with-zlib ให้ด้วย (ผมยังไม่ลองนะครับ) ตัวอย่างนี้คือโหลดไฟล์ php เวอร์ชั่น 5.5.23 มาคอมไพล์ครับ
gunzip php-5.5.23.tar.gz tar xvf php-5.5.23.tar cd php-5.5.23 ./configure --with-mysql --with-mysqli --enable-zip --enable-mbstring --with-zlib make sudo make install
ผมเลือกวิธีการแรก เนื่องจากยังไม่อยากไปยุ่งกับ PHP (แต่น่าจะมีปัญหาเวลาอัปเดต wordpress เป็นเวอร์ชั่นใหม่นะ)
ข้อมูลเพิ่มเติม
- https://wordpress.org/support/topic/missing-zlib-extensions-php-error
- http://askubuntu.com/questions/596772/abort-class-pclzip-php-missing-zlib-extensions
Advertisements