PHP cURL在crontab上给出了错误,但是通过ssh它完美无缺

时间:2018-02-04 14:05:52

标签: php ubuntu cron php-curl

我已经制作了一个PHP脚本,我想在我的ubuntu 16.04机器上执行。我正在使用php 7,我使用crontab。

当我运行命令 node* create(string val) { node* new = malloc(sizeof(node)); if(new!=NULL) { new->s=malloc(strlen(val+1)*sizeof(char)); //add this line here strcpy(new->s,val); new->next=NULL; } return new; } 时,这是输出:

which php

现在我的脚本正在网站上传图片。我使用PHP curl。这是我的cURL设置

/usr/bin/php

这是我的bash脚本

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->mUrl . $url);
curl_setopt($ch, CURLOPT_USERAGENT, $this->userAgent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

这是我的cron文件

#!/bin/bash  -x
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/www/{PROGRAM}
/usr/bin/php -f /var/www/{NAME1}/{PROGRAM}_autopost.php

这是脚本发出错误的部分

* * * * * /bin/bash /var/www/{program}/cronjob.sh > /tmp/outputvancron

服务器没有响应。但是当我使用命令

手动启动bash时
public function Post($photo, $caption){
    $response = $this->PostImage($photo);
    if(empty($response[1])) {
        echo "Empty response received from the server while trying to post the image";
        exit();
    }

    $obj = @json_decode($response[1], true);
    $status = $obj['status'];
    if($status == 'ok') {
        $media_id = $obj['media_id'];
        $response = $this->PostCaption($caption, $media_id);
    }
}

它完美无缺。

crontab如何无法完成我的脚本,但通过shell我可以吗?

请帮帮我。

修改

我正在使用curl_exec($ ch);

bash cronjob.sh

0 个答案:

没有答案