web-dev-qa-db-fra.com

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

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 le files/styles dossiers 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.

21
Evan Johnson

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.2 mentionne:

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 pointera désormais vers une URL comme http://example.com/sites/ par défaut/fichiers/styles/miniature/public/champ/image/exemple.png? itok = zD_VaCaD .)

Vous pouvez ajouter la ligne suivante à votre settings.php pour 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 version de Drupal 7.21, la mise à jour inclut des correctifs pour les incompatibilités introduites dans la Drupal 7.20 version de sécurité uniquement. Donc, il est 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.

32
AjitS

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!

3
shaneonabike

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 œuvre la modification de tous les +FollowSymLinks à +SymLinksIfOwnerMatch mais je ne parviens toujours pas à obtenir un bon aperçu des styles d'image.

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.

1
deanflory

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

Voici mes paramètres:

Configurer le chemin du système public : sites/default/files

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é) Fichiers locaux publics servis par le serveur Web.

1
Fahim A.

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);
0
Michael Hurley