我正在尝试使用 Symfony Process 从 Laravel 运行 ampl .run (或任何 ampl 代码)文件。我的代码如下:
$commandArray = array('./ampl');
$process = new Process($commandArray);
$process->setWorkingDirectory('/usr/local/bin/amplitude/amplide.linux64');
$process->run();
if (!$process->isSuccessful())
{
throw new ProcessFailedException($process);
}
dd($process->getOutput());
但我无法启动ampl。我收到如下错误:
""" 命令 "'./ampl'" 失败。\n \n 退出代码: 2(滥用 shell builtins)\n \n 工作目录: /usr/local/bin/amplitude/amplide.linux64\n \ n 输出:\n ================\n \n \n 错误输出:\n ================\n """
我怀疑这是目录中的权限错误,但是当我使用时:
$commandArray = array('ls');
它工作并输出文件和文件夹的列表。我知道ampl基本上是一个终端程序,那么我如何访问和写入命令呢?
如果有人可以解释如何从 Process 访问终端程序,我认为这将非常有帮助。先感谢您。