我通过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
[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 ~]#发布于 2012-05-28 02:24:40
根据错误消息的输出,看起来您缺少zlib开发库,或者至少它们不在通常可以通过configure自动找到的位置。
由于您使用的是CentOS,请尝试使用以下命令安装库:
yum install zlib-devel这将安装memcache所需的zlib库。在安装zlib库之后,尝试重新运行pecl安装程序。
发布于 2012-05-27 19:42:30
如果您通过phpinfo()或php_config提供更多信息,可能会有所帮助,更具体地说,您的安装是否看到memcache库以及您的库路径是否正确。
php-config我将告诉您更多,有趣的是这里使用的php ini路径和lib路径php ini path将在您使用--configure-options,suboption -- with -config-file-path时显示(在我的特定情况下为/etc/php5/apache2),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和一个
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中可能会有一些差异?
https://stackoverflow.com/questions/10773524
复制相似问题