Estilos de imagem retornam acesso negado

22

Estou usando o módulo Inserir para permitir que os usuários insiram imagens com um estilo de imagem específico em uma página. Após a atualização para o Drupal 7.20, as imagens não são armazenadas nas files/stylespastas e o URL da imagem retorna um erro 403 (acesso negado). Eu verifiquei as permissões da pasta e todas estão definidas como 777.

Evan Johnson
fonte
Também instalei o módulo media_flickr, mas acredito que meus estilos de imagem estavam funcionando após a instalação. Eu poderia estar errado.
Evan Johnson

Respostas:

32

É sempre recomendável ler as notas de versão da nova versão antes de atualizar, para garantir que a atualização não interrompa alguns dos recursos atuais.

As notas de versão do Drupal 7.20 mencionam:

As correções de segurança nesta versão alteram todos os URLs derivados de imagem gerados pelo Drupal para anexar um token como uma sequência de consultas. (Por exemplo, os links que apontaram anteriormente para um URL como http://example.com/sites/default/files/styles/thumbnail/public/field/image/example.png agora apontarão para um URL como http: / /example.com/sites/default/files/styles/thumbnail/public/field/image/example.png?itok=zD_VaCaD .)

Você pode adicionar a seguinte linha ao seu settings.phppara obter as imagens no site funcionando:

$conf['image_allow_insecure_derivatives'] = TRUE;

mas seria tão bom quanto atualizar o núcleo e não usar as atualizações ;-)

Alguns links úteis da página:

ATUALIZAR:

Nas notas de versão do Drupal 7.21, a atualização inclui correções para incompatibilidades introduzidas apenas na versão de segurança do Drupal 7.20. Portanto, é recomendável atualizar para a versão mais recente, ou seja, 7.21 para usar as correções de segurança na versão 7.20.

AjitS
fonte
2
doh! sim, ler as notas de lançamento é bom. Eu tenho o mau hábito de digitar 'drush up drupal'. Obrigado!!!
Evan Johnson
o patch em # 1923554 trabalhou para o meu problema
rémy
@ rémy, veja a edição.
AjitS
Eu não quero permitir derivados inseguros. o estranho é que, quando tento criar uma imagem de dentro de um estilo de imagem, ele me fornece o URL e o token de segurança, mas ainda imprime o acesso negado. alguma ideia?
21413 Alex
3
Esse problema também persistirá se, em qualquer lugar do código que você estava chamando image_style_path () para gerar o caminho da imagem, ele precisar ser alterado para image_style_url () para gerar corretamente o token.
masterchief
3

Pelo que vale a pena, também descobri que, de alguma forma, meus diretórios de estilo de imagem não definiam mais as permissões corretas após uma atualização e limpeza de cache.

Os estilos de raiz / [seu estilo] e estilos / [seu estilo] / público devem ser 755 para que as coisas sejam carregadas corretamente.

Mudá-los todos fez com que as imagens aparecessem de novo!

shaneonabike
fonte
1

Corrija seu sistema de arquivos: / admin / config / media / file-system

Aqui estão as minhas configurações:

Configure o caminho do sistema público : sites / default / files

O caminho do sistema de arquivos particulares está vazio.

Diretório temporário: / tmp

Método de download padrão (selecionado) Arquivos locais públicos servidos pelo servidor da web.

Fahim A.
fonte
1

A realização desta edição NÃO corrigiu o problema e produziu erros:

A linha 775 de modules / image / image.admin.inc precisa de um patch ...

775> - $preview_file = image_style_path($style['name'], $original_path);
775> + $preview_file = image_style_url($style['name'], $original_path);

(como minha reputação é baixa, ainda não posso comentar sob essa resposta separada)

Eu implementei esse caminho de volta e ele corrigiu muitas coisas quando esse problema surgiu pela primeira vez:

$conf['image_allow_insecure_derivatives'] = TRUE;

Também implementei mudar tudo +FollowSymLinkspara, +SymLinksIfOwnerMatchmas ainda não consigo fazer com que as visualizações dos estilos de imagem funcionem corretamente.

A próxima e a última opção é alterar as permissões de usuário do tamanho do servidor, ack. Eu vou consertar ou quebrar tudo.

deanflory
fonte
0

A linha 775 de modules / image / image.admin.inc precisa de um patch ...

775> - $preview_file = image_style_path($style['name'], $original_path);
775> + $preview_file = image_style_url($style['name'], $original_path);
Michael Hurley
fonte
4
Gatinhos vão morrer se isso for usado. (Nunca corte o núcleo).
27613 stefgosselin