Autor | Zpráva | ||
---|---|---|---|
nethor Profil |
#1 · Zasláno: 12. 2. 2014, 09:55:52
Dobrý den,
mám relativně čerstvou instalaci Apache a PHP na Win7. (Apache/2.2.25 (Win32) PHP/5.3.6 ) Narazil jsem na zvláštní problém s fcí Copy: copy("http://localhost/.... ... /foto/zdroj_100.jpg" , "tmp.jpg"); // jpeg cca 100kB s absolutní adresou z localhost nefunguje copy("foto/zdroj_100.jpg" , "tmp.jpg"); // jpeg cca 100kB s relativní adresou funguje copy("http://localhost/.... ... /foto/zdroj_12.jpg" , "tmp.jpg"); // jpeg cca 12kB s absolutní adresou z localhost funguje copy("http://www.server.cz/.... ... /foto/zdroj_100.jpg" , "tmp.jpg"); // jpeg cca 100kB s absolutní adresou z internetu funguje Nelze tedy kopírovat větší soubor z http://localhost/... , script skončí s 'PHP Fatal error: Maximum execution time of 30 seconds... ' V error.log nic dalšího také není. Nevíte v čem je problém a jak ho řešit? |
||
Taps Profil |
nethor:
v php.ini musí nastavit větší hodnotu u max_execution_time Chyba nemusí být přímo u funkce copy ale ve zpracování skriptu jako celku |
||
nethor Profil |
#3 · Zasláno: 12. 2. 2014, 11:26:26
Taps:
To ne, chyba je jinde, kopírování 100kB souboru je operace řádově na desetiny sec. .. a v testovacím scriptu nic jiného, než copy() není. |
||
Tori Profil |
#4 · Zasláno: 12. 2. 2014, 12:23:46
Je nějaká chyba v logu Apache? Pokud selhalo čtení souboru, cykluje přesměrování a podobné chyby, tak by tam něco být mělo.
|
||
nethor Profil |
#5 · Zasláno: 12. 2. 2014, 15:12:10
Tori:
Chybu nepíše, jediné, co se týká té fotky je: 127.0.0.1 - - [12/Feb/2014:14:54:51 +0100] "GET /foto/max/introfoto_2014-02-12-14-52-17_net0.jpg HTTP/1.0" 200 775702 200 by mělo být ok. Ale našel jsem příčinu, je to konflikt s .htaccess: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*)_(.+)$ /?linkdetailtext=$1&zbozi=$2&%{QUERY_STRING} [L] Když tyhle řádky smažu, už to funguje. Problém je stím podtržítkem v názvu souboru. I když to nechápu: 1. Je tam podmínka zda nejde o soubor 2. Nepomůže ani když do adresáře foto a foto/max vložím prázný .htacces 3. Na ostrém serveru to funguje bez problému |
||
Kajman Profil |
#6 · Zasláno: 12. 2. 2014, 15:20:59
nethor:
„1. Je tam podmínka zda nejde o soubor“ Třeba neexistuje, pak se provede. Podle logu má výsledek 775kB ne 100kB. „2. Nepomůže ani když do adresáře foto a foto/max vložím prázný .htacces“ Udělejte .htaccess a dejte do něj RewriteEngine Off |
||
nethor Profil |
Kajman:
„Třeba neexistuje, pak se provede.“ Soubor zaručeně existuje a i kdyby ne , vrátí jedna z dalších podmínek 404. „Podle logu má výsledek 775kB ne 100kB“ JJ. pardon, jiný testovací soubor. Ale prakticky to nic nemění. ------------ Nicméně zpět, udělal jsem chybnou diagnózu. Zkusil jsem nyní script s copy() vložit úplně zvlášť, do jiného adtesáře, aby ho nemohl ovlivnit žádný .htaccess. Ve scriptu je pouze: copy("http://localhost/copy/origname.jpg", uniqid().".jpg"); Poprvé se script provede rychle, zcela vpořádku, ale třeba při refreshi se kousne a skončí až s " Maximum execution time...." . Kopírování souboru se přitom ale provede, nový soubor však ve win nejde smazat: " Akci nelze dokončit, protože je soubor otevřený v httpd.exe" Smazat jde až když skončí script. Napadá mě, jestli chybu nezpůsobují 2 prakticky současné požadavky na Apache (script a fotka) ... ? |
||
Časová prodleva: 11 let
|
0