Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Файл php не обрабатывается через Cron
Форумы портала PHP.SU » » Вопросы новичков » Файл php не обрабатывается через Cron

Страниц (1): [1]
 

1. Heavenanvil - 25 Августа, 2016 - 08:26:36 - перейти к сообщению
Ситуация на первый взгляд простая, но бьюсь уже неделю.

Есть файл php, содержимое которое я приведу ниже. Проблема в том, что файл не выполняется, если я запускаю его через cron (с любой периодичностью), но работает, если я захожу на него вручную, через браузер.

Другие файлы с подобным функционалом, но без переменных, вроде time(), отлично работают через cron. В чем может быть причина?
Может проблема в time() и нужно как-то по другому время через cron получать? Тогда почему работает "вручную"?

Содержимое файла: (Отобразить)
2. anton-th22-info - 25 Августа, 2016 - 12:40:34 - перейти к сообщению
Добавьте в скрипт:
echo ($sql);

И выполните его вручную из консоли командой php ./имя_скрипта.php

1. Во первых проверяем отработал ли он при запуске из консоли
2. Смотрим, что за SQL запрос формируется

Далее напишите строку запуска по cron. Сервер у вас VPS или шаред?

Heavenanvil пишет:
Ситуация на первый взгляд простая, но бьюсь уже неделю.

Есть файл php, содержимое которое я приведу ниже. Проблема в том, что файл не выполняется, если я запускаю его через cron (с любой периодичностью), но работает, если я захожу на него вручную, через браузер.

Другие файлы с подобным функционалом, но без переменных, вроде time(), отлично работают через cron. В чем может быть причина?
Может проблема в time() и нужно как-то по другому время через cron получать? Тогда почему работает "вручную"?

Содержимое файла: (Отобразить)
3. Heavenanvil - 25 Августа, 2016 - 19:39:15 - перейти к сообщению
У меня нет доступа к консоли.
Я только на хостинге в панели могу указать путь к скрипту и время выполнения
4. anton-th22-info - 26 Августа, 2016 - 04:04:49 - перейти к сообщению
А вот это хреново. Я проверил скрипт который вы дали и теоретически должно отрабатывать и кроном и из консоли. У хостера на шареде что то наворочено. Напишите им в поддержку, косяк 100% на их стороне.

Heavenanvil пишет:
У меня нет доступа к консоли.
Я только на хостинге в панели могу указать путь к скрипту и время выполнения
5. Heavenanvil - 26 Августа, 2016 - 08:35:07 - перейти к сообщению
Если просто добавить в конце файла "echo ($sql);" и перейти по нему в браузере, соответственно он выдает:

CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE `forums_posts` SET `queued` = 1 WHERE `post_date` > 1472189498 AND `queued` = 0

Строка cron запроса у меня вот такая:
/5 * * * * wget -qO- 'http://мой_сайт.ru/имя_файла.php'
либо вот такая:
/5* * * * /usr/bin/php /home/логин/мой_сайт.ru/имя_файла.php
Там же подобным образом прописаны и другие файлы, и они работают без проблем.
Написал запрос в техподдержку, но не уверен, что это их вина.
6. dcc0 - 26 Августа, 2016 - 08:53:16 - перейти к сообщению
cut
7. Heavenanvil - 26 Августа, 2016 - 18:38:28 - перейти к сообщению
Кажется разобрался. Проблема была с крон запросом.
Вместо */5 я писал /5
Невнимательность.

 

Powered by ExBB FM 1.0 RC1