Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gearman workers无法访问PHP框架_Php_Postgresql_Yii_Gearman - Fatal编程技术网

Gearman workers无法访问PHP框架

Gearman workers无法访问PHP框架,php,postgresql,yii,gearman,Php,Postgresql,Yii,Gearman,嗨,我已经安装并配置了Gearman。到目前为止,尝试这些例子是很好的,当我开始在我的项目中实际使用它时,我的问题就开始了 我在我的项目中使用的是Yii-php框架,我在主项目目录中包含了我所有的worker文件 ProjectName/workers/worker.php My workers的功能是在给定参数的数据库中插入值。所以我必须包含sql查询,因为我使用的是Yii,所以我使用: Yii::app()->db->createCommand($sql)->execut

嗨,我已经安装并配置了Gearman。到目前为止,尝试这些例子是很好的,当我开始在我的项目中实际使用它时,我的问题就开始了

我在我的项目中使用的是Yii-php框架,我在主项目目录中包含了我所有的worker文件

ProjectName/workers/worker.php
My workers的功能是在给定参数的数据库中插入值。所以我必须包含sql查询,因为我使用的是Yii,所以我使用:

Yii::app()->db->createCommand($sql)->execute();
我遇到了一个错误:

PHP Fatal error:  Class 'Yii' not found in /home/user/lappstack-5.4.34-0/apache2/htdocs/ProjectName/workers/worker.php on line 52
PHP Fatal error:  Uncaught exception 'PDOException' with message 'could not find driver' in /home/user/lappstack-5.4.34-0/apache2/htdocs/ProjectName/workers/worker.php:54
似乎我的CLI PHP找不到Yii,所以我尝试使用PDO进行老式操作:

$db = new PDO('pgsql:db...........'usr','pas');
$stmt = $dbh->prepare($sql);
$stmt->execute();
我得到了一个错误:

PHP Fatal error:  Class 'Yii' not found in /home/user/lappstack-5.4.34-0/apache2/htdocs/ProjectName/workers/worker.php on line 52
PHP Fatal error:  Uncaught exception 'PDOException' with message 'could not find driver' in /home/user/lappstack-5.4.34-0/apache2/htdocs/ProjectName/workers/worker.php:54

因此,与我的web应用程序不同,worker基本上没有一个服务器环境可以访问Yii函数等等。如何解决这个问题?

如何培养员工?为了使用Yii,您的工人需要使用以下命令进行实例化: /home/sites/projectName/php yiic命令名

请阅读有关创建命令的文档,该文档编写得很好:

如果您要使用yii,您必须正确使用它,您使用的是命令行还是web界面?是的,我使用的是命令行,而不是web控制器/操作我该如何确切地做到这一点?我尝试使用这些:/home/sites/projectName/php yiic worker.php:和/home/sites/projectName/yiic worker.php和/home/sites/projectName yiic shell php worker.php,它只是在命令行上显示了帮助详细信息。这是一个很大的帮助:我不知道我必须使用yiic而不是直接使用“php”命令。我开始研究它,并通过使用使用YIC的CConsoleCommand创建一个yii控制台应用程序来解决它。使我的控制台应用程序在yii环境中运行: