Come Risolvere l'Errore HTTP Durante il Caricamento delle Immagini?
Sto utilizzando WordPress 3.4.1 su Ubuntu 12.04 con Apache e PHP 5.3.X
Quando accedo alla dashboard e aggiungo un nuovo articolo, e cerco di caricare un'immagine da impostare come immagine in evidenza, ottengo un riquadro rosso con il messaggio "HTTP Error".
Ho letto di persone che suggeriscono di non utilizzare l'uploader flash e di usare invece l'uploader del browser, ma quando provo questo metodo, ottengo solo un errore 500 Internal Server Error.
Ho provato ad aggiungere AddType x-mapp-php5 .php
all'inizio del mio file .htaccess, senza ottenere alcun cambiamento.
La disattivazione di TUTTI i plugin non ha avuto alcun effetto. Ho provato una nuova installazione. Nessun risultato.
Aggiornamento 17/10/2016 - Se stai utilizzando ruoli o capacità personalizzate, prova a utilizzare un ruolo/capacità nativo e riprova.
Elementi da controllare:
- Proprietà dei file
- Permessi dei file
- Configurazione .htaccess
- Versione PHP 7+
- Versione attuale di WordPress
Se stai operando dietro un proxy, assicurati di aver configurato correttamente i timeout del server proxy.

Ho inserito il seguente codice nel mio file functions.php
. Funziona!
add_filter( 'wp_image_editors', 'change_graphic_lib' );
function change_graphic_lib($array) {
return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' );
}
Questo aiuta perché modifica il modulo PHP utilizzato per elaborare l'immagine caricata per l'uso con WordPress.
L'elaborazione include lo spostamento dell'immagine nel database della media library e la generazione delle diverse dimensioni delle immagini ("thumbnail", "medium", "large") che WordPress vuole sempre disponibili per l'accesso da parte dei temi.
Fa sì che venga utilizzato il modulo "GD", poiché è il primo nell'array. In alcune configurazioni del server, la libreria più recente "Imagick" non funziona correttamente in certi scenari di immagini, come dimensioni in pixel molto grandi, quindi forzare l'uso della libreria "GD" è una soluzione.

È meglio creare un piccolo plugin piuttosto che inserirlo nel functions.php
, perché se cambi tema, perdi il codice. E sono sicuro che vorrai che questo continui a funzionare dopo un cambio di tema

+1 Questo ha funzionato per me quando ho avuto questo problema con un'installazione predefinita di WP 4.9.4 su un nuovo account HostGator. @EliasNS sono un principiante; qual è il modo giusto per creare un piccolo plugin per questo?

@AndrewJanke, potresti usare un plugin https://es.wordpress.org/plugins/pluginception/

Dopo aver risolto i problemi con @Wyck nella chat, abbiamo individuato il problema sottostante.
Il problema era legato alla mia configurazione del server che non aveva una quantità sufficiente di memoria allocata per Apache/PHP.
Se qualcuno ha lo stesso problema, si prega di verificare di avere abbastanza memoria (64 MB+) allocata per Apache/PHP nelle impostazioni di configurazione del server. È anche possibile aggiungere questa riga nel file wp-config.php:
define('WP_MEMORY_LIMIT', '64MB');
Se la soluzione sopra non funziona, leggi l'articolo Problemi con il caricamento di immagini/media? per ulteriori soluzioni.
Prova ad aggiungere uno per uno o tutti i seguenti tweaks al file .htaccess nella directory principale della tua installazione WordPress.
Seriamente, prova una di queste soluzioni alla volta per capire quale funziona. Non incollarle tutte subito nel tuo file .htaccess.
Prova questa riga:
AddType x-mapp-php5 .php
mod_security potrebbe causare problemi. Disabilitalo per vedere se è questo il problema. Per farlo, crea un file .htaccess nella tua directory wp-admin e aggiungi questo:
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
Se stai utilizzando il controllo degli accessi basato sull'autenticazione sul tuo server web (spesso noto come htpasswd, autenticazione di base, directory protetta da password o simili), WordPress non è in grado di gestirlo per il Flash Uploader, Cron e XMLRPC. I file correlati devono essere esclusi per funzionare. Tieni presente che questo potrebbe compromettere le tue considerazioni di sicurezza.
# Escludi lo script di caricamento dei file e WordPress CRON dall'autenticazione
<FilesMatch "(async-upload\.php|wp-cron\.php|xmlrpc\.php)$">
Satisfy Any
Order allow,deny
Allow from all
Deny from none
</FilesMatch>
Un'ultima nota: alcuni hanno detto che se si utilizza una versione inferiore di PHP 5.3.X, si può provare a disabilitare la modalità sicura di PHP.
Se stai utilizzando WordPress multi-sito e ricevi errori HTTP o errori interni del server, relativi al caricamento delle immagini, leggi Il caricamento delle immagini in Multi-Site causa un errore HTTP per altre possibili soluzioni e idee di risoluzione.

