ubuntu设置含有SQL插入的php定时任务失败?

ubuntu18.04上设置定时任务,执行PHP文件 ds.php。PHP文件内容:

<?php
    file_put_contents(__DIR__.'/ds.txt',date('Y-m-d H:i:s'));
    $mysqli = new mysqli('127.0.0.1','root','123456','mydb');

    if($mysqli->connect_errno){
        die('数据库连接错误('.$mysqli->connect_errno.')'.$mysqli->connect_error);
    }
    
    $sql = "insert into uinfo(uname,age,sex,phone,email,addr,create_date) values('张三',25,1,'13195437098','zhangsan@qq.com','浙江省舟山市普陀区','".date('Y-m-d H:i:s')."')";

    $mysqli->query($sql);

这段代码我直接使用 php /var/www/ds.php可以正确执行。
定时任务代码:

*/1 * * * * php /var/www/ds.php

但是只会执行file_put_contents 这一行代码,会往文件中写入内容。但是后边的执行SQL插入数据的代码就会不执行。然后日志文件显示:

clipboard.png

我安装了postfix之后,不报这个错误了,但是依然是不执行SQL插入操作。请问是我哪儿写错了吗?还是配置错了?

阅读 2k
1 个回答

我这里出现了一个错误就是,在使用 php 执行这个定时文件的过程中,会报错。使用curl就没问题了。即在安装postfix的情况下,修改定时文件的内容为
*/1 * * * * curl http://localhost/ds.php
即可

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题