@vladislav997

Почему cron простой PHP скрипт воспринимает, а уже чуть более сложнее — нет?

Подскажите, почему cron простой PHP скрипт воспринимает, а уже чуть более сложнее - нет?

crontab -e:
* * * * * php /var/www/project/includes/mail/cron.php


Воспринимает и срабатывает:
$to = '...';
    $subject = 'Its test msg';
    $message = 'Cron. You login: ';
    $from = "From: noreply@site.com\r\n"
        ."Content-type: text/html; charset=utf-8\r\n"
        ."X-Mailer: PHP mail script";

    mail(
        $to,
        $subject,
        $message,
        $from
    );


Не воспринимает, но если зайти по прямой ссылке - работает:
require '../model.php';
$allUsers = R::findAll('users');

foreach ($allUsers as $user)
{
    $to = $user->login;
    $subject = 'Its test msg';
    $message = 'Cron. You login: '.$user->login.' ';
    $from = "From: noreply@site.com\r\n"
        ."Content-type: text/html; charset=utf-8\r\n"
        ."X-Mailer: PHP mail script";

    mail(
        $to,
        $subject,
        $message,
        $from
    );
}


upd. Логи в скрипте:
5f64688006f42181944200.png
  • Вопрос задан
  • 103 просмотра
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Читайте логи. Например, в базе нет пользователей. Или их слишком много и не хватает памяти. Выполните свой скрипт сами через консоль, включив вывод ошибок. Проблема в скрипте, а не в кроне.
Ответ написан
Комментировать
@vitaly_il1
DevOps Consulting
require '../model.php'

Замените на абсолютный путь. Насколько понимаю, вручную у вас работает только из текущей директории, правильно?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы