Cum Rezolvi Eroarea HTTP la Încărcarea Imaginilor?

26 iul. 2012, 20:05:54
Vizualizări: 207K
Voturi: 30

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.

Eroare HTTP la încărcarea media în WordPress 3.4.1

1
Comentarii

Care este logica din spatele directivei AddType x-mapp-php5 .php? Aceasta pare a fi foarte specifică serverului. Mi se pare mai probabil să distrugă complet site-ul (adică PHP-ul) (sau să nu facă nimic dacă ai noroc) decât să îmbunătățească ceva?

MrWhite MrWhite
1 ian. 2018 19:29:59
Toate răspunsurile la întrebare 6
4
27

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.

30 apr. 2014 08:19:18
Comentarii

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ă.

Elías Gómez Elías Gómez
15 ian. 2018 13:43:10

+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?

Andrew Janke Andrew Janke
27 feb. 2018 03:26:23

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

Elías Gómez Elías Gómez
27 feb. 2018 13:07:33

"Imagick"? Nu "ImageMagick"?

Peter Mortensen Peter Mortensen
8 iun. 2019 16:23:57
3
22

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.

26 iul. 2012 21:47:48
Comentarii

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.

Damien Damien
27 iul. 2012 01:35:17

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

cameronjonesweb cameronjonesweb
27 mar. 2015 08:02:27

Sau adaugă asta în fișierul de configurare al site-ului tău dacă folosești nginx: client_max_body_size 128m;

Bent Bent
28 iun. 2015 19:00:05
0

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ă...

30 mai 2014 22:19:02
0

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.

29 oct. 2013 11:24:01
0

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.

29 mar. 2018 19:15:49
0

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.

7 oct. 2019 08:00:38