web-dev-qa-db-fra.com

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

J'utilise WordPress 3.4.1 sur Ubuntu 12.04 avec 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 et d'utiliser simplement le programme de téléchargement par navigateur, mais lorsque j'essaie, 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.

Update 10/17/2016 - Si vous utilisez des fonctions ou des rôles personnalisés, essayez d'utiliser un rôle/des fonctionnalités natifs, puis de nouveau.

Points à vérifier:

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

Si vous utilisez un proxy, assurez-vous que les délais d’exécution du serveur proxy sont correctement configurés.

WordPress 3.4.1 Media Upload HTTP Error

28
Michael Ecklund

Après le dépannage avec @Wyck dans le chat, nous nous sommes concentrés sur le problème sous-jacent.

Le problème était lié au fait que ma configuration du 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 l’article Problèmes avec le téléchargeur de supports/Image? pour un dépannage plus approfondi.

Essayez d'ajouter un par un ou tous les réglages .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'affaire. Ne collez pas tout simplement dans votre fichier .htaccess immédiatement.

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 à cela:

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

Si vous utilisez un 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. Gardez à l'esprit que cela pourrait casser vos considérations de sécurité.

# Exclude the file upload and WordPress 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 PHP Mode sans échec.

Si vous utilisez WordPress sur plusieurs sites et que vous recevez des erreurs HTTP ou des erreurs de serveur interne, 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 d’autres possibles. dépannage des idées et des solutions.

21
Michael Ecklund

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' );
}

Lorsque cela vous aide, c’est parce que cela modifie le module de code PHP utilisé pour traiter l’image téléchargée et l’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 pouvoir accéder aux thèmes.

Le module "Gd" est utilisé car il 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.

24
Allen

J'ai rencontré la même erreur lorsque j'essayais 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 mention: 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 c'est difficile à diagnostiquer.

Le redémarrage de l’ensemble du serveur a éliminé tous les symptômes et tout à coup, je pouvais télécharger à nouveau le 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égler ce problème ...

4
Stef Joosten

J'ai résolu ce problème en changeant mon propriétaire de root à Apache comme ci-dessous.

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

Et puis j'ai changer l'autorisation du wp-content/uploads/ en 775.

Après cela, j'ai essayé de télécharger une image dans le support. J'ai réussi à télécharger l'image.

1
imran

J'ai eu le même problème. J'ai essayé divers correctifs, y compris le changement du processeur d'image par défaut de PHP Gd à ImageMagick à l'aide du plugin Force Image Magick

Cela a aidé avec l'erreur HTTP/l'erreur 500 mais les miniatures n'étaient plus générées. J'ai alors de nouveau désactivé le plugin et ce qui m'a alors aidé était ceci answer sur la question On dirait que le redimensionnement de l'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 d'images, les dimensions maximales possibles de l'image étaient 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 de dimensions supérieures a entraîné une erreur/erreur HTTP 500 même avec des fichiers de petite taille.

0
intagli