Et kvalificeret gæt
Hvis jeg kan komme med et kvalificeret gæt, er det fordi brugeren der kører php-scriptet (dvs. brugeren httpd køres som) ikke har tilladelse til at skrive til /var/www/vhosts/mydomain.com/httpdocs/tools/
.
Selvom den bruger, du bruger til at udføre kommandoen, har.
STDERR
og STDOUT
For at se, om der er udskrevet noget til STDERR
der er relevant for problemet, brug nedenstående uddrag!
$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!");
}
Tjek logfilerne!
Har du tjekket error_log
knyttet til din httpd
?