Php Symfony/进程权限被拒绝

Php Symfony/进程权限被拒绝,php,laravel,symfony,symfony-process,symfony-4.3,Php,Laravel,Symfony,Symfony Process,Symfony 4.3,我正在使用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-

我正在使用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文档中读到以下命令应该可以帮助我:

chmod-R 777变量/日志/


但我使用的是Windows,我不知道如何获取该命令,我也不知道该命令是否正确,或者我是否应该授予其他文件的权限。

根据@zerkms的建议,尝试将临时目录更改为默认可写的Laravel存储

Route::get('/scraping',函数(){
putenv('TMPDIR='.storage_path());//setPTY(true);
$process->run();
如果(!$process->isSuccessful()){
抛出新的ProcessFailedException($process);
}
回显“”。$process->getOutput();
});

由于某种原因
sys\u get\u temp\u dir
在您的机器上返回
C:\WINDOWS`。检查操作系统设置,确保设置为可写的。还要检查
Process`constructor的第二个参数:您需要使用它而不是
cd
。无法在linux上复制,一定是操作系统的问题
> $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)); }