2011-10-18 14 views
7

के साथ 5 लौटाता है तो मुझे एमएएमपी (और मैकपोर्ट्स का उपयोग करके PHP 5.3.6 और ImageMagick (कमांड लाइन) के साथ एक विचित्र समस्या है। मैंने दोनों की कोशिश की) ओएस एक्स परImageMagick कमांड लाइन में काम करता है लेकिन जब php में exec() यह "असंगत लाइब्रेरी संस्करण"

जब मैं सीएलआई से पहचान कमांड चलाता हूं, तो यह ठीक काम करता है। लेकिन जब मैं exec() का उपयोग कर ठीक उसी आदेश चला, यह 5 के एक मूल्य कोड लौटाता है और अपाचे त्रुटि लॉग में मेरे पास है:

dyld: लाइब्रेरी लोड नहीं: /opt/local/lib/libfreetype.6। dylib
से संदर्भित/opt/स्थानीय/bin/पहचान कारण: असंगत पुस्तकालय संस्करण: पहचान या बाद के संस्करण 14.0.0 आवश्यकता है, लेकिन libfreetype.6.dylib संस्करण 13.0.0

उदाहरण प्रदान करता है क्ली कमांड है: /opt/local/bin/identify /Users/leonardteo/Documents/1.jpg

यह कमांड लाइन से निष्पादित होने पर ठीक काम करता है। जब PHP से मार डाला:

exec("/opt/local/bin/identify /Users/leonardteo/Documents/1.jpg", $output, $return);

$return5

$output कुछ भी नहीं

जाँच हो रही है अपाचे लॉग libfreetype साथ ऊपर मुद्दा देता है।

मै मैकपोर्ट का उपयोग करके ImageMagick स्थापित किया। मैंने स्रोत से मैन्युअल निर्माण की कोशिश की है और /usr/local/bin/identify से चल रहा है और मुझे एक ही परिणाम मिल गया है। मैंने एमएएमपी के बजाय मैकपोर्ट से PHP चलाने की भी कोशिश की है और मुझे एक ही परिणाम मिल गया है।

क्या कोई इस पर प्रकाश डालने में मदद कर सकता है? इस फाइल

+0

PHP उस पुस्तकालय की एक अलग प्रति निष्पादित कर रहा है, किसी भी तरह। अपने पथ जांचें, सुनिश्चित करें कि आपके पास विरोधाभासी संस्करण नहीं हैं। – Brad

+0

सीएलआई php आमतौर पर एसएपीआई php से एक अलग .ini फ़ाइल है, तो दो .ini की संभावना पुस्तकालय के विभिन्न संस्करणों को संभावित रूप से लोड कर सकते हैं। –

+0

@Marc B: यह अपाचे के माध्यम से क्ली और PHP पर php चलाने के बीच कोई समस्या नहीं है। यह बैश खोल पर एक वास्तविक क्ली कमांड के बीच है और PHP के माध्यम से सटीक वही कमांड निष्पादित करता है। –

उत्तर

17

संपादित करें:

/अनुप्रयोग/MAMP/पुस्तकालय/bin/envvars

टिप्पणी बाहर निम्नलिखित लाइनों:

DYLD_LIBRARY_PATH = "/ अनुप्रयोग/MAMP/लाइब्रेरी/lib: $ DYLD_LIBRARY_PATH "

निर्यात DYLD_LIBRARY_PATH

+0

अच्छा, दूसरा तरीका बस सर्वर उदाहरण को XAMPP पर स्विच करना होगा जो बॉक्स से बाहर काम करता है http://tekkie.flashbit.net/developer-tools/workaround-for-imagemagick-convert-returning-5 –

+0

मेरे पास है कोई विचार नहीं कि यह क्यों काम किया ... लेकिन ऐसा हुआ। धन्यवाद! – Jonathan

+0

Thx बहुत !!! यह कारण जानने के लिए कुछ घंटों तक कोशिश कर रहा था कि यह क्यों काम नहीं कर रहा था। सौभाग्य से StackOverflow और आप, प्रिय महोदय, मेरे गधे को दोबारा बचाया;) – maddob

संबंधित मुद्दे