Php 如何使用cron脚本执行类函数

Php 如何使用cron脚本执行类函数,php,class,shell,cron,cron-task,Php,Class,Shell,Cron,Cron Task,我陷入了一个cron脚本,需要你的帮助 我的网站托管在1和1服务器上。我用php编写了一个使用类函数结构的cron脚本 实际上有两个脚本。这些是: 1 init.php 2.job.php 在init.php中,我编写了必要的类和函数。 在job.php脚本中,我将init.php放在顶部和下方,并编写了数据库查询和电子邮件发送的其他功能 如果我直接使用浏览器执行脚本http://www.abc.com/job.php,脚本正在正常执行。我收到电子邮件。 但是,在使用shell将此脚本设置为cr

我陷入了一个cron脚本,需要你的帮助

我的网站托管在1和1服务器上。我用php编写了一个使用类函数结构的cron脚本

实际上有两个脚本。这些是: 1 init.php 2.job.php

在init.php中,我编写了必要的类和函数。 在job.php脚本中,我将init.php放在顶部和下方,并编写了数据库查询和电子邮件发送的其他功能

如果我直接使用浏览器执行脚本http://www.abc.com/job.php,脚本正在正常执行。我收到电子邮件。 但是,在使用shell将此脚本设置为cron任务之后,我没有得到任何响应。我也不知道如何检查cron的错误日志

php文件的示例结构如下所示:

init.php:

job.php:

需要'init.php'

class Achdirect_cmi
{
    private $ID;
    private $AID;
    private $Key;

    public $site_config;

    public function __construct()
    {
        global $obj;

        $this->site_config = $obj->configuration();


        $this->ID           = $this->site_config['id']; 
        $this->AID           = $this->site_config['A_id'];
        $this->Key = $this->site_config['key'];     

    }
.
.
.
.

}
请帮我执行这个脚本

**cron作业是使用SSH访问设置的

下面提到的命令已用于设置cron脚本

/usr/bin/php/a/b/htdocs/scripts/job.php 为了检查shell命令和配置是否执行,我还添加了一个测试脚本。测试脚本已正确执行。**


在逐一分析功能之后,我发现下面的代码没有执行。变量已正确初始化,但未创建SoapClient的对象。请注意,SoapClient类不是我定义的,而是php5的核心功能


请告诉我需要什么。

您的问题很可能是需要'init.php'

cron作业从cron所在的位置运行,而不是从job.php文件的路径运行。因此,如果您想要包含该文件,那么您应该包含包含文件的完整路径

require('/a/b/htdocs/scripts/init.php');

如果这是正确的目录-似乎是一个有趣的命名结构

添加邮件到=me@example.org在crontab文件中;如果任何cron作业输出了一些内容,这将发送一封电子邮件cronjob设置如何?你有SSH访问权限吗?或者它只是基于web的控制台?如果访问URL有效,那么这意味着问题在于cron脚本,而不是php文件。你能提供脚本的详细信息吗?你想运行什么程序?根据我的经验,您可以运行curl或wget。我刚才提到了上面的示例代码结构,在我的原始脚本中,包含了mail。如果我使用浏览器执行脚本,我会收到电子邮件。但在将此脚本设置为cron脚本后,我不会收到电子邮件。我在上面也提到了这一点。cron作业是使用shell访问和命令设置的。我还使用测试脚本进行了测试,以检查cron是否使用相同的shell配置工作。亲爱的andresuribe,我不明白您想通过“您试图运行什么程序”了解什么。基本上,我的脚本将用于从其他服务器获取事务详细信息并更新我的数据库。代码是用PHP编写的,我已经按照您的建议设置了正确的目录路径。是,给定的目录路径不是有效的结构。我还制作了另一个filecheck.php,将init.php和job.php的所有函数复制到check.php文件中,并设置了另一个cron任务。文件正在使用直接访问执行,但没有使用cron任务执行。变量已正确初始化,但未创建SoapClient的对象。请注意,SoapClient类不是我定义的,而是php5的核心功能。请尝试{$client=new SoapClient$url,arraylocation=>$location;$params=arrayticket=>$auth\u array,MerchantID=>$MerchantID,TransactionID=>$trace\u number;$response=$client->getTransaction$params;}捕获异常$e{echo$e->getMessage;}请建议我需要的。
try{

$client = new SoapClient($url, array("location" => $location));

$params = array("ticket" => $auth_array, "MerchantID" => $MerchantID, "TransactionID" => $trace_number );

$response = $client->getTransaction($params);

}
catch (Exception $e){ 

echo $e->getMessage();
}
require('/a/b/htdocs/scripts/init.php');