Memcached 没有出现在 phpinfo() 中

问题描述 投票:0回答:5

我已经为 php 安装了 libmemcached 和 memcached pecl 扩展,但由于某种原因安装不正确?我在 /usr/lib64/php/ 中有 memcached.so,具有正确的权限,在 /usr/local/lib/

中有 libmemcache.so

一切似乎都正确无误地构建,我重新启动了 apache?

我也安装了守护进程。

我之前以某种方式轻松地为 php 安装了 Memcache 类,但我意识到我想要的是 Memcached(注意 d)类。如果需要更多信息,请告诉我!

编辑:我以前有 memcache(没有 d)在 php 中工作,所以我知道我正在操纵正确的 php.ini!

编辑 2:确实存在 apache 错误!

Unable to load dynamic library '/usr/lib64/php/modules/memcached.so' - /usr/lib64/php/modules/memcached.so: undefined symbol: php_json_encode in Unknown on line 0
php linux memcached redhat
5个回答
6
投票

我已经在 centos5 中使用 yum 安装程序而不是 pecl install memcached 解决了这个问题

这种方式 --> yum install php-pecl-memcached

然后,服务 httpd 重新启动,它显示在 phpinfo() 中


0
投票

几天前我有类似的错误。安装新版本(2.0)的 memcached 帮助了我。

yum -y install gcc-c++
wget http://launchpad.net/libmemcached/1.0/0.50/+download/libmemcached-0.50.tar.gz
tar xzf libmemcached-0.50.tar.gz 
cd libmemcached-0.50
./configure 
make 
make install
wget http://pecl.php.net/get/memcached-2.0.0b2.tgz
pecl install memcached-2.0.0b2.tgz
echo 'extension=memcached.so' > /etc/php.d/memcached.ini
service php-fpm restart
cd ..
rm -r libmemcached-0.50*
rm -r memcached-

0
投票

我不知道这是否是同一个问题,但在为此苦苦挣扎了几个小时之后,我设法使用以下命令在 CentOS 上正确安装了 PHP 和 Memcached:

yum --enablerepo=remi-php73 install php-memcached

测试安装:

php -i | grep -i memcache

应该显示如下内容:

/etc/php.d/50-memcached.ini
memcached
memcached support => enabled
libmemcached version => 1.0.18
memcached.compression_factor => 1.3 => 1.3
memcached.compression_threshold => 2000 => 2000
memcached.compression_type => fastlz => fastlz
memcached.default_binary_protocol => Off => Off
memcached.default_connect_timeout => 0 => 0
memcached.default_consistent_hash => Off => Off
memcached.serializer => igbinary => igbinary
memcached.sess_binary_protocol => On => On
memcached.sess_connect_timeout => 0 => 0
memcached.sess_consistent_hash => On => On
memcached.sess_consistent_hash_type => ketama => ketama
memcached.sess_lock_expire => 0 => 0
memcached.sess_lock_max_wait => not set => not set
memcached.sess_lock_retries => 5 => 5
memcached.sess_lock_wait => not set => not set
memcached.sess_lock_wait_max => 150 => 150
memcached.sess_lock_wait_min => 150 => 150
memcached.sess_locking => On => On
memcached.sess_number_of_replicas => 0 => 0
memcached.sess_persistent => Off => Off
memcached.sess_prefix => memc.sess.key. => memc.sess.key.
memcached.sess_randomize_replica_read => Off => Off
memcached.sess_remove_failed_servers => Off => Off
memcached.sess_sasl_password => no value => no value
memcached.sess_sasl_username => no value => no value
memcached.sess_server_failure_limit => 0 => 0
memcached.store_retry_count => 2 => 2
Registered save handlers => files user memcached

0
投票

在 debian 上:

 apt install php-memcached

或更具体:

apt install php8.2-memcached

还要在你的

extension=memcached.so
中添加
/etc/php/8.2/fpm/php.ini

(注意“mamcached”最后的“d”)

注意,这仅适用于 php8.2 是最新的 php 版本,因为 memcached.so 仅安装在最新的扩展目录中 –

/usr/lib/php/20220829/memcache.so
对于 php8.2


-1
投票

添加

extension=memcache.so

在 php.ini 然后重启 apache

© www.soinside.com 2019 - 2024. All rights reserved.