it-swarm.com.de

Das Hochladen von Bildern auf mehrere Standorte führt zu einem HTTP-Fehler

Nur um Sie über meine Situation zu informieren.

Ausführen der Multi-Site-Version von WordPress: 3.5.2 Neuinstallation.

Keine Plugins von Drittanbietern. Alle meine Plugins wurden zum Debuggen deaktiviert.

Verwenden von WordPress MU Domain Mapping für mehrere verschiedene TLDs im Netzwerk.

Ich habe auch alle Netzwerk-URLs gefälscht, um Dateien von meinem lokalen Server anstatt vom vorhandenen Live-Netzwerk bereitzustellen.

Hosts-Datei: vi /etc/hosts/

Könnte etwas enthalten wie:

127.0.0.1 domain-a.com
127.0.0.1 www.domain-a.com
127.0.0.1 domain-b.com
127.0.0.1 www.domain-b.com

für jeden Standort im Netzwerk .... etc.

Ich habe das getan, damit ich die URLs der Website nicht ändern muss und was Sie haben.


Alles an jedem Netzwerkstandort funktioniert wie vorgesehen. Das einzige Problem ist das Hochladen von Medienanhängen. Aus irgendeinem Grund werden sie nicht ordnungsgemäß hochgeladen. Der Benutzer ist eine vollwertige Administrator-Benutzerrolle, daher kann es sich nicht um einen berechtigungsbezogenen Benutzer handeln.

Ich starte gerade Ubuntu 12.04 mit PHP 5.4.6 (FAST-CGI).

Beim Hochladen eines Bildes erhalte ich einen sehr allgemeinen Fehler von WordPress.

Error 40 Year Old … to Life.jpg HTTP error.

Error 40 Year Old … to Life.jpg HTTP error.

Nachdem ich PHP von FAST-CGI auf MOD-PHP umgestellt hatte, erhielt ich eine etwas genauere Antwort von WordPress.

Error 40 Year Old … to Life.jpg The uploaded file could not be moved to wp-content/uploads/sites/3/2013/07.

Error 40 Year Old … to Life.jpg The uploaded file could not be moved to wp-content/uploads/sites/3/2013/07.

Ich habe das Verzeichnis ausgecheckt: ./wp-content/uploads/sites/3/2013/ und es wird kein /07/ automatisch erstellt. Daher habe ich versucht, es manuell zu erstellen und erneut aus FAST-CGI und MOD-PHP hochzuladen. Es folgen immer noch die gleichen Fehler.

Ich habe mir Folgendes angesehen: ./wp-admin/network/site-settings.php?id=3 im Netzwerkadministrator-Dashboard, auf der Suche nach medienbezogenen Optionen.

Uploads Use Yearmonth Folders => true
Upload Path => '' //blank
Upload Url Path => '' //blank

Ich habe das Live-Netzwerk mit mehreren Standorten zusammen mit anderen Installationen mit mehreren Standorten überprüft und sie scheinen dieselben Einstellungen zu haben.

Dann fing ich an zu glauben, es könnte mit dem Zugriff zusammenhängen.

Wenn ich zu Network Admin -> Settings -> Network Setup gehe

Es sagt mir zu verwenden:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

Welches ist, was ich verwendet habe, abgesehen von der geringfügigen Änderung am Anfang (unmittelbar nach RewriteEngine On), die es Nicht-WWW-URLs ermöglicht, zu WWW-URLs umzuleiten.

Beispiel:

# DOMAIN-A Redirect non-www urls to www
RewriteCond %{HTTP_Host} ^domain-a.com
RewriteRule ^(.*)$ http://www.domain-a.com/$1 [R=301,L]

# DOMAIN-B Redirect non-www urls to www
RewriteCond %{HTTP_Host} ^domain-b.com
RewriteRule ^(.*)$ http://www.domain-b.com/$1 [R=301,L]

Diese Regeln stimmen jedoch nicht mit denen des WordPress-Codex überein . Ich habe die Empfehlungen gemäß dem WordPress-Codex ausprobiert, jedoch ohne Erfolg beim Hochladen von Bildern in meinem WordPress Multi-Site-Netzwerk.

Ich habe derzeit SUBDOMAIN_INSTALL auf true gesetzt, wobei die entsprechenden Umschreiberegeln gemäß dem WordPress-Codex verwendet werden. Ich habe auch versucht, SUBDOMAIN_INSTALL mit den entsprechenden Umschreiberegeln wieder auf false zu setzen. Weder haben das Problem behoben.

Die Installation des Live-Netzwerks (Version: 3.5.2) hat ebenfalls aufgehört, das Hochladen von Bildern zuzulassen.

