PHP and Zend Optimize

นั่งทำเว็บให้เพื่อน ปลุกปล้ำอยู่ครึ่งวันกับการ upload file เพื่อรัน demo
พบปัญหาอยู่ 2 อย่าง ที่ไม่เคยเจอ

1. Fatal error: Unable to read 99999 bytes in xxx.php on line 0
อันนี้จัดการด้วยไปเพิ่ม memory_limit ใน php.ini
ปล. php config พวกนี้สามารถ ตั้งค่าแยกกันโดยสิ้นเชิงในแต่ละ path ได้ เช่น
/public_html/a  memory_limit = 8M
/public_html/b memory_limit = 16M

วิธีทำก็แค่ไปสร้างไฟล์ php.ini ใน path ที่อยากจะ overide config ก็มีผลบังคับใช้เลย โดยไม่ต้อง restart apache
(ตอนแรกไม่รู้ ไปหาวิธี restart apache ตั้งนาน)

ซึ่งถ้าสังเกตจาก phpinfo() ก็จะรู้ว่ามัน overide มาจริงหรือเปล่า (ตามรูปเลย)


จบปัญหาที่ 1
เนื่องจากจำเป็นต้องใช้ Zend Optimizer แต่ยังไม่ได้ enable ก็เลยเจอแบบนี้ ไปตามระเบียบ
 

จัดการ enable ซะที่ php.ini เหมือนเดิม แต่ก็ยังมีปัญหาอีกนิดหน่อย
เพราะ default php.ini ที่ hosting ให้มาระบุ path ของ zend ผิด (หาเจออจาก help)
ต้องแก้เป็น

[Zend]
zend_optimizer.version=2.6.2
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

 

 2. Fatal error: Unable to read 99999 bytes in yyy.php on line 0
เจอแบบนี้อีกแล้ว แต่คนละไฟล์กับหนแรก ทีแรกก็มึนๆ ว่า อ่าว แก้ memory limit แล้วนี่หว่า ทำไมยังมี error นี้อยู่
ค้นไปค้นมาก็พบว่า เกิดจาก ไฟล์ที่มันอ่านไม่ได้เนี่ย เป็นไฟล์ที่ encode ด้วย zend optimizer มา ต้อง upload ด้วย transfer type แบบ binary เท่านั้น ก็เลยจัดการ upload ขึ้น server ใหม่ แบบ binary

จบปัญหาที่2

entry สั้นๆแค่นี้ แต่เวลาทำจริงล่อไปครึ่งวัน