【发布时间】:2021-11-10 16:26:46
【问题描述】:
我正在尝试使用 Symfony Process 组件执行 Symfony 命令,以便在收到 API 请求时异步执行。
当我这样做时,我收到 Code: 127(Command not found) 的错误消息,但是当我从控制台手动运行它时,它就像一个魅力。
这是电话:
public function asyncTriggerExportWitnesses(): bool
{
$process = new Process(['php /var/www/bin/console app:excel:witness']);
$process->setTimeout(600);
$process->setOptions(['create_new_console' => true]);
$process->start();
$this->logInfo('pid witness export: ' . $process->getPid());
if (!$process->isSuccessful()) {
$this->logError('async witness export failed: ' . $process->getErrorOutput());
throw new ProcessFailedException($process);
}
return true;
}
这是我得到的错误:
The command \"'php /var/www/bin/console app:excel:witness'\" failed.
Exit Code: 127(Command not found)
Working directory: /var/www/public
Output:================
Error Output:================
sh: exec: line 1: php /var/www/bin/console app:excel:witness: not found
我对 Process 组件的使用有什么问题?
这样调用也不行:
$process = new Process(['/usr/local/bin/php', '/var/www/bin/console', 'app:excel:witness']);
这会导致以下错误:
The command \"'/usr/local/bin/php' '/var/www/bin/console' 'app:excel:witness'\" failed.
Exit Code: ()
Working directory: /var/www/public
Output:
================
Error Output:
================
【问题讨论】:
-
但它仍然没有回答为什么它不起作用。即使我只是调用“ls”,我也会收到反馈,但它失败了。
标签: php symfony symfony5 symfony-process