Response headers / Connection: close
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.
■ 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.
Ez nem befolyásolja
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.
VPS
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
Nem PHP
suhosin és társai
De
upload_tmp_dir
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.
keep-alive
phpinfo vizsgálata
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