Ich habe nicht genug Erfahrung mit Multi-Site, um zu wissen, was dieses Problem verursachen könnte. Ich werde dies weiter untersuchen, es sei denn, jemand anderes hat eine Idee, wie dieses Problem behoben werden kann. Bitte teilen Sie Ihr erworbenes Wissen mit!

Bitte beachten Sie, dass es sich zu 100% nicht um ein Speicherproblem handelt. Es wird nicht einmal eine 1kb-Bilddatei hochgeladen.

Ich habe alle möglichen Lösungen ausprobiert, wie in Wie behebe ich einen HTTP-Fehler beim Hochladen von Bildern? und immer noch kein Glück, dass das funktioniert.

Die Verwendung von Dashboard -> Media -> Add New -> browser uploader anstelle des Uploaders für mehrere Dateien führt zu einem internen Serverfehler.

Aus welchem ​​Grund auch immer, ich bin in der Lage, dieses eine zufällige bestimmte Bild immer und immer wieder ohne Probleme hochzuladen, aber jedes andere Bild, das ich hochlade, schlägt fehl ... sogar Bilder mit einer Größe von 1 KB.

media uploader success

Ich kann einige Bilder hochladen und andere nicht. Einige Bilduploads werfen interne Serverfehler auf, andere nicht. Einige könnten 1kb sein und einige könnten 5mb sein. Absolut rätselhaft.

3
Michael Ecklund

Vielen Dank an @s1lv3r und @GhostToast für ihre nützlichen Ratschläge in chat Ich habe das Problem gefunden.

Wie in meiner oben gestellten Originalfrage angegeben, habe ich festgestellt, dass ich sowohl FAST-CGI als auch MOD-PHP getestet habe und weiterhin denselben Fehler reproduziert habe.

Als im Chat angegeben habe ich sowohl auf Ubuntu 12.04 als auch auf CentOS 5.9 dedizierten Servern getestet.

Das Chatnachricht von @s1lv3r ist letztendlich derjenige, der die Idee ausgelöst hat, auch PHP-FPM zu testen ... und würdest du dir das ansehen? PHP-FPM hat das Rätsel gelöst!

Ich habe sowohl unter Ubuntu 12.04 als auch unter CentOS 5.9 mehrere Male getestet, ohne aktivierte Plugins, mit aktivierten Plugins, mit aktiviertem Standarddesign und mit aktiviertem benutzerdefinierten Design. Es hat definitiv jedes Bild hochgeladen, egal ob klein oder groß - ohne Fehler.

Also noch einmal für den Fall, dass Sie es nicht früher gefangen haben. Wenn Sie ähnliche Symptome mit Ihrem WordPress Multi-Site auftreten. Versuchen Sie, PHP-FPM auf Ihrem Server oder als im Chat angegeben von @s1lv3r zu aktivieren. Sie können versuchen, Ihr Upload-Verzeichnis auf 777 zu ändern, wenn Sie FAST-CGI verwenden.

Durch die Aktivierung von PHP-FPM wurde dieses spezielle Problem mit WordPress Multi-Site behoben, das beim Hochladen von Bildern einen HTTP-Fehler verursachte.


BoF EDIT 20.10.2016

Wenn bei WordPress Multisite HTTP-Fehler auftreten, berücksichtigen Sie die Konfiguration Ihrer Installation.

Es gibt zwei Optionen für WordPress Multisite:

  1. Unterverzeichnis installtion
  2. Subdomain-Installation

Ich verwalte ein Netzwerk von Sites, die alle TLDs in einem "Unterverzeichnis" verwenden. Sie arbeiteten für immer gut. Plötzlich scheiterten sie beim Hochladen von Dateien mit "HTTP-Fehler".

Das Problem trat nur in WordPress auf und es handelte sich um HTTP. Es gibt also etwas, worauf sich sowohl WordPress als auch Apache verlassen haben. Der einzige gemeinsame Link ist .htaccess.

Wenn Sie sich die WordPress Codex :: .htaccess und Mod Rewrite ansehen, unterscheiden sich die Umschreiberegeln je nach Art der Installation, die Sie für Multisite konfiguriert haben.

Ich habe die Umschreiberegeln für eine "Unterverzeichnis" -Installation durch die entsprechenden Umschreiberegeln für eine "Unterdomänen" -Installation ersetzt. Ich habe dann auch wp-config.php aktualisiert, um define('SUBDOMAIN_INSTALL', false); in this define('SUBDOMAIN_INSTALL', true); zu ändern.

BOOM! Problem gelöst. Kein HTTP-Fehler mehr beim Hochladen von Dateien in WordPress Multisite mit TLDs für jede Site im Netzwerk.

EoF EDIT 20.10.2016


1
Michael Ecklund