ইমেজম্যাগিক ইনস্টলেশন যাচাই করুন


88

আমার ওয়েব হোস্টিং জানিয়েছে যে ইমেজমেজিক সার্ভারে প্রাক ইনস্টল করা হয়েছে। আমি phpinfo () এর আউটপুটে "ইমেজম্যাগিক" এর জন্য একটি দ্রুত অনুসন্ধান করেছি এবং আমি কিছুই পাইনি। আমি সার্ভারে এসএসএইচ করতে পারি না তাই পিএইচপি করার কোনও উপায় কি আমি ইনস্টলেশনটি যাচাই করতে পারি?

উত্তর:


48

এটা চেষ্টা কর:

<?php
//This function prints a text array as an html list.
function alist ($array) {  
  $alist = "<ul>";
  for ($i = 0; $i < sizeof($array); $i++) {
    $alist .= "<li>$array[$i]";
  }
  $alist .= "</ul>";
  return $alist;
}
//Try to get ImageMagick "convert" program version number.
exec("convert -version", $out, $rcode);
//Print the return code: 0 if OK, nonzero if error. 
echo "Version return code is $rcode <br>"; 
//Print the output of "convert -version"    
echo alist($out); 
?>

23
এই পরীক্ষাগুলি যদি চিত্রম্যাগিক অ্যাপ্লিকেশন ইনস্টল করা থাকে তবে পিএইচপি মডিউল নয়
বিকোসকা

সংস্করণ রিটার্ন কোডটি 0 * সংস্করণ: চিত্রম্যাগিক 6.3.7 08/09/09 Q16 imagemagick.org * কপিরাইট: কপিরাইট (সি) 1999-2008 চিত্রম্যাগিক স্টুডিও এলএলসি
ডেসমন্ড লিয়াং

এই পৃষ্ঠাটি ফিরে আসে। সংস্করণটি ফিরে আসতে সমস্যা হচ্ছে বলে মনে হচ্ছে তবে কোনওভাবে কপিরাইটের তথ্য ফেরত দেয়।
ডেসমন্ড লিয়াং

উত্তরটি কাজ করতে পারে তবে নীচের দুটি দুটি বেশ সরল, সহজ এবং সুস্পষ্ট। এটি কি এটিকে ডাউন-ভোটিংয়ের জন্য ভাল কারণ?
সোফিভাইরাস

4
এটি এমন একটি সমাধান যা প্রশ্ন জিজ্ঞাসা ব্যক্তির পক্ষে কাজ করে। ডাউন-ভোটিং সঠিক উত্তরের জন্য নয়। শিষ্টাচার সম্পর্কে আপনার যদি প্রশ্ন থাকে তবে আপনাকে এটি মেটা.স্ট্যাকওভারফ্লো ডটকম
ওয়াজিউ

149

এটি যতটা সংক্ষিপ্ত এবং মিষ্টি তা পেতে পারে:

if (!extension_loaded('imagick'))
    echo 'imagick not installed';

4
একইভাবে, কমান্ড লাইন থেকে:php -r 'echo "imagick is ".(extension_loaded("imagick")?"":"not ")."installed\n";'
জন গিবিনস

40

সম্পাদনা: নীচের তথ্য এবং স্ক্রিপ্টটি কেবলমাত্র আইমেজিক শ্রেণিতে প্রযোজ্য - যা চিত্রম্যাগিকের সাথে ডিফল্টরূপে যুক্ত হয় না !!!

যদি আমি জানতে চাই যে চিত্রগ্রাহক ইনস্টল রয়েছে এবং প্রকৃতপক্ষে পিএইচপি এক্সটেনশান হিসাবে কাজ করছে তবে আমি এই স্নিপেটটি একটি ওয়েব অ্যাক্সেসযোগ্য ফাইলে পেস্ট করেছি

<?php

error_reporting(E_ALL); 
ini_set( 'display_errors','1');

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

/* Create new image. This will be used as fill pattern */
$im->newPseudoImage(50, 50, "gradient:red-black");

/* Create imagickdraw object */
$draw = new ImagickDraw();

/* Start a new pattern called "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);

/* Composite the gradient on the pattern */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);

/* Close the pattern */
$draw->popPattern();

/* Use the pattern called "gradient" as the fill */
$draw->setFillPatternURL('#gradient');

/* Set font size to 52 */
$draw->setFontSize(52);

/* Annotate some text */
$draw->annotation(20, 50, "Hello World!");

/* Create a new canvas object and a white image */
$canvas = new Imagick();
$canvas->newImage(350, 70, "white");

/* Draw the ImagickDraw on to the canvas */
$canvas->drawImage($draw);

/* 1px black border around the image */
$canvas->borderImage('black', 1, 1);

/* Set the format to PNG */
$canvas->setImageFormat('png');

/* Output the image */
header("Content-Type: image/png");
echo $canvas;
?>

আপনার একটি হ্যালো ওয়ার্ল্ড গ্রাফিক দেখা উচিত:

এখানে চিত্র বর্ণনা লিখুন


22

ব্যাশে:

$ convert -version

বা

$ /usr/local/bin/convert -version

শুধু চেক করার জন্য কোনও পিএইচপি ফাইল লেখার দরকার নেই।


4
অন্য যে কোনও ব্যক্তিকে এটি সন্ধানের জন্য সংরক্ষণ করতে - রূপান্তরটি হ'ল শেল কমান্ড চিত্রটি ইনস্টল করা তাই উপরেরগুলি সরাসরি এটির সাথে এটি পরীক্ষা করে দেখুন +1
কলা অ্যাপল

18

আপনি সহজেই পিএইচপি-তে ইমামিক শ্রেণীর জন্য পরীক্ষা করতে পারেন।

if( class_exists("Imagick") )
{
    //Imagick is installed
}

