2013-08-29 5 views
7

मैं KnowledgeBase articleImageMagick स्थापना MediaTemple GridServer

असल अनुसार ImageMagick विस्तार सक्रिय कर दिया है, php.ini को यह पंक्ति जोड़कर:

open_basedir = /nfs:/tmp:/usr/local:/etc/apache2/gs-bin:/usr/bin/convert 

बहरहाल, यह काम करने के लिए प्रतीत नहीं होता।
यह स्क्रिप्ट संस्करण संख्या आउटपुट ठीक:

$IM_version=shell_exec("/usr/bin/convert -version"); 
echo $IM_version; 

हालांकि, जब मैं Imagick वर्ग का उपयोग करने के मैं कोई त्रुटि मिलती है की कोशिश करो।

try 
{ 
     /*** a new imagick object ***/ 
     $im = new Imagick(); 

     /*** Create a red rectangle ***/ 
     $im->newImage(200, 100, "red", "png"); 

     /*** write image to disk ***/ 
     $im->writeImage('/tmp/rectangle.png'); 

     echo 'Image Created'; 
} 
catch(Exception $e) 
{ 
     echo $e->getMessage(); 
} 


त्रुटि:

Fatal error: Class 'Imagick' not found in /xxxxxxxxxxxxxxx/html/mt.php on line 8 

कोई भी विचार क्या मैं गलत कर रहा हूँ या क्या अगले कदम के लिए समस्या निवारण है?

मैं MediaTemple समर्थन से संपर्क किया है और वे बस ने कहा, "खेद है, लेकिन यह साबित होता है क्योंकि स्क्रिप्ट आउटपुट संस्करण संख्या इसके इंस्टॉल"

+2

