Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   почему останавливается скрипт? (https://forum.antichat.xyz/showthread.php?t=145336)

Дикс 03.10.2009 09:59

почему останавливается скрипт?
 
замечал такое на некоторых хостингах
работает пхп-скрипт минуты 3-5 и вдруг ни с того ни с сего останавливается. ни ошибок, ни ограничений на время выполнения.
причем иногда это бывает вообще в самое разное время после запуска.
с чем это может быть связано? браузер может оборвать соединение?

lo0 03.10.2009 10:21

Есть такая функция ignore_user_abort
+
пару слов о скрипте, хотябы знать, с чем он работает, т.к. без дополнительной инфы очень тяжело помочь.

Zedi 03.10.2009 10:44

скорее всего останавливается ииза того что память у него кончается, попробуй количество памяти разрешенной увеличть(на некоторых хостингах выделяют больше на других меньше, поэтому он работает так)
но если это не поможет попробуй в скрипте вести типа лога чтобы увидеть когда он остановился там можно разобраться почему
P.S.ignore_user_abort по моему здесь не при чем, скрипт бы завершался сразу после закрытия браузера но не через 2-3 минуты

b1oxa 03.10.2009 12:28

Цитата:

Сообщение от Zedi
скорее всего останавливается ииза того что память у него кончается, попробуй количество памяти разрешенной увеличть(на некоторых хостингах выделяют больше на других меньше, поэтому он работает так)
но если это не поможет попробуй в скрипте вести типа лога чтобы увидеть когда он остановился там можно разобраться почему
P.S.ignore_user_abort по моему здесь не при чем, скрипт бы завершался сразу после закрытия браузера но не через 2-3 минуты

согласен.
попробуй этот же скрипт на других хостах.

Tigger 03.10.2009 13:01

1) set_time_limit(0);
2) В php.ini стоят значения на выполнения, которые нельзя изменить;
3) Вариант Zedi.

Deathdreams 03.10.2009 14:15

ini_set('memory_limit', 15);

Думаю, 15 МБ хватит.

Doom123 03.10.2009 15:10

Deathdreams а помойму надо так ini_set('memory_limit', '15M'); не?

Pashkela 03.10.2009 15:18

Цитата:

To change the memory allocation limit permanently for all PHP scripts running on the server, modify the PHP.INI configuration file of the server (location depending on your OS and installation method). Search for memory_limit after opening the file in an editor. If the memory_limit doesn’t exist, add the following line. If it’s there, modify the value of the memory_limit:

memory_limit = 12M

The 12M sets the limit to 12 megabytes (12582912 bytes). Change to the value you desirable.
Перевод:

Цитата:

Чтобы изменить предел распределения памяти надолго для всех подлинников PHP, бегущих на сервере, измените файл конфигурации PHP.INI сервера (местоположение в зависимости от Вашего OS и инсталляционного метода). Поиск memory_limit после открытия файла в редакторе. Если memory_limit не существует, добавьте следующую линию. Если это там, измените ценность memory_limit:

memory_limit = 12M

12M устанавливает предел к 12 мегабайтам (12582912 байтов). Измените на ценность Вас желательный.

Deathdreams 03.10.2009 18:55

Doom123
Да так. Забыл просто в каком формате.

BlackSun 03.10.2009 18:58

Цитата:

Сообщение от Zedi
скорее всего останавливается ииза того что память у него кончается, попробуй количество памяти разрешенной увеличть(на некоторых хостингах выделяют больше на других меньше, поэтому он работает так)
но если это не поможет попробуй в скрипте вести типа лога чтобы увидеть когда он остановился там можно разобраться почему
P.S.ignore_user_abort по моему здесь не при чем, скрипт бы завершался сразу после закрытия браузера но не через 2-3 минуты

ignore_user_abort как раз и нужен, у меня тоже скрипты останавливаются даже с нулевым тайм лимитом и при этом памяти им хватает.

2ТС: как и говорили - юзай set_time_limit + ignore_user_abort, весь вывод записывай во временный файл, а просматривай другим скриптом, так надежнее. Собственно подобный метод применяется в нормальных FTP чекерах на пыхе.


Время: 13:53