За последние 24 часа нас посетили 23605 программистов и 1543 робота. Сейчас ищут 992 программиста ...

Не работает fopen через cron (openserver)

Тема в разделе "PHP для новичков", создана пользователем SamyRed, 13 фев 2016.

  1. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Здравствуйте, подскажите в чём может быть дело, если при выполнении скрипта из браузера файл открывается и данные записываются нормально, а со встроенного в openserver планировщика - скрипт выполняется, а именно fopen - нет.
    Код (PHP):
    1. <?php include("include/config.php");
    2. $res = mysql_query("SELECT * FROM `banlist` WHERE `date_end`<'".time()."'");
    3. if(mysql_num_rows($res)){
    4. mysql_query("DELETE FROM `banlist` WHERE `date_end`<'".time()."'");
    5. while($row = mysql_fetch_assoc($res))
    6. $log = "unban.php => Игрок ".$row["name"]." был разблокирован на сервере ".$row["server"].".";
    7. } else $log = "Check banlist is null"; $res = null;
    8. if($log != '') {
    9.     $datelog = date("d-m-Y H:i", time());
    10.     $fp = fopen('/lk/log.txt', 'a');
    11.     fwrite($fp, "[".$datelog."] ".$log."\n");
    12.     fclose($fp);
    13. }?>
    Этот код должен делать запрос в БД, сверять время, удалять запись если время в БД больше чем реальное и записывать всё это в лог. Все операции кроме записывания в лог выполняются.

    Заранее спасибо.
     
  2. zahermaher

    zahermaher Новичок

    С нами с:
    27 сен 2014
    Сообщения:
    169
    Симпатии:
    14
    какую команду указываете в cron ?

    попробуйте примерно так прописать:
    Код (PHP):
    1. /usr/local/bin/wget --/dev/null http://site.ru/путь к скрипту/название скрипта.php 
     
  3. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Прописывал так:
    Код (PHP):
    1. Z:\modules\php\PHP-5.6\php.exe -f Z:\domains\....com\lk\unban.php cron
    Прописал как вы сказали:
    Код (PHP):
    1. /usr/local/bin/wget --/dev/null http://....com/lk/unban.php
    2. Системе не удается найти указанный путь.
    3.  
     
  4. zahermaher

    zahermaher Новичок

    С нами с:
    27 сен 2014
    Сообщения:
    169
    Симпатии:
    14
    в общем попробуйте через утилиту wget запускать.
    в openserver наверно путь другой до wget.
    Погуглите: wget cron openserver
     
  5. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Так я всё равно из консоли запускаю. Cron же через консоль выполняет?
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Юзера проверь и путь.
     
  7. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Вообщем причина вот в чём:
    В самом исполняемом файле, который я вызываю, путь к документу прописан так: /lk/unban.php а надо писать полный путь к директории, то есть: Z:/domains/....com/lk/unban.php. Даже когда прописал url (http://www....com/lk/unban) - консоль выдала ошибку, "failed to open stream: HTTP wrapper does not support writeable connections". Так что спасибо за помощ.
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768