我有一个非常简单的PHP脚本应该发出POST请求 . 代码如下:
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
mail('myemail@gmail.com','Script run with success','Script run with success',$headers);
当我从浏览器执行它时,它工作正常 . 但是,当我尝试将其作为cron作业执行时,Curl部分将无法工作 . 其余的脚本甚至可以作为一个cron工作,因为我收到了最后的确认电子邮件 .
这是cron条目:
*/5 * * * * /usr/bin/php /home/username/scripts/test.php
关于为什么Curl没有作为cron工作执行的任何线索?
Update: 我试图通过shell运行脚本,但Curl部分也无法运行 . 所以:
-
浏览器:curl有效
-
Shell:curl不起作用
-
Cron:卷曲不起作用
Update 2: 在通过shell运行时添加-dsafe_mode = Off使脚本运行正常 . 但是,向cron条目添加相同的标志并没有做任何事情 . 所以我仍然需要弄清楚如何使它从cron工作 .
1 回答
结果证明是一个身份验证问题 . 我通过在CURL配置中添加以下两行来解决它:
希望它可以帮助某人 .