Как запустить консольную команду в фоновом режиме(Yii2 )?

У меня есть сокет-сервер , который запускаю вручную через консоль командой Yii push . Пытаюсь сделать , чтобы эта команда запускалась автоматически при заходе на сайт . Нашел виджет для работы с этим https://github.com/vova07/yii2-console-runner-extension , но вылетает ошибка windows cannot find C:\php/php
Переменная окружения php добавлена .
Вот добавление виджета как компонента приложения
'consoleRunner' => [
        'class' => 'vova07\console\ConsoleRunner',
        'file' => '@appRoot/_protected/yii' // or an absolute path to console file
    ]

Здесь вызываю его в контролере
Yii::$app->consoleRunner->run('push');
Вот метод run виджета
public function run($cmd)
    {
       
        $cmd = PHP_BINDIR . '/php ' . Yii::getAlias($this->file) . ' ' . $cmd;
        
        if ($this->isWindows() === true) {
           
            pclose(popen('start /b ' . $cmd, 'r'));
        } else {
            pclose(popen($cmd . ' /dev/null &', 'r'));
        }
        return true;
    }

Я понимаю , у меня почему-то PHP_BINDIR неправильно работает , потому что
$cmd = "C:\php/php /shop/_protected/yii push"
Как мне решить эту проблему ? Использую опенсервер
  • Вопрос задан
  • 861 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы