Pergunta

Ok, aqui está um resumo do que está acontecendo:

  1. <? $foo = new Imagick(); ?> funciona sem erro quando correu a partir da linha de comando (por exemplo, sudo php myscript.php
  2. No entanto, quando executado através da web browswer eu recebo Fatal error: Class 'Imagick' not found in /var/www/lhackwith_www/test_html/magic.php on line 1.
  3. MagickWand não está instalado
  4. extension = imagick.so está em imagick.ini que é sucesso que está sendo lido de acordo com phpinfo ();
  5. No entanto, imagick não está aparecendo em info PHP.

Qualquer conselho seria apreciado.

Foi útil?

Solução

Acho que você está absolutamente certo de que você editou o direito php.ini ...
Será que você verifique error.log do servidor web para dicas? Você pode querer aumentar o LogLevel para esse teste. Se for um apache ver http://httpd.apache.org/docs /2.2/mod/core.html#loglevel e http: / /httpd.apache.org/docs/2.2/logs.html#errorlog

ou talvez ldd - impressão compartilhada dependências da biblioteca lata lançar alguma luz sobre a questão:

<?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 executar este script, tanto na linha de comando e através do servidor web. Será que reclamar uma dependência faltando?


edit2: Então o script em execução "dentro" do servidor web não é sequer capaz de ver a extensão .so ... teste Vamos em que ponto do caminho do 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);

problemas

Outras dicas

Eu tive um problema semelhante com imagick após ubuntu atualização 12,04-12,10.

Depois de muito mexer eu finalmente descobri que há um pacote diferente necessário e fixa-lo com (para php5?):

sudo apt-get install php5-imagick

O sistema operacional você está usando? Eu tive vários problemas no Mac OSX que, basicamente, faz da instalação de algumas extensões EXCESSIVAMENTE doloroso. No entanto, o Imagick instalação deve ser muito simples, para a maioria dos sistemas operacionais.

Em sua linha de comando, digite php -i | grep ini, e certifique-se o php.ini que está listado como sendo carregado é o mesmo que o php.ini que phpinfo () diz que está sendo carregado. Se estes são diferentes, é aí que você tem que começar. Certifique-se de extensão = imagick.so é em ambos os arquivos ini, também - verificar se eles são extensões de carregamento do mesmo diretório (99% de chance que vai ser, mas quem sabe - você poderia ser uma exceção).

Depois de ter verificado que (possivelmente) os dois arquivos php.ini são carregamento imagick.so e ele ainda não está funcionando, tente tail -f / path / to / apache / error_log (supondo que você está usando apache, de claro ..) e reiniciar o apache. Você está aqui para avisos do PHP sobre bibliotecas de carga e / ou extensões. Esperemos que irá apontar na direção certa.

Espero que isso ajude,

Jim

O que eu acabei fazendo:

O armazenamento da orientação da imagem no banco de dados e, em seguida, usando AlternaTIFF para girar dinamicamente a imagem para a orientação que foi armazenado. Nenhuma manipulação de imagem necessária.

Obrigado por sua ajuda embora.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top