मैं शेर पर Homebrew का उपयोग कर ImageMagick स्थापित है, सब कुछ ठीक है, सिवाय इसके कि यह बिल्कुल जब php से बुलाया जा रहा है काम नहीं करता। कंसोल:हल: MAMP Php Homebrew ImageMagick के बाद exec नहीं कर सकते हैं ('कन्वर्ट') स्थापित
$ convert -version
Version: ImageMagick 6.7.1-1 2011-07-29 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP
$ which convert
/usr/local/bin/convert
पीएचपी:
echo exec ('convert -version');
या कार्यकारी ('-संस्करण कन्वर्ट', $ उत्पादन); var_dump ($ आउटपुट);
कुछ भी नहीं (या एक खाली सरणी) उत्पन्न करता है।
exec ('/usr/local/bin/convert') // works, but
exec ('which convert') // doesn't
मुझे यह सुनिश्चित करने के लिए स्थानीय रूप से परीक्षण करने की आवश्यकता है कि मैं उत्पादन वातावरण में रूपांतरित कर सकूं। लेकिन मैं इसका सही परीक्षण नहीं कर सकता। पाथ सेट है और यह टर्मिनल में काम करता है, लेकिन PHP से नहीं।
हल:
बाहर कर देता है, php के लिए convert
काम करने के लिए /usr/bin/
में होना चाहिए तो यह इसे हल:
ln -s /usr/local/bin/convert /usr/bin/convert
अद्यतन
यह MAMP की वजह से किया गया था, यहाँ http://firedevcom.tumblr.com/post/22791937644/fix-for-homebrew-imagemagick-and-mamp
: ठीक हैखुला/अनुप्रयोग/MAMP/पुस्तकालय/bin/envvars
और बाहर टिप्पणी निम्नलिखित लाइनों:
DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
export DYLD_LIBRARY_PATH
हो गया।
PHP के पथ में कनवर्ट किया गया है? आपको exec() कॉल में '/ absolute/path/to/convert' निर्दिष्ट करना पड़ सकता है। याद रखें कि PHP exec() कॉल में वातावरण शेल प्रॉम्प्ट पर आपको जो मिलता है उससे काफी भिन्न हो सकता है। –
हम्म यह बात है - सबकुछ उत्पादन सर्वर पर काम करता है, सिर्फ होमब्रू के साथ नहीं। मैंने सोचा कि पथ को निष्पादित सैंडबॉक्स में विरासत में मिलाया जाना चाहिए, नहीं? – firedev
php का खोल वातावरण उपयोगकर्ता खोल वातावरण से बिल्कुल अलग है। आप सीधे उनकी तुलना नहीं कर सकते हैं। 'exec (' echo $ pATH ') करने का प्रयास करें;' यह देखने के लिए कि खोल क्या चल रहा है। PHP अपाचे पर्यावरण का उत्तराधिकारी होगा। –