Les styles d'image renvoient l'accès refusé


22

J'utilise le module Insérer pour permettre aux utilisateurs d'insérer des images avec un style d'image spécifique dans une page. Après la mise à niveau vers Drupal 7.20, les images ne sont pas stockées dans les files/stylesdossiers et l'url de l'image renvoie une erreur 403 (accès refusé). J'ai vérifié les autorisations de dossier, et elles sont toutes définies sur 777.


J'ai également installé le module media_flickr, mais je pense que mes styles d'image fonctionnaient après l'installation. Je peux me tromper.
Evan Johnson

Réponses:


32

Il est toujours recommandé de lire les notes de publication de la nouvelle version avant la mise à jour, pour vous assurer que la mise à jour ne casse pas certaines des fonctionnalités actuelles.

Les notes de version de Drupal 7.20 mentionnent:

Les correctifs de sécurité de cette version modifient toutes les URL dérivées d'images générées par Drupal pour ajouter un jeton en tant que chaîne de requête. (Par exemple, les liens qui pointaient précédemment vers une URL telle que http://example.com/sites/default/files/styles/thumbnail/public/field/image/example.png pointeront désormais vers une URL telle que http: / /example.com/sites/default/files/styles/thumbnail/public/field/image/example.png?itok=zD_VaCaD .)

Vous pouvez ajouter la ligne suivante à votre settings.phppour que les images du site fonctionnent:

$conf['image_allow_insecure_derivatives'] = TRUE;

mais ce serait aussi bien que de mettre à jour le noyau et de ne pas utiliser les mises à jour ;-)

Quelques liens utiles de la page:

MISE À JOUR:

À partir des notes de publication de Drupal 7.21, la mise à jour inclut des correctifs pour les incompatibilités introduites dans la version de sécurité Drupal 7.20 uniquement. Il est donc recommandé de mettre à jour vers la dernière version, c'est-à-dire 7.21, pour utiliser les correctifs de sécurité de la version 7.20.


2
doh! oui, la lecture des notes de version est bonne. J'ai la mauvaise habitude de simplement taper 'drush up drupal'. Merci!!!
Evan Johnson

le patch dans # 1923554 a fonctionné pour mon problème
rémy

@ rémy s'il vous plaît voir l'édition.
AjitS

je ne veux pas autoriser les dérivés non sécurisés. ce qui est étrange, c'est que lorsque j'essaie de créer une image à partir d'un style d'image, cela me donne l'url et le jeton de sécurité, mais imprime toujours l'accès refusé. des idées?
Alex

3
Ce problème persistera également si, n'importe où dans le code que vous appelez image_style_path () pour générer le chemin de l'image, cela doit être changé en image_style_url () pour générer correctement le jeton.
masterchief

3

Pour ce que ça vaut, j'ai également constaté que mes répertoires de style d'image n'étaient plus définis les autorisations correctes après une mise à niveau et vider le cache.

Les styles racine / [votre style] et styles / [votre style] / public doivent être 755 pour que les choses se chargent correctement.

Les changer tous ont fait réapparaître correctement les images!


1

Réparez votre système de fichiers: / admin / config / media / file-system

Voici mes paramètres:

Configurer le chemin du système public : sites / défaut / fichiers

Le chemin du système de fichiers privé est vide.

Répertoire temporaire: / tmp

Méthode de téléchargement par défaut (sélectionnée) Fichiers locaux publics servis par le serveur Web.


1

L'exécution de cette modification n'a PAS résolu le problème et a généré des erreurs:

la ligne 775 des modules / image / image.admin.inc a besoin d'un patch ...

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

(puisque ma réputation est faible, je ne peux pas encore commenter sous cette réponse séparée)

J'ai implémenté cette méthode en arrière et cela a corrigé beaucoup de choses lorsque ce problème est apparu pour la première fois:

$conf['image_allow_insecure_derivatives'] = TRUE;

J'ai également mis en changer tout +FollowSymLinksà +SymLinksIfOwnerMatchmais ne suis pas en mesure d'obtenir les styles d'image avant - premières pour fonctionner correctement.

La prochaine et dernière option consiste à modifier les autorisations utilisateur de la taille du serveur, ack. Je vais le réparer ou tout casser.


0

la ligne 775 des modules / image / image.admin.inc a besoin d'un patch ...

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

4
Les chatons mourront si cela est utilisé. (Ne jamais pirater le noyau).
stefgosselin
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.