2012-11-15 127 views
3

我已經安裝了imagick php模塊,並使用Brew安裝了Image Magick。一旦安裝並添加到我的php.ini擴展中,當Apache(XAMPP)啓動時出現此錯誤。PHP imagick安裝錯誤

dyld: lazy symbol binding failed: Symbol not found: _MagickWandGenesis 
Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20090626/imagick.so 
Expected in: flat namespace 

谷歌已經沒有幫助

+0

你能告訴我你使用64位Windows嗎?我相信這是與imagick-3.X.X和Windows 7 64bit中的imagick PHP DLL的不兼容。嘗試使用imagick-2.3.X。這爲我解決了問題。 – StigM

+0

這是一個MacOS問題,使用自制軟件安裝。 –

回答

2

看起來你必須手工如下編譯:

$ cd /usr/local/src/ 
$ wget http://pecl.php.net/get/imagick-3.0.1.tgz 
$ tar -xzvf imagick-3.0.1.tgz 
$ cd imagick-3.0.1 
$ phpize 
$ MACOSX_DEPLOYMENT_TARGET=10.6 
$ CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" 
$ CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" 
$ CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" 
$ LDFLAGS="-arch i386 -arch x86_64 -bind_at_load" 
$ export CFLAGS CXXFLAGS LDFLAGS CCFLAGS MACOSX_DEPLOYMENT_TARGET 
$ echo $CFLAGS 
$ ./configure --with-imagick=/usr/local//Cellar/imagemagick/6.8.0-10 
$ make 
$ sudo make install 
$ sudo vim /etc/php.ini 
$ sudo apachectl restart 

這是這個職位的摘錄: http://charles.lescampeurs.org/2013/06/18/add-c-header-include-path-pecl

但也許更簡單的解決方案是使用josegonzalez的PHP水龍頭釀造和刪除XAMMP,我使用它,並完美的作品: https://github.com/josegonzalez/homebrew-php

這片擁有最穩定的包和近期的用於PHP

問候

+0

獲得獎勵,即使我最終使用帶有imagick的bitnami代替。 ;) –

0

我有AMPPS同樣的問題。我安裝了ImageMagick和imagick以及自制軟件,試着讓它在AMPPS上運行。當我最終編譯時 - 我記得從AMPPS文件夾中的正確的二進制文件符號鏈接 - 我得到這個錯誤。

原來並非所有鏈接正確的庫。我認爲這是我用來檢查另一臺計算機上正在運行的imagick.so文件和不會加載的文件之間差異的'nm'命令。無論如何,我現在已經通過編譯問題和不兼容來重新安裝所有東西,從頭開始解決它。