0

The problem I am struggling for a few hours is: I want to execute a script in background with PHP, so I'm using shell_exec() function, and I can't get it work. But is not a problem related with shell_exec function because I have tested the shell_exec('sleep 5') command and it worked. The command Im trying to execute is:

shell_exec('nohup /kunden/usr/local/bin/php5.4 /kunden/homepages/XX/dXXXXXXXX/htdocs/myproject/background_script.php > /dev/null 2>&1 & echo $!');

The script inserts one row in a MySQL database. I have tested the exact same command inside the quotes via SSH with putty and it worked perfectly, but i can't get it work from the web browser.

I don't think is important, but is a shared server with 1and1.

2
  • You say "i can't get it work inside my php code". What happens or doesn't happen? Do you get any error messages? Maybe you could remove the redirection in the command, so you're not throwing away any error messages that the program is emitting. Commented Aug 10, 2014 at 15:04
  • I know is not working because is not inserting the row in the database. If I do echo shell_exec('...') from the php in the browser returns the pid number. In last execution 13885. Is there something I am missing? Commented Aug 10, 2014 at 15:21

2 Answers 2

1

According to the original poster:

Finally I used the library phpseclib and now I have it working.

$ssh = new Net_SSH2('myhosting');
if (!$ssh->login('user', 'pass')) {
    exit('Login Failed');
}

$this->pid = $ssh->exec(sprintf(
    '%s > %s 2>&1 & echo $!',
    $this->command,
    $outputFile
));
Sign up to request clarification or add additional context in comments.

Comments

0

it works for me:

$connection = ssh2_connect('host', 22);
ssh2_exec($connection, "screen -dmS 'php-script' /kunden/usr/local/bin/php5.4 /kunden/homepages/XX/dXXXXXXXX/htdocs/myproject/background_script.php 2>&1");

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.