0

恐怕我在我的开发计算机上弄得一团糟,我需要一些帮助。基本上,我在 ubuntu 上安装了 php5.3.2,并安装了 apt-get 包,并将 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 版本。

一切似乎都很顺利,但扩展仍然无法加载。它不会显示在 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 中。

我怎样才能解决这个问题?

4

2 回答 2

0

只需将您的 php 二进制源代码中 zend_modules.h 中的 API 版本更改为 phpinfo() 中指示的 PHP 扩展 API 编号。

例如,如果 phpinfo() 中的 php 扩展 API 为 20100525,则必须将 zend_modules.h 文件中的 API 编号更改为 20100525,然后重新编译您的项目。

于 2012-12-29T13:38:30.040 回答
-2

我找到了解决这个问题的方法。一个简单的

sudo apt-get install php-apc

会成功的。

于 2012-09-26T11:34:48.453 回答