php Invalid opcode 153/1/8 问题解决方法

今天试图给服务器装一个wikimedia,运行安装程序的时候,报错:

Fatal error:  Invalid opcode 153/1/8.

Google一下发现是php的扩展eaccelerator的问题。新版本的php执行匿名函数等新特性,而eaccelerator对它无能为力。eaccelerator停止开发有年头了,github上最新的commit还是两年前的,唉……

搞了半天没找到解决方案,后来发现在github这个库的讨论区中有人给出了方案。就是检查,如果碰到LAMBDA这种方式的函数,就直接跳过好了。

修改的代码在这里:
https://github.com/toddbc/eaccelerator/commit/e7dc802057e9916c0e6751b87511fc43a89c0c3a

直接改好的optimize.c在这里:
https://github.com/toddbc/eaccelerator/blob/e7dc802057e9916c0e6751b87511fc43a89c0c3a/optimize.c

把这个optimize.c覆盖掉eaccelerator下的同名文件,重新编译和安装该扩展,搞定。

PS:编译安装好后,记得清空eaccelerator的cache目录,否则老的代码由于缓存的关系还是会报错。

VN:F [1.9.22_1171]
Rating: 10.0/10 (4 votes cast)
VN:F [1.9.22_1171]
Rating: +2 (from 2 votes)
php Invalid opcode 153/1/8 问题解决方法, 10.0 out of 10 based on 4 ratings

3 评论

  1. 非常感谢。

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)
  2. 简直不可思议啊

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)
  3. 不可思议@!

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)

发表评论

电子邮件地址不会被公开。 必填项已用*标注