Wie HTTP-Fehler beim Hochladen von Bildern zu beheben?

28

Ich benutze WordPress 3.4.1 unter Ubuntu 12.04 mit Apache und PHP 5.3.X

Wenn ich mich im Dashboard anmelde und einen neuen Beitrag hinzufüge. Versuchen Sie dann, ein Bild hochzuladen, um es als ausgewähltes Bild festzulegen. Ich erhalte ein rotes Kästchen mit der Meldung "HTTP-Fehler".

Ich habe über Leute gelesen, die sagten, sie sollten den Flash-Uploader nicht und nur den Browser-Uploader verwenden, aber wenn ich das versuche, erhalte ich nur einen 500 Internal Server Error.

Ich habe versucht, AddType x-mapp-php5 .phpam Anfang meiner .htaccess-Datei etwas hinzuzufügen , ohne dass sich etwas geändert hätte.

Das Deaktivieren von ALLEN Plugins hatte keine Auswirkung. Ich habe versucht, eine neue Installation. Kein Glück.

Update 17.10.2016 - Wenn Sie benutzerdefinierte Rollen oder Funktionen verwenden, versuchen Sie es mit einer systemeigenen Rolle / Funktionen und versuchen Sie es erneut.

Zu prüfende Punkte:

  • Dateieigentum
  • Dateiberechtigungen
  • .htaccess Konfiguration
  • PHP Version 7+
  • WordPress Aktuelle Version

Wenn Sie hinter einem Proxy arbeiten, vergewissern Sie sich, dass die Timeouts Ihres Proxy-Servers korrekt konfiguriert sind.

WordPress 3.4.1 HTTP-Fehler beim Hochladen von Medien

Michael Ecklund
quelle
Was ist die Begründung dahinter AddType x-mapp-php5 .php? Das scheint sehr serverspezifisch zu sein. Ich würde denken, dass es wahrscheinlicher ist, dass Ihre Site (dh PHP) schrecklich kaputt geht (oder nichts tut, wenn Sie Glück haben), als etwas zu verbessern?
MrWhite

Antworten:

25

Ich habe den folgenden Code in meine functions.phpDatei eingefügt. Es klappt!

add_filter( 'wp_image_editors', 'change_graphic_lib' );

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

Dies liegt daran, dass das für die Verarbeitung des hochgeladenen Bildes verwendete PHP-Codemodul für die Verwendung mit WordPress geändert wird.

Diese Verarbeitung umfasst das Verschieben des Bilds in die Medienbibliotheksdatenbank und das Generieren von Bildern in verschiedenen Größen ("Miniatur", "Mittel", "Groß"), auf die WordPress immer zugreifen kann.

Es bewirkt, dass das "GD" -Modul verwendet wird, da es das erste ist. In einigen Serverkonfigurationen funktioniert die neuere "Imagick" -Bibliothek in bestimmten Bildszenarien, z. B. bei großen Pixelabmessungen, nicht gut mit anderen. Daher ist es eine Korrektur, die Verwendung der "GD" -Bibliothek zu erzwingen.

Allen
quelle
Es ist besser, ein kleines Plugin zu erstellen, als es in das einzufügen functions.php, denn wenn Sie das Thema ändern, verlieren Sie den Code. Und ich bin sicher, Sie möchten, dass dies nach einem Themenwechsel funktioniert 😊
EliasNS
1
+1 Dies funktionierte für mich, als ich dieses Problem mit einem sofort einsatzbereiten WP 4.9.4-Setup auf einem neuen HostGator-Konto antraf. @ EliasNS noob hier; Was ist der richtige Weg, um ein kleines Plugin dafür zu erstellen?
Andrew Janke
@ AndrewJanke, du könntest ein Plugin verwenden 😅 es.wordpress.org/plugins/pluginception
EliasNS
"Imagick" ? Nicht "ImageMagick" ?
Peter Mortensen
21

Nach der Fehlerbehebung mit @Wyck im Chat haben wir uns auf das zugrunde liegende Problem beschränkt.

Das Problem hing mit meiner Serverkonfiguration zusammen , bei der Apache / PHP nicht genügend Speicher zugewiesen wurde.

Wenn jemand das gleiche Problem hat, stellen Sie bitte sicher, dass in Ihren Serverkonfigurationseinstellungen genügend (64 MB +) Serverspeicher für Apache / PHP verfügbar ist. Sie können dies auch zu Ihrer wp-config.php-Datei hinzufügen:

define('WP_MEMORY_LIMIT', '64MB');

Wenn die obige Lösung nicht funktioniert, lesen Sie den Artikel Probleme mit Image / Media Uploader? zur weiteren Fehlerbehebung.

Versuchen Sie, der .htaccess-Datei im Stammverzeichnis Ihrer WordPress-Installation nacheinander eine oder alle der folgenden .htaccess-Änderungen hinzuzufügen.

Im Ernst, probieren Sie eine der folgenden Lösungen aus, damit Sie wissen, welche den Trick ausgeführt hat. Fügen Sie sie nicht alle sofort in Ihre .htaccess-Datei ein.

Versuchen Sie diese Zeile:

AddType x-mapp-php5 .php

mod_security kann Probleme verursachen. Deaktivieren Sie es, um festzustellen, ob dies das Problem ist. Erstellen Sie dazu eine .htaccess-Datei in Ihrem wp-admin-Verzeichnis. Fügen Sie dies hinzu:

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

