Comment réparer une erreur HTTP lors du téléchargement d'images?

25

J'utilise WordPress 3.4.1 sur Ubuntu 12.04 sous Apache et PHP 5.3.X

Lorsque je me connecte au tableau de bord et ajoute un nouveau message. Ensuite, essayez de télécharger une image à définir comme une image sélectionnée, je reçois une boîte rouge avec un message "Erreur HTTP".

J'ai lu des articles sur des personnes qui disaient de ne pas utiliser le programme de téléchargement flash, mais simplement le programme de téléchargement par navigateur, mais lorsque j'essaie de le faire, je reçois simplement une erreur de 500 serveur interne.

J'ai essayé d'ajouter AddType x-mapp-php5 .php en haut de mon fichier .htaccess, sans aucune chance de changement.

La désactivation de TOUS les plugins n'a eu aucun effet. J'ai essayé une nouvelle installation. Pas de chance.

Mise à jour du 17/10/2016 - Si vous utilisez des fonctions ou des rôles personnalisés, essayez d’utiliser un rôle / des fonctionnalités natifs, puis essayez à nouveau.

Éléments à prendre en compte:

  • Propriété du fichier
  • Autorisations de fichier
  • configuration .htaccess
  • PHP version 7 +
  • Version actuelle de WordPress

Si vous travaillez sous un proxy, assurez-vous que les délais d'attente de votre serveur proxy sont correctement configurés.

    
posée Michael Ecklund 26.07.2012 - 19:05

5 réponses

21

Après le dépannage de @Wyck dans le chat, nous nous sommes limités au problème sous-jacent.

Le problème était lié au fait que ma configuration de serveur ne disposait pas de la quantité de mémoire appropriée allouée à Apache / PHP.

Si quelqu'un a le même problème, essayez de vérifier que vous disposez de suffisamment de mémoire serveur (64 Mo +) allouée à Apache / PHP dans les paramètres de configuration de votre serveur. Vous pouvez également ajouter ceci à votre fichier wp-config.php: define('WP_MEMORY_LIMIT', '64MB');

