2015-04-06 5 views
1

Я получил работу хрон со следующим кодом:Крон сообщить об ошибке задания

<?php 
require "config.php"; 
$truncate = $mysqli->query("TRUNCATE rss_feed"); 

$cars = $mysqli->query("SELECT *,(SELECT title FROM companies WHERE companies.company_id = cars.company_id) AS car_company,(SELECT car_model FROM models WHERE models.model_id = cars.model_id) AS car_model FROM cars, companies WHERE cars.company_id = companies.company_id AND car_active = 'Active' AND rssPost IS NULL ORDER BY datetime DESC"); 
$result = $cars->num_rows; 

if ($result > 0) { 
    while ($row_cars = $cars->fetch_array()) { 
     $title = $row_cars['car_company'] . ' ' . $row_cars['car_model'] . ' ' . $row_cars['car_cc']; 
     $link = '/car.php?id=' . $row_cars['car_id']; 
     $description = $row_cars['car_description']; 
     $datetime = $row_cars['datetime']; 
     $row_car_id = $row_cars['car_id']; 

     $insert = $mysqli->query("INSERT INTO rss_feed (title, link, description, datetime) VALUES ('$title','$link','$description','$datetime')"); 
     $update = $mysqli->query("UPDATE cars SET rssPost='Yes' WHERE car_id = '$row_car_id'"); 

     if (!$insert) { 
      printf("ERROR: %s\n", $mysqli->error); 
     } 
    } 
    printf($result . " cars inserted"); 
} else { 
    printf("No new cars inserted"); 
} 

Я установить CPanel запустить файл PHP через каждые 3 часа, и я получил его ошибка ниже:

/public_html/system/cron_rss.php: line 1: ?php: No such file or directory 
/public_html/system/cron_rss.php: line 2: require: command not found 
/public_html/system/cron_rss.php: line 3: syntax error near unexpected token `(' 
/public_html/system/cron_rss.php: line 3: `$truncate = $mysqli->query("TRUNCATE rss_feed");' 

Если я запустил файл по URL-адресу, он работает нормально без ошибок. Мой редактор IDE подтверждает, что нет подозрительного кода. Я получил 755 CHMOD для файла.

ответ

1

От первой линии ошибки кажется, что вы не вызывая скрипт правильно с хронами.

В зависимости от вашего хоста и ваших возможностей вы можете попробовать один из них:

укажите запись Cron таким образом:

* * * * * /usr/bin/php <path_to_your_script> 

Или укажите запись Cron таким образом:

php -q <path_to_your_script> 

Или вы можете попробовать написать это в первой строчке скрипта:

#!/usr/bin/php 

Вы также можете проверить, если это такое обсуждение может помочь:

discussion

+0

Похоже 'PHP -q' пропал без вести в первую очередь. Ваши ответы прояснили это. Я проверю в 2h, что cron снова запустится. –

+0

Просто, чтобы подтвердить, что проблема 'php -q' была проблемой. Все работает хорошо. Спасибо вам всем –

0

Попробуйте имея хроны использовать работу Wget или локон, чтобы ударить по URL-адресу

Смежные вопросы