Jen abych vás naplnil mou situací.
Spuštění aplikace WordPress více stránek: 3.5.2 čistá instalace.
Zero 3rd party pluginy. Všechny moje pluginy byly pro ladění zakázány.
Použití WordPress MU mapování domén pro více různých TLD v síti.
Také jsem spoofed všechny síťové adresy URL, aby sloužil soubor z mého lokálního serveru, spíše než stávající živé sítě.
Soubor hostitelů: vi /etc/hosts/
Může obsahovat něco jako:
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
pro každou stránku v síti atd.
Udělal jsem to, takže nemusím měnit adresy URL stránek a to, co máte.
Všechno na každé síti funguje podle plánu. Jediným problémem je nahrávání příloh médií. Z jakéhokoli důvodu nejsou správně nahrávány. Uživatel je plnohodnotná role administrátora, takže nemůže mít související oprávnění.
Momentálně běží Ubuntu 12.04 s PHP 5.4.6 (FAST-CGI).
Při nahrávání obrázku dostanu od WordPressu velmi obecnou chybu.
Error 40 Year Old … to Life.jpg HTTP error.
Po přepnutí PHP z FAST-CGI
na MOD-PHP
jsem obdržel o něco konkrétnější odpověď od WordPressu.
Error 40 Year Old … to Life.jpg The uploaded file could not be moved to wp-content/uploads/sites/3/2013/07.
Zaškrtl jsem adresář: ./wp-content/uploads/sites/3/2013/
a automaticky není vytvořeno žádné /07/
. Tak jsem se pokusil ručně vytvořit a nahrát znovu z obou FAST-CGI
a MOD-PHP
, stále stejné chyby následovat.
Podíval jsem se na něco jako: ./wp-admin/network/site-settings.php?id=3
v řídicím panelu síťového administrátora, hledající možnosti týkající se médií.
Uploads Use Yearmonth Folders => true
Upload Path => '' //blank
Upload Url Path => '' //blank
Zkontroloval jsem živou multi-site síť spolu s dalšími multi-site instalacemi a zdá se, že mají stejná nastavení.
Pak jsem si začal myslet, že to může být .htaccess.
Když jdu do Network Admin -> Settings -> Network Setup
Říká mi, abych použil:
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]
Což je to, co jsem používal, kromě nepatrné modifikace na začátku (Ihned následující RewriteEngine On
) umožňující non-www adresy URL přesměrovat na www adresy URL.
Příklad:
# 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]
Nicméně, tato pravidla nejsou stejná jako WordPress Codex vysvětluje . Zkoušel jsem doporučení podle WordPress Codex, stále bez štěstí na upload obrázků v mé WordPress Multi-Site Network.
V současné době mám SUBDOMAIN_INSTALL
nastaveno na true, pomocí příslušných pravidel přepisu podle Kodexu WordPress. Také jsem se pokusil nastavit SUBDOMAIN_INSTALL
na hodnotu false, opět pomocí příslušných pravidel přepisu. Ani problém nebyl napraven.
Nainstalovaná živá síť (verze: 3.5.2) také zastavila ukládání obrázků.
Nejsem dost zkušený s multi-site vědět, co by mohlo být příčinou tohoto problému. Budu pokračovat ve vyšetřování, pokud někdo jiný nebude mít představu, jak tento problém vyřešit, sdílejte své získané znalosti!
Upozorňujeme, že 100% není problém s pamětí. Nebude ani nahrát 1kb obrazový soubor.
Snažil jsem se všechny možné řešení, jak je uvedeno v Jak opravit HTTP Chyba při nahrávání obrázků? a stále žádné štěstí, že by to fungovalo.
Použití Dashboard -> Media -> Add New -> browser uploader
namísto multi-file uploader, výsledky a Internal Server error.
Z jakéhokoliv důvodu jsem schopen neustále nahrávat tento náhodný konkrétní obrázek bez jakýchkoli problémů, ale jakýkoli jiný obrázek, který se pokouším nahrát, selže ... dokonce i obrázky velikosti 1 kb.
Jsem schopen nahrát některé obrázky a ne jiné. Některé obrázky nahrají interní chyby serveru a některé ne. Některé by mohly být 1kb a některé by mohly být 5mb. Absolutně záhadné.
Díky @s1lv3r
a @GhostToast
za jejich užitečné rady v chatu jsem problém našel.
Jak bylo řečeno v mé původní otázce zeptal jsem se výše, uvedl jsem, že jsem testoval jak FAST-CGI
, tak MOD-PHP
, oba pokračovali v replikaci stejné chyby.
Jako uvedené v chatu jsem testoval na Ubuntu 12.04 a CentOS 5.9 dedikovaných serverech.
Zpráva chatu by @s1lv3r
je nakonec ta, která vyvolala i myšlenku testování PHP-FPM
... a podívali byste se na to? PHP-FPM
vyřešilo záhadu!
Mnohokrát jsem testoval jak Ubuntu 12.04, tak CentOS 5.9 spolu s povolenými pluginy, s povolenými pluginy, s aktivovaným motivem akcií as povoleným vlastním motivem. Je to určitě nahrál každý obraz, ať už malý nebo velký - bez chyby.
Takže ještě jednou v případě, že jste to nezachytili dřív. Pokud máte podobné příznaky s WordPress multi-site. Zkuste povolit PHP-FPM
na vašem serveru, nebo jako uvedené v chatu by @s1lv3r
Pokud používáte FAST-CGI
, můžete zkusit chmodding adresáře vašich uploadů na 777.
Povolení PHP-FPM
vyřešilo tento konkrétní problém s WordPress multi-site způsobující chybu HTTP při nahrání obrázku.
BoF EDIT 10/20/2016
Pokud se vám chyby HTTP s WordPress Multisite, zvažte způsob, jakým je instalace nakonfigurována.
WordPress Multisite má dvě možnosti:
Vedl jsem síť lokalit, které využívají TLD na instalaci podadresáře. Pracovali navždy dobře. Najednou začali při nahrávání souborů s chybou HTTP chybovat.
Problém se děje pouze v aplikaci WordPress a problém je HTTP. Takže je tu něco, na čem WordPress A Apache spoléhali. Jediný společný odkaz je .htaccess
.
Pokud se podíváte na WordPress Codex :: .htaccess a Mod Rewrite Pravidla přepisu jsou ve skutečnosti velmi odlišná v závislosti na typu instalace, kterou jste nakonfigurovali pro Multisite.
Nahradil jsem pravidla pro přepsání instalace podadresáře příslušnými pravidly pro přepsání pro instalaci „subdomény“. Pak jsem také aktualizoval wp-config.php
pro změnu define('SUBDOMAIN_INSTALL', false);
na tuto define('SUBDOMAIN_INSTALL', true);
VÝLOŽNÍK! Problém je vyřešen. Žádné další HTTP Chyba při nahrávání souborů ve WordPress Multisite pomocí TLD pro každé místo v síti.
EoF EDIT 10/20/2016