无法加载 memcache.so 扩展

无法加载 memcache.so 扩展

我使用 configure 命令从源代码构建了 PHP

'./configure' '--prefix=/usr/local/php-5.2.8' '--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d' '--with-apxs2=/usr/local/httpd/bin/apxs' '--with-mysql=/usr/local/mysql/' '--with-zlib' 

我安装了 php memcache 扩展:

wget http://pecl.php.net/get/memcache
tar -zxvf memcache-2.2.5.tgz
cd memcache-2.2.5
phpize
./configure --enable-memcache
make
make install

我添加到我的 /usr/local/lib/php.in

extension=memcache.so

重新启动我的 apache 并运行 php-m,但 php 似乎没有加载 memcache 扩展,我按照此站点上的解决方案操作 http://www.howtoforge.com/forums/showthread.php?t=26554

我添加了完整路径

extension=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so 

重新启动了 apache,但它没有加载 memcache 扩展!我在 google 上搜索,但还是同样的问题!我该如何加载这个扩展 _ _”

答案1

首先运行你的 php 二进制文件

php -v

它应该抱怨你的 php.ini 想要加载无法加载的模块......

如果它没有抱怨,运行

php --ini

这应该会告诉你 php.ini 的位置(以防你编辑错了 :D)

这有帮助吗?

答案2

问题是……,此时:您应该执行 ,wget http://pecl.php.net/get/memcache 而不是 (这是来自 wget 的文件名)。tar -zxvf memcache-2.2.5.tgztar -zxvf memcache

解压文件后,您将获得最新版本的 memcache,此时我得到了该文件夹memcache-3.0.8

因此,接下来的步骤将是:

cd memcache-3.0.8 
phpize 
./configure --enable-memcache 
make
make install

最后,不要忘记将这一行添加到您的 php.ini 中:

extension = memcache.so

并重新启动 Apache。

答案3

你确定 memcached 安装在正确的位置了吗?运行以下命令会得到什么结果:locate memcache.so

memcached 是否已安装(二进制)?是否需要任何额外的库(libmemcache)?

答案4

对我有帮助的一件事就是使用

pecl uninstall memcache
pecl install memcache

另一件事(尽管这只适用于相当旧的 php 版本):http://www.hollub.at/phpmanual/ref.memcache.html说:

In order to use these functions you must compile PHP with Memcache support by using the --enable-memcache[=DIR] option. 

相关内容