Il semble que je reçois une "erreur HTTP de téléchargement" lorsque j'essaie de télécharger des images dans l'admin de Magento 1.7. Tous les dossiers/fichiers de supports sont définis sur 777, les informations .htaccess sont correctes, je n’utilise pas de protection par mot de passe, et cela se produit dans n’importe quel navigateur.
Toutes les suggestions sont grandement appréciées!
Il y a beaucoup de choses qui pourraient causer ce problème, mais voici quelques choses que vous pourriez essayer:
Assurez-vous que le répertoire/media et tous les sous-répertoires contiennent le groupe d'utilisateurs de votre Apache (généralement 'www-data' ou 'httpd'):
Sudo chgrp -R www-data /path/to/magento/media
Assurez-vous que le répertoire/media et tous les sous-répertoires disposent des autorisations appropriées accordées au groupe d'utilisateurs de votre Apache:
Sudo chmod -R 775 /path/to/magento/media
Dans Système-> Configuration-> Général-> Web, assurez-vous que "URL de base" et "URL de média de base" sont corrects sous "Sécurisé" et "Non sécurisé".
Dans votre base de données Magento, la table core_config_data
contient les valeurs brutes de vos {{secure_base_url}}
et {{unsecure_base_url}}
.
Assurez-vous que ces valeurs sont correctes et comportent des barres obliques de fin, comme http://example.com/
Dans la configuration système ci-dessus, assurez-vous que ces valeurs correspondent correctement à la barre oblique finale de la valeur brute. Cela signifie qu'ils devraient ressembler à {{secure_base_url}}media
par exemple, sans barre oblique
Dans Système-> Gestion du cache, désactivez la mise en cache
Prenez les fichiers .htaccess à partir d'un nouveau téléchargement de votre version de Magento (y compris le fichier .htaccess dans la racine de votre document et tous les fichiers .htaccess situés dans/media et tous les sous-répertoires de/media), sauvegardez vos fichiers .htaccess actuels, puis explicitement. copiez les nouveaux fichiers .htaccess pour les remplacer.
Parce que .htaccess commence par le '.' caractère, il sera ignoré par certaines commandes Linux, ce qui peut amener les utilisateurs à penser qu’ils ont copié ou écrasé un fichier .htaccess alors qu’ils ne l’ont pas encore fait, faites-le soigneusement.
Maintenant, essayez à nouveau, et si vous obtenez la même erreur, cela éliminera .htaccess.
Si vous utilisez SSL, essayez de désactiver SSL et si vous obtenez la même erreur, cela exclura SSL.
Accédez à app/code/local
et app/code/community
et notez les espaces de noms contenus dans ces répertoires. Maintenant, allez à app/etc/modules
et éditez tous les fichiers * .xml de ce répertoire correspondant aux espaces de noms que vous avez indiqués avec la valeur suivante pour le noeud <active>
:
<?xml version="1.0"?>
<config>
<modules>
<Namespace_*>
<!-- set this value to "false" -->
<active>false</active>
<!-- more nodes here, just leave every
node alone except <active> -->
</Namespace_*>
</modules>
<config>
Maintenant, essayez à nouveau, et si vous obtenez la même erreur, cela éliminera les conflits de modules.
Si les images sont suffisamment grandes, vous pouvez être limité par vos paramètres PHP:
Identifiez votre php.ini chargé:
<?php
phpinfo(); // Look for "Loaded Configuration File"
Editez votre fichier php.ini (si vous êtes sur Ubuntu, il était probablement en /etc/php5/Apache2/php.ini
):
Sudo vi /path/to/php.ini
# Make these three values higher than the filesize of the images you're
# trying to upload:
upload_max_filesize = 200M
post_max_size = 200M
memory_limit = 200M
Redémarrez votre serveur Web:
Sudo /etc/init.d/Apache2 restart
Si vous en êtes à ce stade et que rien n’a fonctionné, voici quelques astuces qui pourraient vous prendre beaucoup de temps pour cerner le type de problème:
Créez une nouvelle installation de Magento sur le même serveur Web et testez les téléchargements d'images.
S'ils ne fonctionnent toujours pas, c'est un problème avec Apache ou la configuration de PHP (voire même la version)
S'ils fonctionnent, c'est probablement un problème avec vos fichiers de base Magento, votre configuration Magento, votre base de données Magento ou votre hôte virtuel Apache. Suivez ces étapes pour déterminer lesquelles:
Créer une nouvelle base de données
Supprimer tout dans /path/to/new/magento/var/*
Sudo rm -rf /path/to/new/magento/var/*
Dans votre ancien administrateur Magento, accédez à System->Tools->Backups
et cliquez sur Create Backup
. Une fois que cela est fait, allez à /path/to/old/magento/var/backup/
et insérez votre sauvegarde dans la nouvelle base de données que vous avez créée:
mysql -p -u username database_name < backup_file
Dans votre nouveau système de fichiers Magento, accédez à /path/to/new/magento/app/etc/local.xml
et éditez-le pour qu'il pointe vers votre nouvelle base de données:
<username>{{db_user}}</username>
<password>{{db_pass}}</password>
<dbname>{{db_name}}</dbname>
Essayez à nouveau de télécharger des images sur la nouvelle installation de Magento. Si le problème survient, le problème provient de votre configuration Magento ou de votre base de données Magento. Si vous n'obtenez pas le message d'erreur, le problème provient de vos fichiers de base Magento ou de votre hôte virtuel Apache.
Si vous souhaitez fournir plus d'informations, les éléments les plus utiles sont probablement une copie de votre php.ini
, Apache2.conf
et/ou httpd.conf
chargé, ainsi que des copies de vos fichiers .htaccess
de document root
dans tous les sous-répertoires de /media
, avec toutes les informations confidentielles dissimulées. cours.
Pour ajouter à la réponse de chjohasbrouck, vous pouvez également avoir cette erreur en ne disposant pas de l'extension Gd PHP.
Pour installer sur Ubuntu avec Apache, procédez comme suit:
Sudo apt-get install php5-Gd
puis redémarrez Apache.
Plus d’informations sur Ubuntu ici: http://www.cyberciti.biz/faq/ubuntu-linux-install-or-add-php-Gd-support-to-Apache/
Si votre répertoire racine est protégé par un mot de passe à l'aide d'un fichier .htaccess
, supprimez cette protection et réessayez.
Dans votre .htaccess
, recherchez:
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /path/to/your/passwd_file
AuthGroupFile /dev/null
require valid-user
Assurez-vous de vérifier à nouveau vos besoins en paramètres de sécurité, car vous pourriez trouver de meilleurs moyens de protéger votre site que celui-ci.
Une erreur est à l'origine de cette erreur. Si le fait de changer de groupe en utilisateur Apache/www-data et de changer l'autorisation d'écriture ne résout pas le problème. Désactiver l'authentification .htpasswd si elle est activée dans .httaccess pour faire ceci commenter ces lignes
#AuthType Basic
#AuthName "Password Protected Area"
#AuthUserFile .htpasswd path
#Require valid-user
Traitant du même problème, j’ai trouvé que dans mon cas, c’était un problème avec ma config nginx.
La taille de téléchargement maximale par défaut pour nginx est de 1 Mo. Si vous téléchargez des fichiers plus volumineux, vous verrez 413 erreurs dans votre journal des erreurs nginx, alors que Magento vous indiquera simplement une "erreur de téléchargement http" non descriptive.
Modifiez ou ajoutez le paramètre [client_max_body_size] dans nginx.conf, quelque part dans la section http {}, comme dans cet exemple où je règle la taille maximale de téléchargement sur 200 Mo:
http {
client_max_body_size 200m;
}
J'ai eu ce problème dans Magento 1.7 parce que le nom du fichier d'image "dutchman's_pipe.jpg" contenait une apostrophe. J'espère que ça aidera quelqu'un d'autre.
J'ai rencontré le même problème sur mon serveur Ubuntu 10.04. Cela a été causé par ce paramètre particulier.
Maintenant, j'ai apporté la modification suivante dans ce fichier: /etc/Apache2/mods-available/fcgid.conf
(vous devez avoir un accès root pour le modifier):
FcgidMaxRequestLen 1073741824
Presque à la fin de la dernière ligne de commandes Fcgi et avant le </IfModule>
, ajoutez simplement:
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
FcgidConnectTimeout 60
FcgidMaxRequestLen 1073741824
</IfModule>
J'ai trouvé une autre raison possible. Dans Magento version 1.6.2.0, cela était dû au fait que sous Système -> Web -> Session, REMOTE_ADDR et HTTP_USER_AGENT étaient activés. J'ai changé les deux à "non" et cette erreur a disparu (sans autre changement!)