1

我只是将 Couchbase 2.0beta 更改为使用 Views。所以,我按照官方手册构建 couchbase php extsion。首先,安装纯 RHEL 6.2。然后,安装 couchbase-server-2.0.0-1723 和 libcouchbase 中的所有依赖

libcouchbase2-dummy-2.0.0beta2-1.x86_64
couchbase-server-2.0.0-1723.x86_64
libcouchbase2-2.0.0beta2-1.x86_64
libcouchbase-devel-2.0.0beta2-1.x86_64
libev-4.03-3.el6.x86_64
libevent-1.4.13-1.el6.x86_64

解压php-ext-couchbase-1.1.0-dp5-centos62-x86_64.tar.gz,复制couchbase.so到/usr/lib64/php/modules/,编辑/etc/php.d/json.ini:

extension=json.so
extension=couchbase.so

最后,重新启动 HTTP Server。然后,通过以下方式检查 couchbase 模块是否正确:

php -m|grep couchbase

phpinfo() 可以输出 couchbase 版本为 1.1.0-dp5。一切看起来都很好,但我尝试运行 php 代码:

<?php
$cb = new Couchbase("127.0.0.1:8091",'Administrator','redflag','default');
$cb->set('a',1);

这是错的:

$ php getview.php
PHP Warning:  Couchbase::__construct(): failed to create IO instance in /var/www/html/getview.php on line 2
PHP Warning:  Couchbase::set(): unintilized couchbase in /var/www/html/getview.php on line 3

为了检查 couchbase 设置是否正确,我以管理员身份打开 Couchbase GUI 作为用户名,redflag 作为密码。然后,创建新文档,使用 REST API 获取项目或视图。这些都可以,没问题,除了 php 代码。

没有其他出路,我从https://github.com/couchbase/php-ext-couchbase获取。构建新的 php-couchbase extsion,然后尝试 agin。但问题是一样的。

我发现有人在这里这个有同样的错误。不幸的是没有解决方案。如何使用 php-ext-couchbase 1.1dp5 模块?THX。

4

2 回答 2

1

使用 yum 安装libcouchbase2-libevent包可以解决这个问题。顺便说一句。当你运行 yum install libcouchbase-devel时,它不包括 libcouchbase2-libevent。如果你错过了,你也可以毫无错误地制作和安装 php-ext-couchbase 模块。但是你不能在 php 中连接 Couchbase ,如上所述。

于 2012-11-14T03:42:41.143 回答
1

乍一看,它似乎正确加载了 couchbase 扩展。这里可能出错的是如何访问您的存储桶。

如果您没有进行任何更改,则“默认”存储桶没有与之关联的密码,通常存储桶的用户就是存储桶名称本身。因此,在“默认”存储桶的情况下,它看起来像这样:

$client = new Couchbase("127.0.0.1:8091", "default", "", "");

如果您定义了密码:

$client = new Couchbase("127.0.0.1:8091", "bucketname", "", "password");

希望这会有所帮助,迈克尔

于 2012-11-13T08:24:05.167 回答