首页 > 解决方案 > Cron 不会在 Centos7 的 PHP 脚本中执行 MySql

问题描述

您好,感谢您查看此内容。

Cron Jobs 今天早上没有执行,因为他们发送电子邮件而我没有收到。在 GoDaddy 运行 Centos 7。

这是cron命令...

/usr/local/bin/ea-php56 /home/rbigroup/public_html/cron/cron-test.php >/dev/null 2>&1

在浏览器中测试脚本时,工作正常。但是,当我在脚本中删除 MySql 时,Cron 工作正常。

我完全感到困惑和慌乱。任何帮助都非常感谢!谢谢你的时间!

这是php代码...

<?php require $_SERVER['DOCUMENT_ROOT']."/Connections/connect.php";  ?><?php include "cron-recipients.php"; ?>
<?php



echo $_SERVER['DOCUMENT_ROOT'];
$date = date('Y-m-d',$date_start);

echo $date."<br>";

mysqli_select_db($db);
$insertSQL = sprintf("INSERT INTO test_table (text_field,`date_field`) VALUES ('Hello','$date')");

echo $insertSQL."<br>";
$Result1 = mysqli_query($db,$insertSQL) or die(mysqli_error($db)); 




$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: noreply@rbirestaurantgroup.com' . "\r\n";

$subject = "Confirming Cron-Test Is Working on PPie Server";

$to = $RECIPIENT_SET1; //attach emails to the TO field 
//$to = 'apsubmit@secureserver.net'; 

$message = '<html>
    <head>
      <title>Cron Report</title>
    </head>
    <body><h2>Cron Test</h2>
    Your test works.
    </body>
    </html>';

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

echo "Cron Tester Complete"."<br>";       

echo $to;

 ?>

标签: phpmysqlcroncentos7

解决方案


问题解决了!

希望这对未来的人们有所帮助。事实证明,问题出在我脚本顶部的这一行。

<?php date_default_timezone_set('America/New_York'); ?>

我添加它是因为我注意到 GoDaddy 火灾的 Cron 时间比我在东海岸的时间早 3 小时。当它早上 6 点在这里时,它是凌晨 3 点在服务器上。我想同步它离开服务器的时间,所以我在顶部添加了上面的代码并上传了。

我在浏览器中测试了脚本,像所有其他命令一样发出了 cron 命令,并设置了早上的时间。收工了。早晨来了。没有来自任何 cron 的电子邮件响应,也没有 SQL 插入。

然后,我尝试通过将 cron 命令设置为每 1 分钟命中一次来使用 cron 测试脚本,但它不起作用。没有电子邮件响应或 SQL 插入。什么都试过了。不同的 cron 命令等等。点击 Stack Overflow(这里是新手 ;))Sweatin...

在与 GoDaddy 通了几个小时的电话并完成所有操作后,当我提到上面的代码时,代表意识到它可能对 php.ini 文件做了一些事情。果然它以某种方式改变了它,导致当 SQL 出于某种奇怪的原因在脚本中时无法触发 cron。他说它在文件中添加了一些奇怪的字符,导致服务器回退到服务器 INI 文件。他更正了文件,然后砰……一切都恢复了正常。

无论如何,这让我很难过。但一切都很好,吸取了教训。不要乱用cron。感谢大家的帮助。希望这对其他人有帮助!


推荐阅读