通过cronfile通过PHP CurlFile上传文件失败

时间:2020-01-28 21:28:42

标签: php curl cron upload

我有一个80M的zip文件,我正在使用其PHP cURL通过其REST API将其上传到“ ShareFile”。通过浏览器或使用php7 CLI在我的本地Windows计算机上运行时,脚本可以正常运行。但是,当我尝试使用/usr/local/bin/ea-php71通过客户端共享主机上的cron作业运行脚本时,文件和脚本突然停止在上传中运行

  1. 我已将自己的电子邮件地址设置为可接收所有cron输出的通知。
  2. 我有一个set_error_handler错误处理程序,它会回显所有收到的错误,并尝试将它们记录到文件中(永远不会被调用)。
  3. 我有一个register_shutdown_function,也从未接到过电话。
  4. 最后,我有一个curl_setopt CURLOPT_PROGRESSFUNCTION回调函数来查看上载发生了什么-它会将总上载字节$uploadTotal和当前上载字节$uploadCurrent写入日志和时间戳。
  5. (编辑)-忘了提及,我还启用了详细设置CURLOPT_VERBOSE并将stderr输出到日志文件-但没有任何显示。

数字4使我对这个问题有了最深刻的了解-当脚本作为cron作业运行时,上传停止:

upload progress: [UploadTotal: 87455948] [UploadCurrent: 34913772]

每次(大约67秒)。

一些最终细节...

  • 通过cron上传80MB文件时-我的错误处理程序和关闭功能从不被调用,也不从任何回显数据中读取cron电子邮件。该脚本似乎只是永久暂停(这几乎就像脚本正在等待用户输入之类的东西)。

但是:

  • 如果我在本地运行脚本或将上传文件更改为5MB的文件-一切正常,则将调用所有功能,并且我会收到一封电子邮件,通知脚本已完成运行。

在我看来,我正在通过cron超时,就我所读的所有内容而言,情况并非如此。我正在寻找一些想法,以解决可能遇到的问题。

谢谢!

0 个答案:

没有答案