首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >致命错误:找不到类'Memcache‘(随pecl一起安装)

问致命错误:找不到类'Memcache‘(随pecl一起安装)
EN

Stack Overflow用户
提问于 2012-05-27 19:12:02
回答 2查看 14.1K关注 0票数 4

我通过ssh安装了memcache,其中包含:

代码语言:javascript
复制
$ pecl install memcache

这就是输出:https://pastee.org/w63sy

并将此行添加到etc/php.ini

代码语言:javascript
复制
extension=memcache.so

在尝试初始化时:

代码语言:javascript
复制
/* MEMCACHE */
$memcache = new Memcache();
$memcache->pconnect('localhost',11211);

我得到了:

代码语言:javascript
复制
Fatal error: Class 'Memcache' not found in /home/piscolab/public_html/website.com/includes/sql.php on line 25

我做错了什么?

我发现了这个问题,但问题出在他的共享服务器上。我有一张VPS。

运行:php -i | grep php.ini

代码语言:javascript
复制
[root@vps ~]# php -i | grep php.ini                                                                                                                                            
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/memcache.so' - /usr/lib/php/modules/memcache.so: cannot open shared object file: No such file o
r directory in Unknown on line 0                                                                                                                                               
Configuration File (php.ini) Path => /etc                                                                                                                                      
Loaded Configuration File => /etc/php.ini                                                                                                                                      
[root@vps ~]#    

查找memcache.so (无输出)

代码语言:javascript
复制
[root@vps ~]# find / -type f -name memcache*.so'                                                                                                                              
[root@vps ~]# find / -type f -name memcache*.so                                                                                                                                
[root@vps ~]#
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-28 02:24:40

根据错误消息的输出,看起来您缺少zlib开发库,或者至少它们不在通常可以通过configure自动找到的位置。

由于您使用的是CentOS,请尝试使用以下命令安装库:

代码语言:javascript
复制
yum install zlib-devel

这将安装memcache所需的zlib库。在安装zlib库之后,尝试重新运行pecl安装程序。

票数 3
EN

Stack Overflow用户

发布于 2012-05-27 19:42:30

如果您通过phpinfo()或php_config提供更多信息,可能会有所帮助,更具体地说,您的安装是否看到memcache库以及您的库路径是否正确。

代码语言:javascript
复制
php-config

我将告诉您更多,有趣的是这里使用的php ini路径和lib路径php ini path将在您使用--configure-options,suboption -- with -config-file-path时显示(在我的特定情况下为/etc/php5/apache2),lib路径将以--extension-dir显示

例如:

代码语言:javascript
复制
php-config --extension-dir

php-config --configure-options | grep -o 'with-config-file-path[^ ,.]*' | grep -o '[^=.]*$'

因此,以我的示例为例,我的lib路径设置为

/usr/lib/php5/20090626+lfs和一个

代码语言:javascript
复制
ls /usr/lib/php5/20090626+lfs/mem*  

我的系统的命令显示:

/usr/lib/php5/20090626+lfs/memcached.so

我的php.ini文件位于/etc/php5/apache2/php.ini

phpinfo() php函数(只需放在一个文件中并查看它)还显示memcache支持并加载了"memcached support enabled“(我专门使用了memcached扩展,而不是memcache)

请注意,您的use服务器可能配置为使用与命令行不同的php.ini路径(以及文件),因此请同时验证这两个路径。还要确保您将extension=memcache.so放在正确的位置,因为许多发行版将其放在/etc/php5/conf.d/memcache.ini中可能会有一些差异?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10773524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档