user137
user137

Reputation: 759

Symfony/Process cant run sh script from directory

I have some script: /home/user/project/deploy.sh
I trying to run with Symfony/Process component from php handler in another directory:

$process = new Process(['./deploy.sh']);
    $process->setWorkingDirectory('/home/user/project');
    $process->run(function ($type, $buffer) {
        echo $buffer;
});

But I got an error:

The provided cwd "/home/user/project" does not exist.

This folder exists and symfony handler ran as correct user which have correct permissions to this folder. What is the correct way to run this script from another folder?

Upvotes: 1

Views: 2780

Answers (1)

BentCoder
BentCoder

Reputation: 12720

Just for debugging purposes test code below.

$process = new Process(['/home/user/project/bin/console', '--version']);
$process->run();
if (!$process->isSuccessful()) {
    throw new ProcessFailedException($process);
}
echo $process->getOutput();

If it does work then try:

  • new Process(['/home/user/project/deploy.sh']);
  • new Process(['sh /home/user/project/deploy.sh']);
  • Process::fromShellCommandline('/home/user/project/deploy.sh');

You may need to use the full path to sh since the webserver uses a different user and a PATH variable.

Upvotes: 3

Related Questions