Frage

Okay, Hier ist eine Aufschlüsselung, was los ist:

  1. <? $foo = new Imagick(); ?> arbeitet ohne Fehler, wenn sie von der Kommandozeile lief (zum Beispiel sudo php myscript.php
  2. Wenn jedoch über das Web browswer laufen bekomme ich Fatal error: Class 'Imagick' not found in /var/www/lhackwith_www/test_html/magic.php on line 1.
  3. MagickWand ist nicht installiert
  4. extension = imagick.so ist in imagick.ini die erfolgreich nach phpinfo gelesen wird ();
  5. jedoch imagick ist NICHT in PHP Info zeigt sich.

Jede mögliche Beratung verstanden werden.

War es hilfreich?

Lösung

Ich nehme an du bist absolut sicher, dass Sie die richtige php.ini bearbeitet haben ...
Haben Sie die error.log des Webservers überprüfen Hinweise? Sie könnten die LogLevel für diesen Test erhöhen möchten. Wenn es ein Apache finden Sie unter http://httpd.apache.org/docs /2.2/mod/core.html#loglevel und http: / /httpd.apache.org/docs/2.2/logs.html#errorlog

oder vielleicht LDD - print gemeinsam genutzte Bibliothek Abhängigkeiten können werfen ein Licht auf die Frage:

<?php
$p = get_cfg_var('extension_dir');
$modpath = $p.DIRECTORY_SEPARATOR.'imagick.so';
echo $modpath, is_readable($modpath) ? ' readable':' not readable', "<br />\n";
echo '<pre>';
passthru('ldd '.$modpath.' 2>&1'); // in case of spaces et al in the path-argument use escapeshellcmd()
echo '</pre>';
please diesem Skript ausführen sowohl auf der Kommandozeile und über den Webserver. Ist es beschweren sich über eine fehlende Abhängigkeit?


edit2: Also das Skript läuft „innerhalb“ der Webserver nicht einmal in der Lage ist, um die Erweiterung zu sehen .so ... Lassen Sie sich Test, an welcher Stelle des Wegs der Mühe starts
<?php
function foo($path) {
  if ( $path==($dir=dirname($path)) ) {
    return;
  }
  foo($dir);

echo is_dir($path) ? ' d':' -', is_readable($path) ? 'r':'-', is_writable($path) ? 'w':'-', is_executable($path) ? 'x ':'- ', $path, "<br />\n"; }

$modpath = get_cfg_var('extension_dir').DIRECTORY_SEPARATOR.'imagick.so'; foo($modpath);

Andere Tipps

Ich hatte ein ähnliches Problem mit imagick nach ubuntu 12,04-12,10 aktualisieren.

Nach viel Hantieren Ich entdeckte schließlich, dass es ein anderes Paket (für php5?) Erforderlich ist und fixiert es mit:

sudo apt-get install php5-imagick

Was Betriebssystem verwenden Sie? Ich habe einige Probleme auf Mac OSX hatte, dass einige Erweiterungen macht die Installation grundsätzlich UEBERLAPP schmerzhaft. Allerdings sollte die Imagick installiert wirklich einfach sein, für die meisten Betriebssysteme.

Auf dem Befehlszeile ein php -i | grep ini, und stellen Sie sicher, dass der php.ini, die als geladen aufgeführt wird, ist das gleiche wie die php.ini, die phpinfo () sagt geladen wird. Wenn diese unterschiedlich sind, ist, wo Sie anfangen. Stellen Sie sicher, extension = imagick.so ist in beide INI-Dateien, auch - überprüfen, ob sie Erweiterungen aus der gleichen Verzeichnis geladen werden (99% Chance, dass sie sein wird, aber wer weiß - man könnte eine Ausnahme sein).

Nachdem Sie sich vergewissert haben, dass (möglicherweise) beide php.ini Dateien laden imagick.so und es funktioniert immer noch nicht, versuchen Sie zu tail -f / path / to / Apache / error_log (vorausgesetzt, Sie Apache verwenden, von natürlich ..) und apache neu starten. Sie suchen hier für PHP-Warnungen über das Laden von Bibliotheken und / oder Erweiterungen. Hoffentlich wird es Ihnen in die richtige Richtung zeigen.

Hope, das hilft,

Jim

Was ich am Ende tun:

Speicher die Ausrichtung des Bildes in der DB und dann unter Verwendung von AlternaTIFF um dynamisch das Bild auf die Orientierung drehen, die gespeichert wurde. Keine Bildbearbeitung erforderlich ist.

Danke für Ihre Hilfe though.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top