के साथ 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);
$return
5
$output
कुछ भी नहीं
जाँच हो रही है अपाचे लॉग libfreetype साथ ऊपर मुद्दा देता है।
मै मैकपोर्ट का उपयोग करके ImageMagick स्थापित किया। मैंने स्रोत से मैन्युअल निर्माण की कोशिश की है और /usr/local/bin/identify
से चल रहा है और मुझे एक ही परिणाम मिल गया है। मैंने एमएएमपी के बजाय मैकपोर्ट से PHP चलाने की भी कोशिश की है और मुझे एक ही परिणाम मिल गया है।
क्या कोई इस पर प्रकाश डालने में मदद कर सकता है? इस फाइल
PHP उस पुस्तकालय की एक अलग प्रति निष्पादित कर रहा है, किसी भी तरह। अपने पथ जांचें, सुनिश्चित करें कि आपके पास विरोधाभासी संस्करण नहीं हैं। – Brad
सीएलआई php आमतौर पर एसएपीआई php से एक अलग .ini फ़ाइल है, तो दो .ini की संभावना पुस्तकालय के विभिन्न संस्करणों को संभावित रूप से लोड कर सकते हैं। –
@Marc B: यह अपाचे के माध्यम से क्ली और PHP पर php चलाने के बीच कोई समस्या नहीं है। यह बैश खोल पर एक वास्तविक क्ली कमांड के बीच है और PHP के माध्यम से सटीक वही कमांड निष्पादित करता है। –