Een weloverwogen gok
Als ik een weloverwogen gok kan doen, is dat omdat de gebruiker die het php-script uitvoert (dwz de gebruiker de httpd wordt uitgevoerd als) geen toestemming heeft om naar /var/www/vhosts/mydomain.com/httpdocs/tools/
.
Hoewel de gebruiker die u gebruikt om de opdracht uit te voeren dat wel heeft.
STDERR
en STDOUT
Om te zien of er iets is afgedrukt naar STDERR
die relevant is voor het probleem, gebruik dan het onderstaande fragment!
$tubes = array(
0 => array("pipe", "r"),
// print contents on STDOUT to file
1 => array("file", "/var/www/vhosts/mydomain.com/httpdocs/tools/dbbackup-2011-12-17.sql", "w"),
2 => array("pipe", "w")
);
$p_handle = proc_open (
"/usr/bin/mysqldump --opt --host=localhost --user=\"myuser\" --password=\"mypass\" db_name",
$tubes, $pipes
);
if (is_resource ($p_handle)) {
fclose ($pipes[0]);
$stderr_data = stream_get_contents ($pipes[2]); fclose($pipes[2]);
$proc_ret = proc_close ($p_handle);
echo "--------- STDERR:\n$stderr_data\n";
echo "------------ RET: $proc_ret\n";
} else {
die ("Unable to execute external resource, aborting!");
}
Controleer de logbestanden!
Heb je de error_log
. gecontroleerd gekoppeld aan uw httpd
?