Wenn Sie die Zugriffskontrolle basierend auf der Authentifizierung auf Ihrem Webserver verwenden (häufig als htpasswd, Basisauthentifizierung, kennwortgeschütztes Verzeichnis oder ähnliches bezeichnet), kann WordPress diese nicht für Flash Uploader, Cron und XMLRPC verarbeiten. Verwandte Dateien müssen ausgeschlossen werden, um zu funktionieren. Beachten Sie, dass dies Ihre Sicherheitsüberlegungen verletzen kann.

# 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>

Ein letzter Hinweis: Einige haben gesagt, dass Sie versuchen können, den abgesicherten PHP-Modus zu deaktivieren, wenn Sie eine niedrigere Version von PHP 5.3.X verwenden.

Wenn Sie WordPress auf mehreren Sites ausführen und HTTP-Fehler oder interne Serverfehler im Zusammenhang mit dem Hochladen von Bildern erhalten, lesen Sie bitte Hochladen von Bildern auf mehrere Sites (Ursachen Fehler auf HTTP-Fehler ), um weitere mögliche Vorschläge und Lösungen zur Fehlerbehebung zu erhalten.

Michael Ecklund
quelle
ok ... gut zu wissen ... hast du gelesen, dass WP versucht, bis zu 256 MB RAM zuzuweisen, dies define('WP_MEMORY_LIMIT', '64MB');sollte also nach Möglichkeit größer sein.
Damien
1
Wenn Sie WP 4.1.1 verwenden, AddType x-mapp-php5 .phpist dies keine praktikable Lösung mehr, da die Seite
gezwungen wird,
1
Oder fügen Sie dies zu Ihrer Site-Konfigurationsdatei hinzu, wenn Sie nginx verwenden:client_max_body_size 128m;
Flatron
4

Beim Versuch, Medien in WordPress hochzuladen, trat derselbe Fehler auf. In Chrome wird es als http: error angezeigt. in Firefox sieht der Fehler ganz anders aus. Das Web ist voller Geschichten von Menschen, die Tage damit verbracht haben, den Bug zu jagen (so habe ich :-(). Lösungen gibt es zuhauf, aber niemand erklärt, warum, zumindest nicht in einer Weise, die mit den Symptomen vereinbar ist.

Mein tuppenwerter Beitrag: Ich habe festgestellt, dass das Problem mit einem Segmentierungsfehler zusammenhängt, der in der Protokolldatei von apache2 angezeigt wird. Das stört mich, weil es schwer zu diagnostizieren ist.

Durch einen Neustart des gesamten Servers wurden alle Symptome beseitigt, und plötzlich konnte ich Medien in Wordpress erneut hochladen. Frustrierend ist, dass ich keine Ahnung habe, warum dies geschieht. Der Neustart hat mich effektiv von weiteren Nachforschungen abgehalten, und ich muss jetzt warten (Wochen? Monate?), Bis das Problem erneut auftritt. Ich hoffe, dies wird anderen bei ihrer Suche nach der Ursache dieses Problems helfen. Meine Frau ist jedoch glücklich, weil ich nicht länger Nächte damit verbringen kann, diesem Problem nachzujagen ...

Stef Joosten
quelle
1

Ich habe dieses Problem behoben, indem ich meinen Besitzer von rootnach apacheunten geändert habe.

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

Und dann habe ich die Erlaubnis des wp-content/uploads/zu ändern 775.

Danach habe ich versucht, ein Bild in die Medien hochzuladen. Ich konnte das Bild erfolgreich hochladen.

imran
quelle
0

Ich hatte das gleiche Problem. Ich habe verschiedene Korrekturen versucht, darunter das Ändern des Standard-Bildprozessors von PHP GD auf ImageMagick mithilfe des Force Image Magick-Plugins

Dies hat beim HTTP-Fehler / 500-Fehler geholfen, aber es wurden keine Thumbnails mehr generiert. Ich habe dann das Plugin wieder deaktiviert und was mir dann geholfen hat, war diese Antwort auf die Frage. Sieht so aus, als würde die Größenänderung von Bildern nicht gut funktionieren . My PHP_MEMORY_LIMITwurde so eingestellt, 160MBdass es das absolute Maximum ist, das mein Hoster zulässt.

Beim Hochladen von Bildern führte dies zu maximal möglichen Abmessungen des Bildes von ungefähr, 6000 x 6000 pxwenn PHP GD verwendet wurde und Thumbnails generiert wurden. Daher ist es wichtig, nicht nur die Dateigröße, sondern auch die Abmessungen des Bildes zu überprüfen. Das Hochladen eines Bildes mit höheren Abmessungen führte selbst bei kleinen Dateigrößen zu einem HTTP-Fehler / Fehler 500.

intagli
quelle
0

Ich viele Male solche Ausgabe erlebt haben und gelöst durch eine Erhöhung memory_limit = 256Min der php.ini oder das Hinzufügen von define( 'WP_MEMORY_LIMIT', '256M' );in - wp-config.phpDatei (* Falls erforderlich Sie Speicher mehr als erhöhen kann 256M) die meiste Zeit.

Eine andere mögliche Lösung könnte darin bestehen, dem \wp-content\uploads\Ordner die Berechtigung zu erteilen. Befehl: chmod -R 0755 wp-content\uploads\.

Hoffe es kann dir auch helfen.

rony2k6
quelle