![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 2 Dołączył: 16.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Czy jeżeli nie mam dostępu do php.ini mogę wydłużyć czas wykonania skryptu ? Próbowałem z set_time_limit(); - ale nic to nie dało. Gdzie dokładnie należy umieszczać set_time_limit() bo sprawdziłem chyba wszystkie możliwości (także z manuala) - bez skutku. pozdrawiam ![]() |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 2 Dołączył: 11.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zakładając że w php.ini masz np. 30s to zmieniając w pierwszej lini kodu na set_time_limit(60); zmieniasz max_execution_time na 1 minutę (60s). Jeżeli np. wstawisz ten set po jakiejś długiej pętli to wtedy tak jakby wyzerujesz licznik maksymalnego czasu i zezwolisz mu pracować kolejne 60s.
Ten post edytował Solimo 23.08.2009, 07:11:51 |
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
htaccess
Kod php_value max_execution_time 90 powinno przedłużyć do 90 sekund |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A wystarczy poczytać manual do set_time_limit. Jak byk tam pisze, że to ustawia czas działania skryptu od momentu w którym dochodzi do wywołania funkcji set_time_limit. Jeśli więc dasz na początku pliku to od tego miejsca będzie liczyło czas, jeśli wewnątrz pętli to przy każdym przejściu pętli będzie resetować licznik i ustawiać czas działania ponownie na X sekund. Tyle, że set_time_limit to nie zawsze dobre rozwiązanie. Przykład? Roześlij mailing do kilkuset użytkowników to zrozumiesz, że skrypt nie może chodzić w kółko przez zbyt długi czas bo mocno spowolnisz cały serwer, który będzie obciążony wywolaniem kilkuset funkcji mail wyciągajacych konkretne dane z bazy na dodatek. I nawet ustawienie tego w cron o 2-3 w nocy nic nie da. Sam ostatnio pisałem kod newslettera do serwisu gdzie liczba odsłon dziennie jest generowana w dziesiątkach tysięcy i musiałem ten problem z limitem obejść. Trzeba było podzielić wszystkich użytkowników na pakiety po iluś i potem rekurencyjnie po iluś sekundach musiał on wywoływać sam siebie, zabijając jednocześnie swoją poprzednia instancję. Inaczej jednoczesna próba wysłania maila do tylu użytkowników cały serwer mocno by zajechała i pewnie 503 by się skończyło dla odwiedzających.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 2 Dołączył: 16.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
może dokładniej opiszę problem.
Chodzi o upload plików na serwer przez FTP za pomocą formularza i PHP. Pierwotnie lokalnie przy większych plikach ukazywał się komunikat o tym że czas wykonania skryptu został przekroczony. Zmieniłem więc u siebie ustawienia w php.ini i wszystko działa w porządku. W ramach testu zainstalowałem stronę na darmowym zagranicznym serwerze (wszystkie opcje ale brak możliwości grzebania w ustawieniach) i tam skrypt wykonuje się tak jak wskazują ustawienia czyli 10s. niezależnie gdzie umieszczamset_time_limit(); - czyli nie działa. Ja potrzebuję ok 900s . Pliki są przesyłane na jeszcze inny serwer, na darmowym jest tylko formularz i kod uploadu FTP. Sniffer Stworzyłem .htacces i wpisałem kod ale niestety bez efektu. Czy to właściwa składnia czy trzeba coś dodać ? Ten post edytował Romskey 23.08.2009, 11:42:47 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 012 Pomógł: 109 Dołączył: 26.09.2003 Skąd: nexis.pl Ostrzeżenie: (0%) ![]() ![]() |
Najprawdopodobniej administrator zablokował w takim razie możliwość zmiany limitu.
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
z jakiego serwera korzystasz?
Ten post edytował sniffer32 23.08.2009, 11:49:55 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 2 Dołączył: 16.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nexis masz niestety rację .
Dzięki wszystkim ![]() P.S. Sniffer32 (jeden z amerykańskich byethostów) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 23:51 |