Mój hosting powiedział, że ImageMagic został wstępnie zainstalowany na serwerze. Szybko wyszukałem "ImageMagick" w wyniku phpinfo () i nic nie znalazłem. Nie mogę użyć SSH na serwerze, więc czy w PHP jest sposób, aby zweryfikować instalację?
php
imagemagick
Desmond Liang
źródło
źródło
To jest tak krótkie i słodkie, jak to tylko możliwe:
if (!extension_loaded('imagick')) echo 'imagick not installed';
źródło
php -r 'echo "imagick is ".(extension_loaded("imagick")?"":"not ")."installed\n";'
EDYCJA: Poniższe informacje i skrypt dotyczą tylko klasy iMagick - która nie jest dodawana domyślnie w ImageMagick !!!
Jeśli chcę wiedzieć, czy imagemagick jest zainstalowany i faktycznie działa jako rozszerzenie php, wklejam ten fragment do pliku dostępnego w sieci
<?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; ?>
Powinieneś zobaczyć grafikę Hello world:
źródło
W bash:
lub
Nie ma potrzeby pisania żadnego pliku PHP tylko do sprawdzenia.
źródło
Możesz łatwo sprawdzić klasę Imagick w PHP.
if( class_exists("Imagick") ) { //Imagick is installed }
źródło
extension_loaded('imagick')
zwraca TRUE!, więc myślę, że lepiej jest:if( extension_loaded('imagick') || class_exists("Imagick") ){ /*do Imagick*/ }
W Bash możesz sprawdzić, czy Imagick jest zainstalowanym modułem:
Jeśli odpowiedź jest pusta, nie jest instalowana.
źródło
Wypróbuj to jednorazowe rozwiązanie, które powinno dowiedzieć się, gdzie jest ImageMagick, jeśli masz do niego dostęp ...
To znalazło wszystkie wersje na moim hostingu GoDaddy.
Prześlij ten plik na swój serwer i wywołaj go,
ImageMagick.php
a następnie uruchom. Otrzymasz wszystkie potrzebne informacje ... miejmy nadzieję ...Powodzenia.
<? /* // 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"; ?>
źródło
Jeśli Twój dostawca usług internetowych / usługa hostingowa zainstalował ImageMagick i umieścił jego lokalizację w zmiennej środowiskowej PATH, możesz sprawdzić, które wersje są zainstalowane i gdzie, używając:
<?php echo "<pre>"; system("type -a convert"); echo "</pre>"; ?>
źródło
Aby przetestować tylko rozszerzenie IMagick PHP (nie cały pakiet ImageMagick), zapisz poniższy plik jako plik PHP (testImagick.php), a następnie uruchom go z konsoli: 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";
kredyt: https://mlocati.github.io/articles/php-windows-imagick.html
źródło
Pamiętaj, że po zainstalowaniu Imagicka (a właściwie dowolnego modułu PHP) musisz zrestartować serwer WWW i / lub php-fpm, jeśli go używasz, aby moduł pojawił się w phpinfo ().
źródło