繁体   English   中英

致命错误:未找到类'Memcache'(与pecl一起安装)

[英]Fatal error: Class 'Memcache' not found (installed with pecl)

我通过ssh安装了memcache,用:

$ pecl install memcache

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

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

extension=memcache.so

在尝试初始化时:

/* MEMCACHE */
$memcache = new Memcache();
$memcache->pconnect('localhost',11211);

我明白了:

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 php -i | grep php.ini

[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(无输出)

[root@vps ~]# find / -type f -name memcache*.so'                                                                                                                              
[root@vps ~]# find / -type f -name memcache*.so                                                                                                                                
[root@vps ~]#

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

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

yum install zlib-devel

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

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

php-config

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

例如

php-config --extension-dir

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

因此,要使用我的示例,我的lib路径设置为

/ usr / lib / php5 / 20090626 + lfs和an

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支持启用”(我专门使用memcached扩展,而不是memcache)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM