Cum Rezolvi Eroarea HTTP la Încărcarea Imaginilor?
Folosesc WordPress 3.4.1 pe Ubuntu 12.04 cu Apache și PHP 5.3.X
Când mă conectez la panoul de administrare și adaug o postare nouă, apoi încerc să încarc o imagine pentru a o seta ca imagine reprezentativă, primesc o casetă roșie cu mesajul "HTTP Error".
Am citit despre persoane care sugerează să nu folosești încărcătorul flash și să folosești doar încărcătorul browser-ului, dar când încerc asta, primesc doar o Eroare 500 Internal Server Error.
Am încercat să adaug AddType x-mapp-php5 .php
în partea de sus a fișierului meu .htaccess, dar fără niciun rezultat.
Dezactivarea TUTUROR plugin-urilor nu a avut niciun efect. Am încercat o instalare proaspătă. Fără succes.
Actualizare 17/10/2016 - Dacă folosiți roluri sau permisiuni personalizate, vă rugăm să încercați să folosiți un rol/permisiuni native și să încercați din nou.
Aspecte de verificat:
- Proprietarul fișierelor
- Permisiunile fișierelor
- Configurația .htaccess
- Versiunea PHP 7+
- Versiunea curentă WordPress
Dacă operați în spatele unui proxy, asigurați-vă că aveți timeouts-urile serverului proxy configurate corect.

Am introdus următorul cod în fișierul meu functions.php
. Funcționează!
add_filter( 'wp_image_editors', 'change_graphic_lib' );
function change_graphic_lib($array) {
return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' );
}
Când acest lucru ajută, se datorează faptului că schimbă modulul PHP utilizat pentru procesarea imaginii încărcate pentru utilizarea cu WordPress.
Acest proces include mutarea imaginii în baza de date a bibliotecii media și generarea diferitelor dimensiuni de imagini ("thumbnail", "medium", "large") pe care WordPress dorește întotdeauna să le aibă disponibile pentru teme.
Acest cod determină utilizarea modulului "GD", deoarece acesta este primul în listă. În unele configurații de server, biblioteca mai nouă "Imagick" nu funcționează corect în anumite scenarii, cum ar fi dimensiuni mari de pixeli, așa că forțarea utilizării bibliotecii "GD" reprezintă o soluție.

Este mai bine să creezi un mic plugin decât să pui codul în functions.php
, deoarece dacă schimbi tema, pierzi codul. Și sunt sigur că vrei ca acest lucru să funcționeze și după o schimbare de temă.

+1 A funcționat pentru mine când am întâmpinat această problemă cu o instalație standard WP 4.9.4 pe un cont nou de HostGator. @EliasNS începător aici; care este cea mai bună metodă de a crea un mic plugin pentru asta?

@AndrewJanke, poți folosi un plugin https://es.wordpress.org/plugins/pluginception/

După depanarea făcută în chat cu @Wyck, am reușit să identificăm problema de bază.
Problema era legată de configurația serverului, care nu avea alocată suficientă memorie pentru Apache/PHP.
Dacă cineva întâmpină aceeași problemă, vă recomand să verificați dacă aveți suficiente resurse de memorie (64 MB+) alocate pentru Apache/PHP în setările de configurare a serverului. De asemenea, puteți adăuga următoarea linie în fișierul wp-config.php:
define('WP_MEMORY_LIMIT', '64MB');
Dacă soluția de mai sus nu funcționează, citiți articolul Probleme la încărcarea imaginilor/media? pentru depanare suplimentară.
Încercați să adăugați pe rând sau toate ajustările .htaccess de mai jos în fișierul .htaccess din directorul rădăcină al instalării WordPress.
Serios, încercați fiecare soluție separat pentru a ști care funcționează. Nu lipiți toate imediat în fișierul .htaccess.
Încercați această linie:
AddType x-mapp-php5 .php
mod_security ar putea cauza probleme. Dezactivați-l pentru a verifica dacă acesta este cauza. Pentru a face asta, creați un fișier .htaccess în directorul wp-admin și adăugați următoarele:
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
Dacă utilizați controlul accesului bazat pe autentificare pe serverul web (adesea cunoscut sub denumirea de htpasswd, autentificare de bază, director protejat prin parolă sau similar), WordPress nu poate gestiona acest lucru pentru Flash Uploader, Cron și XMLRPC. Fișierele conexe trebuie excluse pentru a funcționa. Rețineți că acest lucru ar putea afecta considerațiile de securitate.
# Exclude fișierele de încărcare și scripturile CRON ale WordPress din autentificare
<FilesMatch "(async-upload\.php|wp-cron\.php|xmlrpc\.php)$">
Satisfy Any
Order allow,deny
Allow from all
Deny from none
</FilesMatch>
O ultimă observație: unii au menționat că, dacă utilizați o versiune mai veche de PHP 5.3.X, puteți încerca să dezactivați PHP Safe Mode.
Dacă utilizați WordPress multi-site și primiți erori HTTP sau erori interne ale serverului legate de încărcarea imaginilor, citiți Încărcarea imaginilor în Multi-Site provoacă eroare HTTP pentru alte idei și soluții de depanare.

