我担心我的开发计算机上乱糟糟的东西,我可以使用一些帮助。基本上,我在ubuntu上使用apt-get软件包安装了php5.3.2,并将apc作为动态扩展加载。
今天,我决定使用此PPA升级到php5.4.6:https://launchpad.net/~ondrej/+archive/php5。所以,我现在运行php5.4.6但apc将不再加载。
所以我做了
pecl uninstall apc
然后
pecl install apc-3.1.13
确保我有一个与php5.4兼容的apc版本。
Everythin似乎进展顺利,但扩展仍然无法加载。它没有显示在phpinfo()上。我当然在php.ini中添加了extension = apc.so。
我想我找到了问题的根源,但我不知道如何解决它:
根据我的phpinfo():
PHP API 20100412
PHP Extension 20100525
Zend Extension 220100525
Zend Extension Build API220100525,NTS
PHP Extension Build API20100525,NTS
当我这样做时,pecl install apc,我得到了:
54 source files, building
running: phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
因此,apc.so将安装在/ usr / lib / php5 / 20090626而不是/ usr / lib / php5 / 20100525。
我该如何解决这个问题?
答案 0 :(得分:0)
只需将php二进制源中zend_modules.h中的API版本更改为phpinfo()中指示的PHP扩展API编号。
例如,如果phpinfo()中的php扩展API为20100525,则必须将zend_modules.h文件中的API编号更改为20100525,然后重新编译项目。
答案 1 :(得分:-2)
我找到了解决问题的方法。一个简单的
sudo apt-get install php-apc
会做到这一点。