ความเป็นมา .. มีอยู่วันหนึ่ง ในระหว่างเสนอผลการสำรวจคนไทยให้นิสิตของผมได้รู้ถึงสถานการณ์ ว่าทักษะที่แรงงานไทยขาดแคลนมากที่สุดคืออะไร จากข้อมูลที่เคยอ่านพบจากเอกสารในหัวข้อ Productivity and investment climate survey ซึ่ง Boonlert Theeratrakul บอกว่า คนทำงานไทยขาดทักษะสำคัญ 3 เรื่องคือ 1) ภาษาอังกฤษ 2) ทักษะด้านไอที และ 3) ทักษะเชิงตัวเลข จึงจะเปิดเอกสารที่เคยโพสต์ไว้ในบล็อก “IT Blog เทคโนโลยีสารสนเทศ” ซึ่งใช้ระบบ wordpress ให้บริการ Blog เมื่อคลิกเปิด post ตามลิงค์ที่แชร์ไว้ พบว่า จอดำ (Black Screen) บนทั้ง 2 Blog sites ที่เปิดให้บริการไว้
หลังการสืบค้น .. เข้าไปดูในระบบ administrator พบ fatal error จากโค้ด /legacy /class-jetpack-signature . php on line 218 และแจ้งว่า Call to undefined function ctype_digit() ซึ่งปัญหานี้เกิดขึ้นกับ Blog site ทั้ง 2 ระบบบน server ตัวนี้ เมื่อนึกย้อนไปว่าก่อนหน้านี้เกิดอะไรขึ้นบ้าง พบว่า ผมได้ทำการ upgrade จากรุ่นของ php 7.3 เป็น 7.4 นั่นคือ 7.4 บนเครื่องบริการนี้ ไม่สนับสนุน ctype_digit จึงต้องหาวิธีแก้ไขต่อไป
วิธีแก้ปัญหาที่ 1
พบคำแนะนำให้ลบ folder jetpack ออกจาก plugins แล้วใช้ ftp upload เข้ามาใหม่ ซึ่งคำแนะนำนี้ใช้ได้กับ jetpack ที่หยุดการทำงาน แล้วไม่สามารถสั่ง Activate ขึ้นมาได้ ซึ่งเป็นปัญหาที่เกิดขึ้นกับ shared server ที่เป็น windows ตัวหนึ่งของผม ที่แก้ไขได้ด้วยการอัพโหลดผ่าน FTP แทนการติดตั้งผ่านระบบ admin ของ wordpress โดยตรง แต่กรณี ctype_digit นี้ ไม่สามารถแก้ไขด้วยการเปลี่ยนแฟ้มบนเครื่องบริการ
วิธีแก้ปัญหาที่ 2
พบคำแนะนำให้แก้ไข php.ini โดยมีขั้นตอนดังนี้
- เพิ่ม extension=ctype.so เข้า php.ini
- สั่ง Activate : jetpack ที่ติดตั้งอยู่ ถ้ามีปัญหา ให้ลบ folder แล้วอัพโหลดใหม่ หรือเปลี่ยนชื่อเป็นชื่ออื่น ซึ่งผมเลือกการเปลี่ยนชื่อ ทำให้เกิดการตรวจสอบในรายการ plugins ใหม่
- เมื่อใช้งาน jetpack ได้แล้ว อาจต้อง setup ใหม่ โดยเชื่อมกับ wordpress.com แล้วคลิก Approve
- บริการเบื้องต้น คือ Jetpack Stats ซึ่งยังไม่มีค่าใช้จ่าย
ปัญหานี้ เกิดจาก server ที่ให้บริการ webhosting ได้กำหนดค่า default ของ php 7.4 ว่า disabled ctype เป็นแบบ default ส่วนรุ่น 7.3 ไม่พบปัญหา เพราะ enabled เป็น default จึงต้องแก้ไขด้วยการเข้าไปแก้ไข php.ini เพื่อสั่งเรียก extension ที่ชื่อ ctype