Mon hébergement Web dit qu'ImageMagic a été préinstallé sur le serveur. J'ai fait une recherche rapide pour "ImageMagick" dans la sortie de phpinfo () et je n'ai rien trouvé. Je ne peux pas SSH sur le serveur, y a-t-il donc un moyen en PHP de vérifier l'installation?
php
imagemagick
Desmond Liang
la source
la source
C'est aussi court et doux que possible:
if (!extension_loaded('imagick')) echo 'imagick not installed';
la source
php -r 'echo "imagick is ".(extension_loaded("imagick")?"":"not ")."installed\n";'
EDIT: Les informations et le script ci-dessous ne s'appliquent qu'à la classe iMagick - qui n'est pas ajoutée par défaut avec ImageMagick !!!
Si je veux savoir si imagemagick est installé et fonctionne réellement comme une extension php, je colle cet extrait dans un fichier accessible sur le Web
<?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; ?>
Vous devriez voir un graphique Hello World:
la source
Dans bash:
ou
Pas besoin d'écrire un fichier PHP juste pour vérifier.
la source
Vous pouvez facilement vérifier la classe Imagick en PHP.
if( class_exists("Imagick") ) { //Imagick is installed }
la source
extension_loaded('imagick')
renvoie TRUE!, donc je suppose que mieux vaut:if( extension_loaded('imagick') || class_exists("Imagick") ){ /*do Imagick*/ }
Dans Bash, vous pouvez vérifier si Imagick est un module installé:
Si la réponse est vide, elle n'est pas installée.
la source
Essayez cette solution unique qui devrait déterminer où se trouve ImageMagick, si vous y avez accès ...
Cela a trouvé toutes les versions sur mon hébergement Godaddy.
Téléchargez ce fichier sur votre serveur et appelez-le
ImageMagick.php
ou quelque chose, puis exécutez-le. Vous obtiendrez toutes les informations dont vous avez besoin ... j'espère ...Bonne chance.
<? /* // 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"; ?>
la source
Si votre FAI / service d'hébergement a installé ImageMagick et mis son emplacement dans la variable d'environnement PATH, vous pouvez trouver quelles versions sont installées et où en utilisant:
<?php echo "<pre>"; system("type -a convert"); echo "</pre>"; ?>
la source
Pour tester uniquement l'extension PHP IMagick (pas la suite complète ImageMagick), enregistrez ce qui suit sous forme de fichier PHP (testImagick.php) puis exécutez-le depuis la console: 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";
crédit: https://mlocati.github.io/articles/php-windows-imagick.html
la source
N'oubliez pas qu'après l'installation d'Imagick (ou de tout module PHP), vous devez redémarrer votre serveur Web et / ou php-fpm si vous l'utilisez, pour que le module apparaisse dans phpinfo ().
la source