我正在使用 Symfony/Process 在 Laravel 的 web.php 路径中从 Laravel Dusk 运行测试。这是我正在使用的代码:
Route::get('/scraping', function () {
$process = new Process('cd pathtoartisan && C:\xampp\php\php.exe artisan dusk -v');
$process->setPTY(true);
$process->run();
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
echo '<pre>'.$process->getOutput();
});
我认为它会正常工作,但我收到了这个错误:
Symfony\Component\Process\Exception\RuntimeException:无法打开临时文件来写入进程输出:fopen(C:\WINDOWS\sf_proc_00.out.lock):打开流失败:权限被拒绝
在 C:...\laravel-master\vendor\symfony\process\Pipes\WindowsPipes.php:60
> $file = sprintf('%s\\sf_proc_%02X.%s',$tmpDir, $i, $name);
> if (!$h = fopen($file.'.lock', 'w')) {
> restore_error_handler();
> throw new RuntimeException(sprintf('A temporary file could not be opened to write the process output: %s', $lastError)); }
我在 Symfony 文档中读到以下命令应该对我有帮助:
chmod -R 777 变量/日志/
但是我使用的是 Windows,我不知道如何获得它,也不知道该命令是否正确,或者我是否应该授予其他文件的权限。