कि KB लेख ImageMagick CLI उपकरण कॉल करने के लिए सक्षम बनाता है PHP स्क्रिप्ट से, लेकिन यह इमेजिक पियर क्लास (http://www.php.net/manual/en/book.imagick.php) स्थापित नहीं करता है। मैं (जीएस) पर इमेजिक() का उपयोग करने का एक आसान तरीका नहीं देख रहा हूं। इसे स्रोत से संकलित और आपके पथ में स्थानीय रूप से संग्रहीत एक्सटेंशन की आवश्यकता हो सकती है। मैं उसे एक शॉट दूंगा। –

उत्तर

18

ठीक है, मैं इस काम के मिल गया लेकिन यह थोड़ा मुश्किल था। यहां जाता है ...

सबसे पहले, आप स्रोत से ImageMagick इंस्टॉल करना चाहते हैं। यह चरण वैकल्पिक हो सकता है यदि आपके पास पहले से ही 'MagickWand-config' तक पहुंच है, लेकिन यह मेरे पथ में नहीं था। यहां दिए गए चरणों को मैंने (जीएस) पर वैकल्पिक निर्देशिका में स्थापित करने के लिए दिए गए थे:

नोट: इस पोस्ट के अनुसार, नवीनतम रिलीज 6.8.9.3 था।

$ wget http://www.imagemagick.org/download/ImageMagick-6.8.9-3.tar.gz 
$ tar xvfz ImageMagick-6.8.9-3.tar.gz 
$ cd ImageMagick-6.8.9-3 
$ mkdir /home/#####/etc/imagemagick 
$ ./configure --prefix=/home/#####/etc/imagemagick 
$ make 
$ make install 

Imagick पीएचपी वर्ग एक PECL विस्तार तो हम एक परिवर्तन के साथ प्रदान की KB मीडिया मंदिर से उपयोग कर इसे स्थापित हो जाएगा है। यहां दिए गए कदम हैं:

$ export SITEID=`pwd | awk -F\/ '{ print $3 }'` 
$ export PHPPATH=`php-stable -i | grep "Configure Command" | perl -pe "s/.*'.\/configure'\s*?'--prefix\=(.*?)'.*/\1/"` 
$ mkdir /home/$SITEID/data/lib 
$ mkdir /home/$SITEID/data/lib/php/ 
$ wget http://pecl.php.net/get/imagick && tar zxvf imagick && cd imagick-* && $PHPPATH/bin/phpize 

यह वह जगह है जहां हमारी स्क्रिप्ट निर्देशों से विचलित होती है। हमें 'MagickWand-config' का उपयोग करने के लिए हमारे ImageMagick इंस्टॉल के पथ को निर्दिष्ट करने की आवश्यकता है। इस निर्दिष्ट नहीं है, तो आपको निम्न त्रुटि दिखाई देंगे:

checking ImageMagick MagickWand API configuration program... configure: error: not found. Please provide a path to MagickWand-config or Wand-config program.

आप, ImageMagick की स्थापित '--with-Imagick' उस के साथ के लिए पथ की जगह स्रोत के लिए एक वैकल्पिक स्थान का उपयोग किया है पथ।

$ ./configure --with-php-config=$PHPPATH/bin/php-config --with-imagick=/home/#####/etc/imagemagick 

फिर से शुरू करना सामान्य निर्देश:

$ make && cp modules/*.so /home/$SITEID/data/lib/php 

अद्यतन अपने php.ini फ़ाइल है, जो/घर/#####/etc/php में स्थित होना चाहिए।आरं और जोड़ने के इन 2 लाइनों:

extension_dir=/home/#####/data/lib/php/

extension = imagick.so

ऐसा होने के बाद, यहाँ स्क्रिप्ट मैं भाग गया है:

<?php 

$IM_version=shell_exec("/usr/bin/convert -version"); 
echo $IM_version; 

if (!extension_loaded('imagick')) 
{ 
    echo "imagick not installed\n"; 
} 
else 
{ 
    echo "imagick installed\n"; 
} 


try 
{ 
     /*** a new imagick object ***/ 
     $im = new Imagick(); 

     /*** Create a red rectangle ***/ 
     $im->newImage(200, 100, "red", "png"); 

     /*** write image to disk ***/ 
     $im->writeImage('/tmp/rectangle.png'); 

     echo 'Image Created'; 
} 
catch(Exception $e) 
{ 
     echo $e->getMessage(); 
} 

आउटपुट:

Version: ImageMagick 6.6.0-4 2012-05-03 Q16 http://www.imagemagick.org 
Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC 
Features: OpenMP 

imagick installed 
Image Created 
+0

मैंने वर्तमान संस्करण, ImageMagick-6.9.1-0.tar.gz के साथ इन निर्देशों का पालन किया, और यह पूरी तरह से काम करता है। आप लोग सर्वश्रेष्ठ हों। –

+1

ये निर्देश पूरी तरह से काम किया! एक छोटी सी नोट के साथ: यदि आपका PHP संस्करण स्थिर नहीं है लेकिन नवीनतम है, तो आपको उस लाइन को प्रतिस्थापित करना होगा जो php-stable कहते हैं: $ निर्यात PHPPATH = 'php-latest -i | grep "कमांड कॉन्फ़िगर करें" | perl -pe "s /.*'.\/ कॉन्फ़िगर करें '\ s *?' - उपसर्ग \ = (। *?) '। */\ 1 /" ' – user2089160

+0

यह बहुत अच्छा है। मैंने उपर्युक्त के माध्यम से इसे ठीक किया, लेकिन अभी भी कुछ समस्याएं प्रतीत होती हैं। जब मैं आईएम संस्करण को पकड़ता हूं, तो यह एक एमटी जीएस के साथ वापस आता है जो मैंने इंस्टॉल किए गए (7.x) के बजाय डिफ़ॉल्ट रूप से (6.7.7-10) स्थापित किया है। कोई विचार है कि वह क्यों होगा? अब जब मैं छवि परिवर्तनों को आजमाता हूं तो वे बस लटक रहे हैं:/ – philzelnar