2011-11-16 83 views
1

我試圖加載PECL solr擴展。我曾嘗試使用「pecl install solr」並下載並使用「phpize/configure/make」來安裝它。在這兩種情況下,擴展沒有錯誤安裝,但一個Apache重新啓動(或在命令行下運行PHP時),此錯誤消息總是發出後:由於未定義符號,PECL solr未加載:curl_easy_getinfo

PHP Warning: Unable to load dynamic library /usr/lib64/php/modules/solr.so 
- /usr/lib64/php/modules/solr.so: undefined symbol: 
curl_easy_getinfo in Unknown on line 0 

我檢查,看來,創建Solr的。所以對象不知道/usr/lib64/libcurl.so,即使我指定LDFLAGS -L在/ usr/lib64下(雖然我不應該需要):

# ldd modules/solr.so 
     linux-vdso.so.1 => (0x00007fffd5af8000) 
     libc.so.6 => /lib64/libc.so.6 (0x00007fac573c0000) 
     /lib64/ld-linux-x86-64.so.2 (0x00000034bc000000) 

我使用的是失安裝Fedora 15。我已經安裝了許多其他的PECL擴展,沒有問題。爲什麼這麼難,更重要的是,我該如何解決它?!?

我使用FC15,PHP 5.3.8,捲曲7.21.3。預先感謝任何幫助!

+0

是插件嗎?或者,/usr/lib64/php/modules/solr.so確實存在且具有正確的權限? –

+0

運行「make test」關於本地生成的solr.so時,我收到了類似的消息,所以我認爲這不相關。但是,它存在且具有與其他對象相同的權限。你是什​​麼意思「是插件」? –

+0

「是插件」..一個Jocj,HD詢問抱怨他的電腦無法工作的用戶的第一個問題。首先我們明確最明顯的原因...... 現在,你最近升級了PHP嗎,你的phpize是正確的版本嗎? –

回答

1

我找不出什麼問題,因爲我可以在Fedora 16上通過pecl(phpize/configure/make/make install)進行編譯。

首先要確保安裝你有libc的COMPAT:

compat-glibc.i386 : Compatibility C library 
compat-glibc.x86_64 : Compatibility C library 
compat-glibc-headers.x86_64 : Header files for development using standard C 

一旦我上面安裝的軟件包,我配置/製作/ make install的它工作得很好。

-2

我遇到了類似的問題,並找到了解決方案。

爲了解決這個問題,只需創建一個名爲/etc/php.d/solr.so文件,並添加其內容爲:

;Enable the solr php extension 
extension=solr.so 

,然後只需重新加載Web服務器。它現在應該工作。

+0

您的解決方案似乎錯誤或不完整 – hgf

0

這意味着,它需要捲曲 安裝的依賴關係如下所示:

sudo yum install libxml2-devel curl curl-devel php-curl 
1

我的解決辦法是: 編輯: /etc/php.d/json.ini 並添加擴展= Solr的。所以這會導致在json擴展之後加載solr擴展,從而避免了json庫的丟失。

Ej json.ini:

;啓用json擴展模塊 extension = json.so extension = solr.so