【问题标题】:Fatal error: Undefined class constant 'OPT_CLIENT_MODE' in致命错误:未定义的类常量“OPT_CLIENT_MODE”在
【发布时间】:2023-03-16 16:50:01
【问题描述】:

目前从我的 ec2-amazon ami 实例到 elasticache 的连接不起作用

我尝试连接并失败

$server_endpoint = "lolololo.olol.olol.cache.amazonaws.com";
$server_port = 11211;
$dynamic_client = new Memcached();
$dynamic_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::DYNAMIC_CLIENT_MODE); 
// it fails on previous line
// Fatal error: Undefined class constant 'OPT_CLIENT_MODE' in
$dynamic_client->addServer($server_endpoint, $server_port);
$dynamic_client->set('key', 'value', 60);

我采取的步骤 sudo yum install gcc-c++ php php-pear

sudo pecl install myplaceontheweb.com/assets/AmazonElastiCacheClusterClient-1.0.1-PHP53-64bit.tgz

sudo yum install php-devel

从根目录: 添加

extension=memcached.so
extension=amazon-elasticache-cluster-client.so

到 /etc/php.d/memcached.ini

php info 说 memcached 是 php 的已安装部分,我在完成所有这些操作后重新启动了服务器。

sudo find . -type f -name 'amazon*.so'

yields ./usr/lib64/php/modules/amazon-elasticache-cluster-client.so 它也不能通过直接链接作为扩展来工作

有什么明显的我做错了吗?任何人都可以提出解决方案吗?

【问题讨论】:

    标签: php amazon-web-services amazon-ec2 amazon-elasticache


    【解决方案1】:

    看来amazon-elasticache-cluster-client.so 应该替换memcached.so。您应该删除extension=memcached.so 并重新启动php。

    【讨论】:

    • 有没有亚马逊客户端没有加载的迹象? php -iphp_info() 有什么用?
    • 与内存缓存无关。没有。
    • 无论出于何种原因,模块都没有加载。您的 memcached.ini 中仍然只有这一行吗? extension=amazon-elasticache-cluster-client.so
    • 你运行的是什么版本的php?我在 Ubuntu 上运行 5.5.7,并且遇到了完全相同的问题。
    【解决方案2】:

    我不知道我是否做对了,但我遇到了类似的问题,终于让它工作了。

    我尝试在 Ubuntu 14.04 上使用 Apache 安装 ElastiCache Cluster Client for PHP,但一直收到“找不到 Memcached”错误。

    首先,我按照这里的说明进行操作:

    http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Appendix.PHPAutoDiscoverySetup.html

    有两个变化

    A.我从

    下载了 takeit
    http://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-5.5/latest-64bit

    B.除了在/etc/php5/cli/conf.d/中添加一个memcache.ini文件之外,我还在/etc/php5/apache2/conf.d/中添加了一个

    echo "extension=/full/path/to/amazon-elasticache-cluster-client.so" | sudo tee /etc/php5/apache2/conf.d/memcached.ini

    就是这样。

    唯一的其他问题是确保您没有安装 php5-memcached,并确保您正在为您的系统下载正确版本的集群客户端工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 2015-10-01
      • 1970-01-01
      • 2013-10-16
      • 2019-02-09
      • 1970-01-01
      相关资源
      最近更新 更多