Php 致命错误:类';Memcache';未找到(与pecl一起安装)
我通过ssh安装了memcache,包括: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
$ 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扩展的路径中。