Любой скрипт перестаёт работать!

Discussion in 'PHP' started by mailbrush, 20 Apr 2009.

  1. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Заметил у себя на (хорошем, платном!) хостинге такую вещь. Любой скрипт, который долго выполняется перестает работать. Конкретнее: н.п. icq бот. Он должен быть все время в онлайне, т.е. скрипт должен работать постоянно, но он выключается примерно через 10мин (set_time_limit(0)). ТПхп-брут тоже перестает работать через то же время. Если это все-таки трабла в хостере - посоветуйте хостинг, на котором скрипт будет работать столько, сколько ему надо ЛИБО скажите какой функцией действительно можно увеличить макс. время выполнение (ну т.е. как сделать, чтобы скрипт работал). Отблагодарю "зелёными".
     
    1 person likes this.
  2. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    не хватает оперативки, по умолчанию это 2 метра
    Пиши хостеру чтоб увеличил
    http://md.php.net/manual/ru/function.memory-get-usage.php
    Также в phpinfo(); пасмари скоко у тя разрешено юзать оперативки
    Название memory_limit кажись
     
  3. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Code:
    memory_limit	64M	64M
    64мб это мало? о_О
     
  4. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    Ну вот я тебе дал http://md.php.net/manual/ru/function.memory-get-usage.php выводи ней и проверяй... Если он умирает а места достаточно значит в другом проблемы
     
    2 people like this.
  5. nonamez

    nonamez Elder - Старейшина

    Joined:
    22 Jul 2007
    Messages:
    565
    Likes Received:
    265
    Reputations:
    17
    у меня посещага 1,7 в сутки, и при 96 бывает притормаживает.
     
  6. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    А может можно как-нибудь по истечении времени запускать другой скрипт или оперативку чистить, или ещё что?
     
  7. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    А может попробовать ignore_user_abort(1);
    Скрипт на хосте через браузер запускаешь?
     
    _________________________
  8. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    В цикле перебора самую последнюю функцию делаю
    PHP:
    file_put_contents("memory.txt",memory_get_usage());
    В файлике
    Kaimi, ничего не изменяется.
     
  9. GuD-ok

    GuD-ok New Member

    Joined:
    14 Nov 2008
    Messages:
    17
    Likes Received:
    2
    Reputations:
    0
    max_execution_time ???
    Timeout ???

    Если хостинг виртуальный, то такие вряд-ли найдутся(((
    На VDS такое вполне реально сделать...

    Проще скрипт переписать с учетом хостинга.
     
    #9 GuD-ok, 20 Apr 2009
    Last edited: 20 Apr 2009
  10. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    не поможет всё вместе или по отдельности - менять хостера

    ЗЫЖ Кстати, подсказка, у многих хостеров есть возомжность создавать Ваш собственный, на ваш страх и риск, php.ini, в вашей виртуальной директории. Т.е. возможность есть, но о ней мало кто знает, порой достаточно его просто саздать, правда:

    1. Придется настраивать самому и полностью с нуля
    2. Все риски и неудачи по падению и неработоспособности всех остальных php-скриптов - форумы, CMS и прочее - ложаться на вас.

    ЗЗЫЫЖЖ Лучше юзать платного хостера, имхо. Ну и мосг по таким вопросам лучше ипсти хостеру, т.к. только хостер может обладать достоверной информацией по вопросам такого рода
     
  11. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Может хостер просто не позволяет запускать висящие в памяти процессы, такие хостеры есть, изучи их правила.
    Вообще, как вариант - можно поставить время выполнения скрипта 5 минут и раз в 5 минут перезапускать его кроном.
     
  12. xssww2

    xssww2 Banned

    Joined:
    16 Apr 2009
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0
    крон навярняка тоже запрещен
    ограничение по времени может быть как в PHP так и в Apache
    в PHP можно преодалеть: вызывая 2й скрипт, который вызывает в свою очередь 1й и так далее, при этом ограничение по времени налагается только на выполняющийся в данный момент скрипт
    или можно второй вариант: использовать функцию sleep() и периодически проверять нужное тебе состояние, данная функция не влияет на общий лимит времени выполнения скрипта

    Мож еще кто-нибудь предложит свои идеи, т.к. для мну тоже это актуально)
     
  13. SQLHACK

    SQLHACK Остались только слоны

    Joined:
    27 Sep 2006
    Messages:
    437
    Likes Received:
    372
    Reputations:
    407
    Ты не прав, рекурсивный вызов других файлов или комманд на исполенение не даст эффекта, ибо когда истечет время для первого скрипта, то отвалятся все вызванные им скрипты. Проверено на PHP 5.2.6 уже давно.
     
    _________________________
  14. xssww2

    xssww2 Banned

    Joined:
    16 Apr 2009
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0
    Если производить вызов другого скрипта асинхронно то должно работать , по-крайней мере у мну так)
    про асинхронные вызовы (5 разных делал) я недавно тут создавал тему http://forum.antichat.ru/thread116486.html