PHPExcel – 500 Internal server error

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
westrem
Člen | 398
+
0
-

Zdravim,
mam zaujimavy problem. Aplikaciu vyvijam primarne na localhoste a ked sa dostanem do uspokojivej fazy, robim deploy na server.

Dnes som sa snazil implementovat vytvaranie excel suborov pomocou PHPExcel. Na localhoste islo vsetko bez najmensieho problemu.

Po uploade na ostry server vsak nastala tradicna biela stranka, nic ziadna chybova hlaska. Firebug hlasil jedine error code 500.

Jedine co som menil bolo prave pridanie PHPExcel supportu, vyskusal som teda robotLoaderovi zakazat scan adresara libs/PHPExcel a ajhla, aplikacka funguje.

Ako nahle sa vsak pokusim povolit PHPExcel mam bielu obrazovku, to iste aj ked spravim v kode require_once na hlavny subor PHPExcel.php.

Nemam tusenie kde by mohla byt chyba, vie niekto aspon naznakom?

PS:

  • temp som samozrejme premazaval
  • catchExceptions je na FALSE
  • logovaci subor sa ani nevytvori, nie to este aby nieco obsahoval
  • verzia PHPExcelu je najnovsia, dnes stiahnuta (recommended version)
  • phpinfo

(edit: pridany link na phpinfo)

Editoval westrem (17. 10. 2010 3:32)

Majkl578
Moderator | 1364
+
0
-

Asi už je to ohrané, ale zapni si laděnku. Firebug hlásí 500 odeslanou Apachem nebo Nette?
(Můj tip je zakopnutí o memory limit.)

westrem
Člen | 398
+
0
-

Jaj, nic v zlom ale myslis si, ze pri tom co som pisal, nemam zapnutu ladenku? Pokial vyvijam mam aj na serveri zapnuty DEVELOPMENT MODE, mohol som to vsak napisat aby nevznikali zbytocne pochybnosti.

S tou 500 je ceto cele cudne, ked si vo firebugu kuknem hlavicku, je tam cista 500ka nic viac, lenze aj stranka je biela, ziaden text (ze by bolo 500 internal server error, nic proste).

Memory limit, ale pri com? S tou triedou robim len v export presenteri, lenze mne nenaskoci ani default staticky presenter, stavim sa ze chyba je v robotLoaderovi, pretoze ked mu povolim scan adresara tak to pada, inac to ide.

Neviem vsak, kde tymto smerom hladat chybu :(

Ondřej Brejla
Člen | 746
+
0
-

PHPExcel je pravděpodobně moc velký a proto při průchodu RobotLoaderem končí na 500. Zkus si knihovnu v místě použití připojit klasicky přes require. Imho to bude fungovat.

Aurielle
Člen | 1281
+
0
-

westrem napsal(a):

Ako nahle sa vsak pokusim povolit PHPExcel mam bielu obrazovku, to iste aj ked spravim v kode require_once na hlavny subor PHPExcel.php.

stekycz
Člen | 152
+
0
-

Já používám také tuto knihovnu k exportům, ale používám verzi 1.7.2. A načítám si výše zmíněný soubor pomocí requier_once. Ale přimlouvám se za ten memory limit, protože pokud člověk používá hodně stylů a generuje velké nožství dat, tak si tato knihovna vyžádná opravdu hodně paměti. Standardně je tuším na hostingu kolem 32–64 MB limit, ale možná se mýlím. V práci ji používáme také a při exportu více jak 3000 řádku s asi 15 sloupci a dost styly se nám stává to samé v plain-php. Pomoci by mohlo zapnuté cachování v knihovně. Zkus se na to podívat do dokumentace, protože si nejsem skutečně jistý, jestli je cachování zapnuté implicitně.

westrem
Člen | 398
+
0
-

No, asi som sa nevyjadril dost jasne. Problem je, ze ked je povoleny scan adresara od PHPExcel-u tak padne cela appka – nic nejede, ani obycajny homepage presenter. Tzn problem nenastava ked pouzivam kniznicu – k tomu som sa na serveri ani nedopracoval.

Pritom na localhoste som to testoval na nejakych 10 stlpcov stringovych dat o 2000 riadkoch a preslo to.

Avsak ako pozeram, memory_limit na serveri je 48M, kdezto u mna na locale mam 128M. Moze byt problem v tom, ze robotLoader proste pri scanovani PHPExcel vycerpa vsetku pamet a preto to skape? Preco sa ale potom nezobrazi ziadna hlaska?

Pomohlo by zakazanie indexovania niektorych subadresarov od PHPExcel, s ktorymi viem, ze nebude potrebovat pracovat (mPDF napr)?

Dakujem za akykolvek insight, kde by mohol byt problem.

arron
Člen | 464
+
0
-

Zkus si nastavit stejny memory_limit i na local. Jinak pokud je to timhle, tak by se to melo rozhodne objevit v nejakem php logu, takze tam bych pak hledal…

Majkl578
Moderator | 1364
+
0
-

Zkus si registrovat vlastní autoloader pro PHPExcel a RobotLoaderovi zakázat jeho indexování:

spl_autoload_register(function ($class) {
	if (blabla) {
		require LIBS_DIR . blabla;
	}
});
Lopo
Člen | 277
+
0
-

osobne som tuto kniznicu tiez kedysi pouzival ale uz som ju zrusil prave kvoli jej nenazranosti pamate – prejavovalo sa to prave padanim s kodom 500
miesto exportu do xls odvtedy exportujem do xml