Yii2 脚本手动执行可以,计划任务执行不成功


用Yii2的console写了个脚本,在命令行执行都OK。

放到cron里面也按时去执行了,但就是执行的效果不对,console脚本执行结果不对。

查看之后的是由于yii脚本的php路径问题(跟目录下面的yii)

需要将一下代码的第一行,php换成你服务器上面的路径

#!/usr/bin/env php
<?php
/**
 * Yii console bootstrap file.
 *
 * @link http://www.yiiframework.com/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/common/config/bootstrap.php');
require(__DIR__ . '/console/config/bootstrap.php');

$config = yii\helpers\ArrayHelper::merge(
    require(__DIR__ . '/common/config/main.php'),
    require(__DIR__ . '/common/config/main-local.php'),
    require(__DIR__ . '/console/config/main.php'),
    require(__DIR__ . '/console/config/main-local.php')
);

$application = new yii\console\Application($config);
$exitCode = $application->run();
exit($exitCode);

 或者在服务器上为PHP执行文件添加软连接

ln -s /usr/local/php/bin/php /usr/local/bin/php

ln -s 当前文件绝对路径 要放置的绝对路径