如何判断php脚本失败的原因?

如何判断php脚本失败的原因?,php,wordpress,scheduled-tasks,Php,Wordpress,Scheduled Tasks,我正在运行一个Wordpress站点,我正在将帖子从非WP站点迁移到Wordpress站点。我正在迁移的站点大约有5000篇帖子,因此我创建了一个工具,我可以使用wp\u schedule\u single\u event()从管理区域启动。事件激发并启动正常,并且在获取帖子或插入帖子时没有问题 但是,大约12分钟后,进程失败,并且没有报告任何致命错误。有人能告诉我如何调试进程,因为它是在wp cron下运行的吗?我已将以下内容添加到脚本中,但它不会报告警告或错误: set_time_limit

我正在运行一个Wordpress站点,我正在将帖子从非WP站点迁移到Wordpress站点。我正在迁移的站点大约有5000篇帖子,因此我创建了一个工具,我可以使用
wp\u schedule\u single\u event()
从管理区域启动。事件激发并启动正常,并且在获取帖子或插入帖子时没有问题

但是,大约12分钟后,进程失败,并且没有报告任何致命错误。有人能告诉我如何调试进程,因为它是在wp cron下运行的吗?我已将以下内容添加到脚本中,但它不会报告警告或错误:

set_time_limit(0); // no time limit
error_reporting(-1); // log everything
ini_set('log_errors', true);
ini_set('memory_limit', -1); // no memory limit
ignore_user_abort(true);

我知道有些人也问过类似的问题,但他们的解决方案对我没有帮助。

可能有很多问题,比如超时、数据库异常等等。您可以使用try/catch块。try块将保存代码,catch块将用于在抛出异常时处理异常

下面是一个例子:

try {
    // your code goes here
} catch (Exception $e) {
    // log/print error
    print $e->getMessage();
}
指定为catch参数的异常类是基类,因此它将捕获每个异常,这可能是您在这种情况下想要的


有关例外情况的更多信息:

过程是什么?什么是工具?上面的代码中没有我们可以用来帮助您的东西。这个过程是通过wp_schedule_single_事件调用向Wordpress注册的php脚本。我添加了上面的代码,这样您就不会指出明显的超时和内存使用,因为我已经解决了这些问题。如果不发布我所有的代码,这个问题仍然有效——有东西正在终止一个长时间运行的WP计划作业;如何进行调试?您是否考虑过您的流程可能有问题?请发布代码。谢谢Rijndael——我正在使用try/catch块,但是没有捕获任何异常。出于好奇,上面列出的任何东西都不会触发php日志中的某些内容吗?会记录致命错误,但不会总是记录异常。如果确实要记录这些错误,请输入用户错误\u log()。由于您使用的是WP,很可能WP设置了一些全局标志,以防止生成日志。快速搜索显示define('WP_DEBUG',true);并定义('SCRIPT_DEBUG',true);-我在这里找到了它们:-我不知道这些标志的范围,但是对于生产来说,向用户显示错误消息是一个非常糟糕的主意,所以要小心。查看此URI以了解更多信息:谢谢Rijndael——我会尝试一下。我添加了此URI,但日志中没有弹出任何内容。因为这是一项计划任务,所以它们实际上不会做太多的工作,因为它们只会在页面上显示错误。不过,谢谢你调查此事。也许我会创建一个新线程并发布我的代码;在try/catch块的catch部分中。这将把任何异常记录到默认日志中,通常是apache日志。