ok ... bine de știut ... ai citit că WP încearcă să aloce până la 256MB de RAM, așa că acest define('WP_MEMORY_LIMIT', '64MB');
ar trebui să fie mai mare dacă este posibil.

Dacă folosești WP 4.1.1, AddType x-mapp-php5 .php
nu mai este o soluție viabilă, deoarece forțează pagina să afișeze codul PHP ca text simplu

Am întâmpinat aceeași eroare încercând să încărc fișiere media în WordPress. În Chrome, apare ca o eroare http; în Firefox, eroarea arată destul de diferit. Internetul este plin de povești ale oamenilor care au petrecut zile întregi urmărind acest bug (la fel ca și eu :-( ). Soluțiile sunt multe, dar nimeni nu explică de ce, cel puțin nu într-un mod consistent cu simptomele.
Contribuția mea de doi bani: am observat că problema corelează cu un fault de segmentare semnalat în fișierul de log al apache2. Acest lucru mă neliniștește, pentru că este greu de diagnosticat.
Repornirea întregului server a eliminat toate simptomele și dintr-o dată am putut încărca din nou fișiere media în WordPress. În mod frustrant, nu am niciun indiciu despre de ce se întâmplă acest lucru. Repornirea m-a împiedicat efectiv să investighez mai departe și acum va trebui să aștept (săptămâni? luni?) ca problema să reapară. Sper că acest lucru îi va ajuta pe alții în căutarea cauzei acestei probleme. Soția mea este fericită, totuși, pentru că nu mai pot petrece nopțile urmărind această problemă...

Am rezolvat această problemă schimbând proprietarul de la root
la apache
așa cum este prezentat mai jos.
chown -R apache:apache /var/www/html/domeniulmeu
Apoi am schimbat permisiunile pentru wp-content/uploads/
în 775
.
După aceea, am încercat să încarc o imagine în mediatecă. Am reușit să încarc imaginea cu succes.

Am avut aceeași problemă. Am încercat diverse remedieri, inclusiv schimbarea procesorului implicit de imagini de la PHP GD la ImageMagick folosind Plugin-ul Force Image Magick.
Aceasta a ajutat cu eroarea HTTP / eroarea 500, dar miniaturile nu mai erau generate. Apoi am dezactivat din nou pluginul și ceea ce m-a ajutat a fost acest răspuns la întrebarea Se pare că redimensionarea imaginilor nu funcționează corect. Limita mea PHP_MEMORY_LIMIT
era setată la 160MB
, care este maximul absolut permis de furnizorul meu de hosting.
Pentru încărcarea imaginilor, aceasta a rezultat în dimensiuni maxime posibile ale imaginii de aproximativ 6000 x 6000 px
când se folosește PHP GD și se generează miniaturi. Așadar, este important să verifici nu doar dimensiunea fișierului, ci și dimensiunile imaginii. Încărcarea unei imagini cu dimensiuni mai mari a rezultat într-o eroare HTTP / eroare 500 chiar și cu dimensiuni mici ale fișierului.

Am întâlnit această problemă de multe ori și am rezolvat-o prin creșterea limitării de memorie memory_limit = 256M
în php.ini SAU adăugând define( 'WP_MEMORY_LIMIT', '256M' );
în fișierul wp-config.php
(*Dacă este necesar, poți crește memoria mai mult de 256M
) în majoritatea cazurilor.
O altă posibilă soluție ar putea fi acordarea de permisiuni pentru folderul \wp-content\uploads\
; comanda: chmod -R 0755 wp-content\uploads\
.
Sper că te va ajuta și pe tine.