ok ... buono a sapersi ... hai letto che WP cerca di allocare fino a 256MB di RAM quindi questo define('WP_MEMORY_LIMIT', '64MB');
dovrebbe essere più grande se possibile.

Se stai usando WP 4.1.1, il AddType x-mapp-php5 .php
non è più una soluzione valida perchè forza la pagina a stampare semplicemente il codice PHP come testo normale

Mi sono imbattuto nello stesso errore cercando di caricare media in WordPress. In Chrome, appare come un errore HTTP; in Firefox, l'errore appare completamente diverso. Il web è pieno di storie di persone che hanno passato giorni a cercare di risolvere questo bug (io incluso :-( ). Le soluzioni proposte sono molte, ma nessuno spiega il perché, almeno non in modo coerente con i sintomi.
Il mio piccolo contributo: ho notato che il problema è correlato a un segmentation fault segnalato nel file di log di Apache2. Questo mi preoccupa, perché è difficile da diagnosticare.
Riavviare completamente il server ha eliminato tutti i sintomi e all'improvviso sono riuscito a caricare nuovamente i media in WordPress. La cosa frustrante è che non ho la minima idea del perché ciò accada. Il riavvio mi ha di fatto impedito di approfondire la ricerca, e ora dovrò aspettare (settimane? mesi?) che il problema si ripresenti. Spero che questo possa aiutare altri nella loro ricerca della causa del problema. Mia moglie è contenta, però, perché ora non posso più passare le notti a cercare di risolverlo...

Ho risolto questo problema cambiando il proprietario da root
a apache
come mostrato di seguito.
chown -R apache:apache /var/www/html/mydomain
Successivamente ho modificato i permessi della directory wp-content/uploads/
impostandoli a 775
.
Dopo queste modifiche, ho provato a caricare un'immagine nel media library e l'operazione è stata completata con successo.

Ho avuto lo stesso problema. Ho provato diverse soluzioni, incluso cambiare il processore di immagini predefinito da PHP GD a ImageMagick utilizzando il plugin Force Image Magick.
Questo ha risolto l'HTTP Error / l'errore 500 ma le miniature non venivano più generate. Ho quindi disattivato nuovamente il plugin e ciò che mi ha aiutato è stata questa risposta alla domanda Sembra che il ridimensionamento delle immagini non funzioni correttamente. Il mio PHP_MEMORY_LIMIT
era impostato a 160MB
che è il massimo assoluto consentito dal mio hosting.
Per il caricamento delle immagini, questo risultava in dimensioni massime possibili dell'immagine di circa 6000 x 6000 px
quando si utilizzava PHP GD e si generavano miniature. Quindi è importante controllare non solo la dimensione del file ma anche le dimensioni dell'immagine. Caricare un'immagine con dimensioni maggiori risultava in un HTTP Error / errore 500 anche con file di piccole dimensioni.

Ho riscontrato questo problema molte volte e l'ho risolto aumentando memory_limit = 256M
in php.ini OPPURE aggiungendo define( 'WP_MEMORY_LIMIT', '256M' );
nel file wp-config.php
(*Se necessario puoi aumentare la memoria oltre 256M
) nella maggior parte dei casi.
Un'altra possibile soluzione potrebbe essere dare i permessi alla cartella \wp-content\uploads\
; comando: chmod -R 0755 wp-content\uploads\
.
Spero possa aiutare anche te.
