Hoje, carreguei meu site no servidor e recebo erros como o seguinte:
Não foi possível gerar a imagem derivada localizada em public: //styles/sponsor_image/public/TerraThermaSponsorLogo.png.
Os estilos de imagem não podem gerar imagens. Eu tentei definir permissões em pastas de estilos / * chmod -R 775 styles/
e até tentei chmod -R 777 styles/
. O proprietário da pasta está OK. Eu não entendo o que pode estar errado.
O diretório associado a public: // é sites / default / files e está OK.
www-data
, mas ainda recebo o erro. O que mais eu faço? O ImageMagick está configurado corretamente, estou executando isso em um servidor que possui muitas instalações do Drupal.Você também deve ter uma biblioteca gráfica (como php-gd) instalada em seu servidor: verifique / admin / config / media / image-toolkit (D7).
fonte
O erro vem do módulo Image (core) e a lógica se parece com:
Portanto, o erro ocorre quando o Drupal tem problemas ao gerar um derivado de imagem aplicando todos os efeitos de imagem e salvando uma versão em cache da imagem resultante.
A maneira mais fácil de reproduzir o problema (para fins de diagnóstico) é por drush.
Invoque image_style_create_derivative () diretamente do drush:
Substitua
picture-123.png
pela imagem existente do log:Ou use qualquer outro existente, por exemplo
drush sqlq "SELECT * FROM file_managed"
.Se você não tem acesso ao shell, use o módulo Devel, vá
/devel/php
e cole o código PHP lá.Nota: Se a
files
pasta pertencer ao usuário do Apache, você deverá efetuar login como esse usuário para fins de teste. Caso contrário, prefixe seu comando drush comsudo -u www-data
.Existem as seguintes possibilidades.
drush eval "print_r(gd_info());"
:).Problemas de permissão de depuração podem ser facilmente alcançados por
strace
. Instale-o e prefixe qualquer comando que você esteja testandostrace -f
(você não precisa ser root).No exemplo:
Se você estiver conectado com uma conta diferente
files
, não se esqueça de prefixar seu comando drushsudo -u www-data
para executar o comando inteiro como usuário do Apache.fonte
Isso também pode ser causado pela compilação do PHP sem libjpeg (se as imagens que não serão geradas tiverem fontes jpeg). Verifique a saída de
gd_info()
para ver se há suporte ao PHP.fonte