我有两台服务器开发和生产,它们非常相似。两者都有
CentOS 5.6
PHP 5.2.17
这是安装清单:
yum list installed | egrep 'couch|php|mem'
couchbase-server.x86_64 1.8.0r-1 installed
libcouchbase-devel.x86_64 2.0.1-1 installed
libcouchbase1.x86_64 1.0.1-1 installed
libcouchbase2.x86_64 2.0.1-1 installed
libcouchbase2-core.x86_64 2.0.1-1 installed
libcouchbase2-libev.x86_64 2.0.1-1 installed
libmemcached.x86_64 1.0.4-3.el5 installed
memcached.x86_64 1.4.10-1.el5 installed
php.x86_64 5.2.17-7.el5 installed
php-cli.x86_64 5.2.17-7.el5 installed
php-common.x86_64 5.2.17-7.el5 installed
php-devel.x86_64 5.2.17-7.el5 installed
php-eaccelerator.x86_64 2:0.9.6.1-1.el5 installed
php-fpm.x86_64 5.2.17-7.el5 installed
php-mcrypt.x86_64 5.2.17-7.el5 installed
php-mysql.x86_64 5.2.17-7.el5 installed
php-odbc.x86_64 5.2.17-7.el5 installed
php-pdo.x86_64 5.2.17-7.el5 installed
php-pear.noarch 1:1.9.1-1.el5 installed
php-pecl-memcache.x86_64 3.0.6-1.el5 installed
php-pecl-xdebug.x86_64 2.1.2-1.el5 installed
php-xml.x86_64 5.2.17-7.el5 installed
但是我遇到了将Couchbase PHP客户端库v.1.1.1安装到生产服务器的问题。在我安装它并且它正常工作。但是在生产服务器上我得到了这个:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/couchbase.so' - /usr/lib64/php/modules/couchbase.so: undefined symbol: php_json_encode in Unknown on line 0
我已经遇到过这样的错误,并且知道问题可以优先加载php模块。 所以我在json.ini文件中的json.so之后设置loading couchbase.so。但问题仍然存在。
来自Couchbase的人说要将php更新到5.3版本,但我不能这样做,因为我们使用的一些软件通常无法与php 5.3一起使用。
有没有人有一些想法,如何解决这个问题?
答案 0 :(得分:1)
尝试在php.ini中明确确定json.so和couchbase.so的顺序,如下所示:
extension=json.so
extension=couchbase.so
这适合我!
答案 1 :(得分:0)
修复了从centalt repo安装php-5.2.17-24的问题。
cat > /etc/yum.repos.d/centalt.repo << EOF
[CentALT]
name=CentALT Packages for Enterprise Linux 5 - $basearch
baseurl=http://centos.alt.ru/repository/centos/5/$basearch/
enabled=1
gpgcheck=0
EOF
yum install php-common