2009-06-23 4 views
2

Okay, Hier ist eine Aufschlüsselung, was los ist:Imagick Installationsfehler - Klasse Nicht definiert

  1. <? $foo = new Imagick(); ?> Arbeiten ohne Fehler, wenn sie von der Kommandozeile lief (zB sudo php myscript.php
  2. jedoch bei der Ausführung i. über das Internet browswer Fatal error: Class 'Imagick' not found in /var/www/lhackwith_www/test_html/magic.php on line 1 erhalten
  3. MagickWand nicht
  4. extension = imagick.so in imagick.ini ist installiert ist, die erfolgreich ist, wird nach phpinfo read();
  5. Howe ver, imagick erscheint NICHT in PHP info.

Jeder Rat würde geschätzt werden.

Antwort

2

Ich nehme an, Sie sind absolut sicher, dass Sie die richtige php.ini bearbeitet haben ...
Haben Sie die error.log des Webservers auf Hinweise überprüft? Möglicherweise möchten Sie den LogLevel für diesen Test erhöhen. Wenn es ein Apache sehen http://httpd.apache.org/docs/2.2/mod/core.html#loglevel und http://httpd.apache.org/docs/2.2/logs.html#errorlog

oder vielleicht können ldd - print shared library dependencies etwas Licht in das Dunkel bringen:

<?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>';
bitte dieses Skript ausführen sowohl auf der Kommandozeile und über den Webserver. Beschwert es 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 welchem ​​Punkt des Weges beginnt der Ärger
<?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);

+0

Guter Rat. Ich überprüfte jedoch die Log-Level und alles andere und packte mir den gleichen "nicht gefunden" -Fehler zurück. –

+0

Ist PHP als CGI oder als Modul installiert? – VolkerK

+0

PHP ist ein Modul von Apache –

0

Welchen Betrieb System benutzen Sie? Ich hatte einige Probleme mit Mac OSX, die die Installation einiger Erweiterungen sehr schmerzhaft machen. Die Installation von Imagick sollte jedoch für die meisten Betriebssysteme sehr einfach sein.

Geben Sie auf Ihrer Kommandozeile php -i | ein grep ini, und stelle sicher, dass die php.ini, die als geladen aufgelistet ist, mit der php.ini übereinstimmt, die phpinfo() sagt, dass sie geladen wird. Wenn diese anders sind, müssen Sie beginnen. Stellen Sie sicher, dass extension = imagick.so in beiden Ini-Dateien ist. Überprüfen Sie auch, ob sie Erweiterungen aus demselben Verzeichnis laden (99% Wahrscheinlichkeit, dass sie es sind, aber wer weiß - Sie könnten eine Ausnahme sein).

Nachdem Sie überprüft haben, dass (möglicherweise) beide php.ini-Dateien imagick.so laden und es immer noch nicht funktioniert, versuchen Sie Tail -f/path/to/apache/error_log (vorausgesetzt, Sie verwenden Apache, natürlich ..) und Apache neu starten. Sie suchen hier nach PHP-Warnungen zum Laden von Bibliotheken und/oder Erweiterungen. Hoffentlich wird es dich in die richtige Richtung weisen.

hoffte, das hilft,

Jim

+0

Danke für Ihre Hilfe, CentOS ist das Betriebssystem verwende ich. das Web Server ist Apache –

+0

Ist irgendetwas auf Ihrem System 64bit? –

+0

Nein, ich glaube, wir laufen 32-Bit –

0

Was ich tun endete:

die Ausrichtung des Bildes in der DB speichern und dann AlternaTIFF mit zu drehen dynamisch das Bild auf die Ausrichtung, die war gelagert. Keine Bildbearbeitung benötigt.

Danke für Ihre Hilfe obwohl.

3

Ich hatte ein ähnliches Problem mit imagick nach dem Upgrade von Ubuntu von 12.04 bis 12.10.

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

sudo apt-get install php5-imagick