Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 致命错误:类';Memcache';未找到(与pecl一起安装)_Php_Apache_Memcached_Pecl - Fatal编程技术网

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

Php 致命错误:类';Memcache';未找到(与pecl一起安装),php,apache,memcached,pecl,Php,Apache,Memcached,Pecl,我通过ssh安装了memcache,包括: $ pecl install memcache 这就是结果: 并将这一行添加到etc/php.ini: extension=memcache.so [root@vps ~]# php -i | grep php.ini                                                                                                                     

我通过ssh安装了memcache,包括:

$ pecl install memcache
这就是结果:

并将这一行添加到
etc/php.ini

extension=memcache.so
[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 */
$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
我做错了什么

我发现了这个问题,但问题是关于他的共享服务器。我在副总裁手下

正在运行:
php-i | grep php.ini

extension=memcache.so
[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(无输出)


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

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

e、 g

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

/usr/lib/php5/20090626+lfs和

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)


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

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

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

yum install zlib-devel

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

将该行添加到配置后是否重新启动了Apache?否!我现在就去试试。谢谢我重新启动了虚拟机,没有任何更改@DCoder和/etc/init.d/apache2 restart记录我没有这样的文件或目录:s这一错误意味着你的
memcache。因此
不在
/usr/lib/php/
中-你可以尝试
查找/usr/-name memcache.so
查看它在哪里。@DCoder怎么办查找/myusername/-name memcache.so'?,哇!老兄,谢谢你的回答,但我有点迷路了。。我将运行您发布的ssh命令,并让您知道。但你基本上是说我的php.ini不是apache正在使用的吗?这可能是你问题的一个可能答案,是的,请查看我的编辑。看起来它是正确的php.ini路径,但是显示了一些错误,你明白吗?正如Dcoder在上面的评论中所说:找不到你的memcache.so库文件,因此无法加载,请检查它是否存在(作为根目录或在comand with sudo之前)使用
find/-type f-name'memcache*.so'
如果此命令找不到它,则说明您没有正确安装库文件,需要(重新)安装memcache php模块。请注意,这会搜索整个磁盘,因此需要一段时间才能返回给您答案,这是一种暴力方式,可以肯定,对不起。:)如果您真的可以找到memcache.so,那么毫无疑问,它位于php看不到的目录上,然后您需要将该路径添加到php扩展的路径中。