duanbishai5271 2014-05-11 12:26
浏览 32
已采纳

PHP不在CRON中运行,但在终端中运行

Ok so if I run this in the terminal:

/usr/bin/php /var/www/tasks/CreateContacts.php

The PHP script runs fine:

I have added this to crontab -e

*/2 * * * * /usr/bin/php /var/www/tasks/CreateContacts.php > /root/CronTasks/CreateContact_Output.txt

It seems to be running ok because CreateContact_Output.txt has been created yet contains nothing - and my outcome changes (in database) haven’t been done.

This is running on an Ubuntu server.

EDIT: Added contents of PHP file below:

<?php
include '../public_html/_dbconnect.php';
include '../public_html/_functions.php';
$query = "SELECT * FROM CustomerDetails;";
$results = mysqli_query($con, $query);
if(mysqli_num_rows($results) == 0){
        //Do fuck all
}else{
    while($row = mysqli_fetch_array($results)) {
      $HeartID = CreateHeartContact($row['Name']);
      echo 'Sending Customer ID:' . $row['id'] . '<br>';
      $UniqueID = $row['id'];
      $NewQuery = "UPDATE CustomerDetails SET ID = '$HeartID' WHERE ID = '$UniqueID';";
      mysqli_query($con, $NewQuery);
    }
}
?>
  • 写回答

1条回答 默认 最新

  • duanhuang1699 2014-05-12 02:35
    关注

    I guess you should change to the working directory before running PHP, so that your include statement work :

    */2 * * * * cd /var/www/tasks/ && /usr/bin/php CreateContacts.php > /root/CronTasks/CreateContact_Output.txt
    

    or you could use an absolute path as well in your code :

    include realpath(dirname(dirname(__FILE__))).'/../public_html/_dbconnect.php';
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部