У меня есть сокет-сервер , который запускаю вручную через консоль командой
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"
Как мне решить эту проблему ? Использую опенсервер