ugrás a tartalomhoz

Response headers / Connection: close

Jazoja · 2011. Szep. 15. (Cs), 13.45
Egy képfeltöltő plugin fejlesztése (hackolása) közben a következő hibába futottam.
A plugin rendben működik localhoston (WinXP/XAMPP) és linuxos tárhelyen is (hostgator), de a fizetős tárhelyen (nem nevezem meg) ahol ténylegesen használni kéne, ott nem műxik.
A problémát részleteztem a szolgáltatónak, aszonták beszéljek a fejlesztővel...

Szóval FireBug segítségével megfigyeltem, hogy a képfeltöltés hogyan történik a 3 szerveren és csak 1 lényegi különbséget találtam a kommunikációban.

Mikor elküldöm a képet és az adatokat a szerveren lévő php állománynak, akkor a "Request Headers" részben mindig "Connection: Keep-alive" szerepel.

A "Response headers" rész a rendben működő szervereken:
"Connection: keep-alive"
A nem rendben működő szerveren:
"Connection: close"

Az adatokat POST-al küldöm.

Update:
Most látom, hogy pár dolgot itt elfelejtettem leírni.
A képeket rendesen feltölti a szerverre egy adott mappába (ezt egy upload.php végzi), majd javascript kódot küld vissza, ami kliens oldalon update-el pár dolgot. Többek közt ez tartalmazza a kép url-jét és méretét.
A hiba annyi, hogy dob egy js exception-t, amit a kliensen egy js fgv kezel, majd beszúrja a képet 0px méretben.
 
1

Ez nem befolyásolja

janoszen · 2011. Szep. 15. (Cs), 18.20
Ez nem befolyásolja, a háttérben lesz valami.

Nyugodtan nevezd meg a tárhelyet, ahol problémád van, így esetleg ők is rá tudnak találni, illetve valakinek lehet vele tapasztalata. Nincs ebben semmi baj, néha a programok annyira szarok, hogy csoda, hogy néhány helyen egyáltalán mennek.

Ami lényeges lenne, hogy egy phpinfo() kimenetet rakj fel valahová, nézzük meg, hogy van beállítva a tárhely, ugyanis ebben lesz a kutya elásva.
2

VPS

Jazoja · 2011. Szep. 15. (Cs), 19.06
A gond valszeg ott lesz, hogy ez egy VPS egy alap telepített linux+apache rendszerrel.
A konfigurálásához nem igazán értek, de időközben sikerült megbeszélni a szolgáltatóval, hogy majd ők elvégzik a konfigurálást meg a rendszergazdai teendőket.

Én egy olyant találtam, hogy a php.ini-ben kéne engedélyezni/állítani a keep-alive-ot, de 10 perc guglizás után meguntam és inkább megvárom mit lép a szolgáltató.

A phpinfo elérhető itt:
http://www.mesterfogasok.hu/phpinfo.php
3

Nem PHP

janoszen · 2011. Szep. 15. (Cs), 21.43
A Keep-Alive nem PHP, hanem webszerver config. Ismerkedj meg a HTTP protokollal, ha már webre fejlesztesz. Ellenben 99,9%, hogy a keep-alivenek semmi köze a feltöltési parához.
4

suhosin és társai

Poetro · 2011. Szep. 15. (Cs), 21.58
Nem lehet, hogy megint ezek a biztonsági modulok kavarnak be? Mert ha jól emléxem, akkor ezek a feltöltésbe is beleszólnak.
5

De

janoszen · 2011. Szep. 15. (Cs), 22.51
Nincs beállítva az upload_tmp_dir, ami miatt a PHP a rendszer tmp könyvtárát használja, amire nem biztos, hogy van írásjogod, illetve 2 MB-nál nagyobb fájlt ne próbálj meg feltölteni. Suhosin szinten nem látok korlátozást, ami indokolná a dolgot.
7

upload_tmp_dir

Jazoja · 2011. Szep. 19. (H), 13.42
Az upload_tmp_dir beállítása sem oldotta meg a problémát.
Az egyik tesztszerveren sincs beállítva az upload_tmp_dir pedig ott megy a feltöltés.
Mondjuk, sztem az én pluginom ezt nem hazsnálja, mivel saját mappába dolgozik, és mint írtam, a szerverre feltölti a képet, a hiba a javascript kód visszaérkezésekor történik.
6

keep-alive

Jazoja · 2011. Szep. 18. (V), 18.52
A keep-alive-ot elvileg bekapcsolták a php.ini-ben, azonban tényleg nem történt semmi változás a probléma ugyanúgy fennáll.
8

phpinfo vizsgálata

Jazoja · 2011. Szep. 19. (H), 15.09
A 3 szerver phpinfo kimenetét vizsgálva, a következő különbségekre lettem figyelmes:
variables_order: EGPCS / GPCS
output bufferin: no value / 1 / 4096
request_order: no value / GP
AsynchDNS
SSPI
date.timezone Europe/Moscow
session.use_only_cookies

localhoston(WinXP/XAMPP) kiírja az alábbi blokkokat de többin (Linux) nem:
apache2handler
Apache Environment
HTTP Headers Information

A suhosin csak a problémás szerveren van. Ezen belül a következő sor gyanús:
suhosin.apc_bug_workaround Off / On

A két linuxos szerver phpinfo kimenet itt érhető el:
Problémás szerver
Működő szerver