Si la solution ci-dessus ne fonctionne pas, lisez cet article ( problèmes de chargement d'images / de supports? ) pour un dépannage ultérieur.

essayez d’ajouter un ou tous les ajustements .htaccess suivants au fichier .htaccess situé dans le répertoire racine de votre installation WordPress.

Sérieusement, essayez l’une des solutions ci-dessous pour savoir laquelle a fait l’essentiel. Ne collez pas tout simplement tout de suite dans votre fichier .htaccess.

Essayez cette ligne:

AddType x-mapp-php5 .php

mod_security peut être à l'origine de problèmes. Désactivez-le pour voir si c'est le problème. Pour ce faire, créez un fichier .htaccess dans votre répertoire wp-admin. Ajoutez ceci:

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>

Si vous utilisez le contrôle d'accès basé sur l'authentification sur votre serveur Web (souvent appelé htpasswd, authentification de base, répertoire protégé par mot de passe ou similaire), WordPress n'est pas en mesure de le gérer pour Flash Uploader, Cron et XMLRPC. Les fichiers associés doivent être exclus pour fonctionner. N'oubliez pas que cela pourrait briser vos considérations de sécurité.

# Exclude the file upload and WP CRON scripts from authentication
<FilesMatch "(async-upload\.php|wp-cron\.php|xmlrpc\.php)$">
    Satisfy Any
    Order allow,deny
    Allow from all
    Deny from none
</FilesMatch>

Une dernière remarque: certains ont dit que si vous utilisiez une version inférieure de PHP 5.3.X, vous pouvez essayer de désactiver le mode sans échec de PHP.

Si vous utilisez WordPress sur plusieurs sites et que vous recevez des erreurs HTTP ou Internal Server, liées au téléchargement d’images, veuillez lire Le téléchargement d'images sur plusieurs sites entraîne l'échec de l'erreur HTTP pour la résolution d'autres problèmes éventuels.

    
réponse donnée Michael Ecklund 26.07.2012 - 20:47
23

Je mets le code suivant dans mon fichier functions.php . Ça marche!

add_filter( 'wp_image_editors', 'change_graphic_lib' );

function change_graphic_lib($array) {
  return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' );
}

Si cela vous aide, c'est parce que cela modifie le module de code php utilisé pour traiter l'image téléchargée à utiliser avec Wordpress.
Ce traitement inclut le déplacement de l'image dans la base de données de la médiathèque et la génération d'images de tailles différentes ("vignettes", "moyennes", "grandes") auxquelles Wordpress souhaite toujours disposer des thèmes accessibles.

Cela provoque l’utilisation du module "GD", car c’est le premier. Dans certaines configurations de serveur, la bibliothèque "Imagick" la plus récente ne fonctionne pas bien avec d'autres pour certains scénarios d'image, tels que les dimensions en pixels de grande taille, de sorte que l'utilisation de la bibliothèque "GD" est une solution.

    
réponse donnée Allen 30.04.2014 - 07:19
4

J'ai rencontré la même erreur en essayant de télécharger un média dans wordpress. Dans Chrome, il s’agit d’un http: error; dans Firefox, l'erreur semble très différente. Le Web est un récit complet de personnes qui ont passé des jours à chasser le virus (tout comme moi :-(). Les solutions abondent, mais personne n’explique pourquoi, du moins pas d’une manière qui soit compatible avec les symptômes.

Ma contribution digne de ce nom: j’ai remarqué que le problème était corrélé à une erreur de segmentation signalée dans le fichier journal d’apache2. Cela me dérange, car il est difficile à diagnostiquer.

Le redémarrage de l’ensemble du serveur a éliminé tous les symptômes et tout à coup, je pouvais à nouveau transférer du contenu multimédia dans Wordpress. Frustrement, je ne sais pas pourquoi cela se produit. Le redémarrage m'a effectivement empêché de poursuivre mes recherches et je dois maintenant attendre (semaines? Mois?) Que le problème réapparaisse. J'espère que cela aidera les autres dans leur quête de la cause de ce problème. Ma femme est heureuse, cependant, parce que je ne peux plus passer la nuit à résoudre ce problème ...

    
réponse donnée Stef Joosten 30.05.2014 - 21:19
1

J'ai résolu ce problème en remplaçant mon propriétaire par root, comme indiqué ci-dessous.

chown -R apache: apache / var / www / html / mydomain

et puis j'ai changer l'autorisation du wp-content / uploads / 775

après que j’ai essayé de télécharger une image sur le support, j’ai réussi à télécharger l’image.

    
réponse donnée imran 29.10.2013 - 10:24
0

J'ai eu le même problème. J'ai essayé diverses corrections, notamment la modification du processeur d'image par défaut de PHP GD par ImageMagick à l'aide du Plug-in Force Image Magick

Cela a aidé avec l'erreur HTTP / l'erreur 500 mais les vignettes n'étaient plus générées. J'ai ensuite de nouveau désactivé le plug-in et ce qui m'a alors aidé était cette réponse sur la question Looks comme le redimensionnement d'image ne fonctionne pas bien . Mon PHP_MEMORY_LIMIT a été défini sur 160MB , ce qui correspond au maximum absolu autorisé par mon hébergeur.

Pour le téléchargement des images, les dimensions de l’image obtenues ont été maximales d’environ 6000 x 6000 px lors de l’utilisation de PHP GD et de la création de vignettes. Il est donc important de vérifier non seulement la taille du fichier, mais également les dimensions de l'image. Le téléchargement d’une image avec des dimensions supérieures a généré une erreur HTTP / erreur 500 même avec des fichiers de petite taille.

    
réponse donnée intagli 29.03.2018 - 18:15

Lire d'autres questions sur les étiquettes