Search code examples
phpwindowslaragon

PHP misses system variables when using exec


So i have a project where I send spotify track URL to server and store it. I use laragon with PHP 7.4 installed, windows 11. I use that downloader. It works via cmd command line. When I try to use it by hand it works fine, but when i send it by exec() it doesn't work. I can't get any return message neither. I have tried using exec(), system() and shell_exec() functions. The problem might be with with system variables, as these might not be visible for PHP. I have also tried turning on/off server and it didn't work. I have also tried to put putenv('PATH=' . $_SERVER['PATH']) at the beginning of file. I tried to check laragon path variables itself - I couldn't see these i have added. Any other default windows commands works as should be. Any ideas on how to fix it?

Here is my PHP code:

function createFile($url, $token){

    function execCommand($dir, $url){
        $command1 = "cd $dir";
        $command2 = "spotdl $url";
        if(!shell_exec($command1. "&& ". $command2)) return false;
        return true;
    }

    $path = "C:\Laragon/laragon/www/temp/";  
    $dir = $path.$token.'/';
    if(!mkdir($dir, 0777)) throwError("Server error");
    if(!execCommand($dir, $url)) return false;
    return true;
}

I know i'm not returning any output from console, but that is post updates. Second command is definitely beeing called, i have tested it on some other commands (like mkdir)


Solution

  • After re-installing laragon it worked. I Have checked before uninstalling path variables and i haven't seen mine that should be in.

    I couldn't modify it either so I just reinstalled it.