2012-12-19 69 views
0

我有兩臺服務器dev和production,它們很相似。兩人都不能將Couchbase PHP客戶端庫v.1.1.1安裝到CentOS 5.6

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之後設置了加載couchbase.so。但問題依然存在。

來自Couchbase的人說要更新PHP到5.3版本,但我不能這樣做,因爲我們使用的一些軟件通常不能與php 5.3一起工作。

有沒有人有一些想法,這可以如何解決?

+0

我發現問題在哪裏。它在json.so庫中。我不知道這是怎麼回事,因爲libs的版本是相似的。但是當我從開發服務器複製這個庫到生產服務器(其中couchbase lib不工作),錯誤消失了,並且couchbase lib現在正常加載。 –

回答

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 
1

儘量明確地確定json.so的順序和couchbase.so在php.ini中,像這樣的:

extension=json.so 
extension=couchbase.so 

這對我的作品!