9
গুরুত্বপূর্ণ: কখনও কখনও এটি মিথ্যা ফেরত দেয় তবে extension_loaded('imagick')if( extension_loaded('imagick') || class_exists("Imagick") ){ /*do Imagick*/ }
সত্যটি

9

বাশ-এ আপনি যাচাই করতে পারেন ইমাজিক কোনও ইনস্টলড মডিউল কিনা:

$ php -m | grep imagick

প্রতিক্রিয়া ফাঁকা থাকলে এটি ইনস্টল করা হয় না।


7

এই ওয়ান-শট সমাধানটি ব্যবহার করে দেখুন যা আপনার যদি অ্যাক্সেস করে থাকে তবে চিত্রম্যাগিকটি কোথায় রয়েছে তা নির্ধারণ করা উচিত ...

এটি আমার গডাড্ডি হোস্টিংয়ের সমস্ত সংস্করণ খুঁজে পেয়েছে।

এই ফাইলটি আপনার সার্ভারে আপলোড করুন এবং কল করুন ImageMagick.phpবা অন্য কোনও কিছু এটি চালান। আপনার প্রয়োজনীয় সমস্ত তথ্য আপনি পাবেন ... আশা করি ...

শুভকামনা।

<?
/*
// This file will run a test on your server to determine the location and versions of ImageMagick. 
//It will look in the most commonly found locations. The last two are where most popular hosts (including "Godaddy") install ImageMagick.
//
// Upload this script to your server and run it for a breakdown of where ImageMagick is.
//
*/
echo '<h2>Test for versions and locations of ImageMagick</h2>';
echo '<b>Path: </b> convert<br>';

function alist ($array) {  //This function prints a text array as an html list.
    $alist = "<ul>";
    for ($i = 0; $i < sizeof($array); $i++) {
        $alist .= "<li>$array[$i]";
    }
    $alist .= "</ul>";
    return $alist;
}

exec("convert -version", $out, $rcode); //Try to get ImageMagick "convert" program version number.
echo "Version return code is $rcode <br>"; //Print the return code: 0 if OK, nonzero if error.
echo alist($out); //Print the output of "convert -version"
echo '<br>';
echo '<b>This should test for ImageMagick version 5.x</b><br>';
echo '<b>Path: </b> /usr/bin/convert<br>';

exec("/usr/bin/convert -version", $out, $rcode); //Try to get ImageMagick "convert" program version number.
echo "Version return code is $rcode <br>"; //Print the return code: 0 if OK, nonzero if error.
echo alist($out); //Print the output of "convert -version"

echo '<br>';
echo '<b>This should test for ImageMagick version 6.x</b><br>';
echo '<b>Path: </b> /usr/local/bin/convert<br>';

exec("/usr/local/bin/convert -version", $out, $rcode); //Try to get ImageMagick "convert" program version number.
echo "Version return code is $rcode <br>"; //Print the return code: 0 if OK, nonzero if error.
echo alist($out); //Print the output of "convert -version";

?>

4
একটি পিডিএফ রূপান্তর: অনেক thx। সুন্দর স্ক্রিপ্ট হোস্টগেটর এবং গডাড্ডি উভয় নিয়েই ভাল কাজ করেছে ... ক্লাউড বা এডাব্লুএসের মতো শীতল নয়, তবে আমার ছোট ব্যবসায়িক গ্রাহকদের বাজেটের মধ্যে রয়েছে।
zipzit

4
ঘন্টা খানেক পরে ... এখানে গুগল এটি খায়: মিডিয়াউইকি থাম্বনেইল তৈরি করতে ত্রুটি: sh: / usr / স্থানীয় / বিন / রূপান্তর: এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই
মার্টিন

খনি একটি। নেট এবং সিটিকোর ভিত্তিক অ্যাপ্লিকেশন। আমি যদি আমার অ্যাপ্লিকেশনটি ইমেজম্যাগিক ব্যবহার করে বা না ব্যবহার করি তবে কীভাবে তা পরীক্ষা করব?
নাতাশা বাত্রা

1

যদি আপনার আইএসপি / হোস্টিং পরিষেবাদি ইমেজম্যাগিক ইনস্টল করে এবং এটি PATH এনভায়রনমেন্ট ভেরিয়েবলের মধ্যে রাখে, আপনি কোন সংস্করণ ইনস্টল করা আছে এবং কোথায় ব্যবহার করছেন তা খুঁজে পেতে পারেন:

<?php
echo "<pre>";
system("type -a convert");  
echo "</pre>";
?> 

1

কেবল ইমাগিক পিএইচপি এক্সটেনশন পরীক্ষা করতে (সম্পূর্ণ চিত্রম্যাগিক স্যুট নয়) নিম্নলিখিতগুলি পিএইচপি ফাইল (testImagick.php) হিসাবে সংরক্ষণ করুন এবং তারপরে এটি কনসোল থেকে চালান: php testImagick.php

<?php
$image = new Imagick();
$image->newImage(1, 1, new ImagickPixel('#ffffff'));
$image->setImageFormat('png');
$pngData = $image->getImagesBlob();
echo strpos($pngData, "\x89PNG\r\n\x1a\n") === 0 ? 'Ok' : 'Failed';
echo "\n";

ক্রেডিট: https://mlocati.github.io/articles/php-windows-imagick.html


0

মনে রাখবেন যে ইমেজিক ইনস্টল করার পরে (বা প্রকৃতপক্ষে কোনও পিএইচপি মডিউল) আপনার ওয়েব সার্ভার এবং / অথবা পিএইচপি-এফএমপি যদি আপনি এটি ব্যবহার করছেন তবে মডিউলটি phpinfo () এ প্রদর্শিত হওয়ার জন্য পুনরায় চালু করতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.