致命错误:未定义的类常量' OPT_CLIENT_MODE'在

时间:2013-09-05 01:46:58

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

目前从我的ec2-亚马逊ami实例到弹性的连接不起作用

我尝试连接并失败

$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

来自root的

: 添加

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'

yeilds ./usr/lib64/php/modules/amazon-elasticache-cluster-client.so 它不能直接链接作为扩展名

有什么明显我做错了吗?任何人都可以建议修复?

2 个答案:

答案 0 :(得分:2)

我不知道我是否做得对,但我遇到了类似的问题,最终让它发挥作用。

我正在尝试使用Apache在Ubuntu 14.04上安装ElastiCache Cluster Client for PHP,但是仍然没有找到" Memcached not found"错误。

首先,我遵循了这里的指示:

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

有两处变化

一个。我从

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

B中。除了将memcache.ini文件添加到/etc/php5/cli/conf.d/之外,我还在/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,并确保您为系统下载了正确版本的Cluster Client工具。

答案 1 :(得分:0)

似乎amazon-elasticache-cluster-client.so代替memcached.so。您应该删除extension=memcached.so并重新启动php。