it-swarm.com.de

Was könnte dazu führen, a POST wp-admin/async-upload.php um JSON> und <HTML zurückzugeben?

Wenn Sie auf der Registerkarte "Medien" eine gültige Bilddatei hochladen, wird "HTTP-Fehler" angezeigt.

Das erneute Laden der Registerkarte "Medien" zeigt jedoch, dass das Bild hochgeladen wurde und die Größe geändert wurde.

Browser-Debug-Tools zeigen, dass der Browser beim Hochladen ein POST an wp-admin/async-upload.php sendet. Der Server antwortet mit einem 500-Fehler. Der Körper der Antwort ist jedoch verdächtig. Der erste Teil ist eine JSON-Struktur. Auf die JSON-Struktur folgt sofort ein HTML-Dokument mit dem Titel "Wordpress Error", aber einem leeren Text.

Nichts, was in das Fehlerprotokoll des Webservers (Apache) und in den WP Debug-Modus und in die erhöhte PHP Fehler-/Warn-Ausführlichkeit gelangt, war nicht hilfreich. Das Deaktivieren aller Plugins hatte keine Auswirkung auf den Fehler. Versuchte auch ohne Erfolg zwischen Gd und ImageMagick zu wechseln.

Relevante Softwareversionen:

  • Wordpress 4.2.2.
  • PHP 5.5.12-2ubuntu4.4.
  • Ubuntu Utopic

Irgendwelche Ideen, was dazu führen könnte, dass async-upload.php sowohl JSON als auch ein HTML-Fehlerdokument zurückgibt und/oder wie ich dies weiter debuggen könnte?

4
astletron

Ich hatte das gleiche Problem und fand in meiner Debug-Ausgabe keine Informationen.

Es hat sich herausgestellt, dass DOING_AJAX nicht definiert wurde (ich weiß nicht warum).

Ändern des Beginns von async-upload.php von

if ( isset( $_REQUEST['action'] ) && 'upload-attachment' === $_REQUEST['action'] ) {
    define( 'DOING_AJAX', true );
}

zu

define( 'DOING_AJAX', true );

arbeitete für mich. Vielleicht werde ich einen genaueren Blick darauf werfen und die wahre Ursache finden.

1
joernschellhaas

Dies ist wahrscheinlich nicht gerade ein Problem, das von WordPress verursacht wird, sondern von Serverkonfigurationen und/oder -einstellungen. 500 Fehler sind ziemlich allgemein und können eine Vielzahl von Ursachen haben, daher ist es schwierig, die eine Richtlinie anzugeben, die sie löst. Übrigens scheint die Rückgabe von JSON und HTML in solchen Fällen üblich zu sein, nicht sicher, wo und wie es verwechselt wird, möglicherweise hier . Ich bin mir ziemlich sicher, dass dies auf ein Speicherproblem zurückzuführen ist.

Obwohl es wahrscheinlich mit dem Speicher zu tun hat, kann ich es nicht genau wissen, da nicht genügend Informationen zur Verfügung stehen, um 100% sicher zu sein. Hier ist eine kleine, nicht unbedingt umfassende Checkliste, die Sie verarbeiten können:

  • Speicherbegrenzung - Ihr PHP Speicher ist möglicherweise kurz davor, nicht genug zu sein. Erhöhen Sie ihn. setze define( 'WP_MEMORY_LIMIT', '128MB' ); in wp-config.php
  • .htaccess - Korruption/Problem; prüfen Sie; möglicherweise sichern und neu generieren
  • PHP5 - einige Hosts hatten Probleme damit, obwohl ich es einige Zeit nicht gesehen habe; versuche AddType x-mapp-php5 .php in deinen .htaccess einzufügen
  • Dateiberechtigungen - stellen Sie sicher, dass sie korrekt sind. Wenn Sie sich nicht sicher sind, richten Sie sie mit den richtigen Berechtigungen neu ein. Codex-Artikel: Dateiberechtigungen ändern
  • Ordnerberechtigungen -
    • WP- überprüfen und gegebenenfalls korrigieren; Codex-Artikel: Dateiberechtigungen ändern
    • server - manchmal gibt es z. Probleme mit den Berechtigungen des temporären Upload-Ordners
  • Erneutes Hochladen von WP Core-Dateien - Das sollte zwar nicht erforderlich sein, wenn die letzten beiden Schritte korrekt ausgeführt wurden, aber manchmal gibt es auch andere Beschädigungen, sodass dies ein zusätzlicher Schritt sein könnte nehmen
  • Apache-Setup - Vergewissern Sie sich, dass Ihr Apache auf Ihrem Server korrekt eingerichtet ist, damit er Ihren Bedürfnissen und tatsächlichen Anforderungen entspricht. z.B. ein häufiger Schuldiger scheint mod_security zu sein
  • überprüfe WP benutzerdefinierten Code - also was du geschrieben oder über Plug-Ins installiert hast; Sie kennen die Routine, testen durch Deaktivieren und/oder Umschalten auf Standardthema und so weiter

Alle Listenelemente sind ziemlich gut bekannt und dokumentiert, sodass Sie bei Bedarf weitere Informationen finden.

Last but not least viel Erfolg!

1
Nicolai

In der wp-config.php Datei (WordPress's Root-Ordner) müssen Sie das Debug aktivieren.

Sie müssen wp_debug auf true setzen.

Change define ('WP_DEBUG', false); to define ('WP_DEBUG', true);

Speichern Sie die Datei und aktualisieren Sie den Browser (ich schlage vor, Strg + F5 zu verwenden).

Sie sehen alle Fehler.

0
Rares P.

In meinem Fall (WP v5.0) handelte es sich um ein Problem mit der Version PHP (PHP v5.4). Der Wechsel zu PHP v7.2 löste dieses Problem.

0