Imagick安装错误 - 类未定义

问题描述:

好吧,这里是一个什么样的一个细分:在命令行运行(例如,sudo的PHP myscript.php Imagick安装错误 - 类未定义

  • 但是在运行时,当

    1. <? $foo = new Imagick(); ?>作品没有错误。通过网络browswer我得到Fatal error: Class 'Imagick' not found in /var/www/lhackwith_www/test_html/magic.php on line 1
    2. magickwand未安装
    3. 延长= imagick.so是在imagick.ini其被成功地根据PHPINFO()被读取;
    4. 豪ver,imagick不在PHP信息中显示。

    任何意见,将不胜感激。

  • 我认为你绝对确定你已经编辑了正确的php.ini ...
    你检查了网络服务器的error.log提示吗?您可能需要增加该测试的LogLevel。如果它是一个Apache看到http://httpd.apache.org/docs/2.2/mod/core.html#loglevelhttp://httpd.apache.org/docs/2.2/logs.html#errorlog

    也许ldd - print shared library dependencies可以对这个问题提供一些线索:

    <?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>';
    请双方在命令行,并通过网络服务器上运行此脚本。它是否抱怨缺少依赖关系?


    EDIT2:因此,“内”的网络服务器甚至没有能够看到。所以延长运行脚本...让我们来测试在该路径的点麻烦开始
    <?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

    很好的建议。但是,我检查了日志级别和其他所有内容,它只是将parroted还给了我相同的“未找到”错误。 – 2009-06-23 20:29:41

    +0

    将php安装为cgi或模块? – VolkerK 2009-06-23 21:23:23

    什么工作系统是否在使用?我在Mac OSX上遇到了几个问题,基本上使得安装一些扩展非常痛苦。但是,对于大多数操作系统,Imagick安装应该非常简单。

    在您的命令行中,输入php -i | grep ini,并确保被列为正在加载的php.ini与phpinfo()所说正在加载的php.ini相同。如果这些不同,那就是你必须开始的地方。确保extension = imagick.so同时在ini文件中,同时验证它们是否从同一个目录加载扩展名(可能性是99%,但是谁知道 - 你可能是个例外)。

    在验证(可能)两个php.ini文件都加载了imagick.so并且它仍然无法工作之后,尝试尾巴-f/path/to/apache/error_log(假设您使用的是apache,当然..)并重新启动Apache。你在寻找关于加载库和/或扩展的php警告。希望它能指出你正确的方向。

    希望这有助于

    吉姆

    我最终什么事做:

    存储在数据库中的图像的方向,然后使用alternatiff动态旋转图像,这是方向存储。不需要图像处理。

    尽管感谢您的帮助。

    我在将ubuntu从12.04升级到12.10后出现了与imagick类似的问题。

    多摆弄之后,我终于发现,有需要不同的包装,并用固定它(为PHP5?):

    sudo apt-get install php5-imagick