mirror of
https://github.com/serghey-rodin/vesta.git
synced 2025-08-21 22:04:00 -07:00
workaround for passthru() being disabled
This commit is contained in:
parent
b09d244af7
commit
1a081dfdbe
1 changed files with 12 additions and 2 deletions
|
@ -26,14 +26,24 @@ if ($_GET['type'] == 'access') $type = 'access';
|
||||||
if ($_GET['type'] == 'error') $type = 'error';
|
if ($_GET['type'] == 'error') $type = 'error';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$cmd = implode(" ", array(
|
$cmd = implode(" ", array(
|
||||||
escapeshellarg(VESTA_CMD . "v-list-web-domain-" . $type . "log"),
|
escapeshellarg(VESTA_CMD . "v-list-web-domain-" . $type . "log"),
|
||||||
escapeshellarg($user),
|
escapeshellarg($user),
|
||||||
escapeshellarg($v_domain),
|
escapeshellarg($v_domain),
|
||||||
"5000",
|
"5000",
|
||||||
));
|
));
|
||||||
passthru($cmd, $return_var);
|
|
||||||
|
if(is_callable("passthru")){
|
||||||
|
passthru($cmd, $return_var);
|
||||||
|
} else{
|
||||||
|
// passthru is disabled, workaround it by writing the output to a file then reading the file.
|
||||||
|
// this is slower than passthru, but avoids running out of RAM...
|
||||||
|
$passthru_is_disabled_workaround_handle = tmpfile();
|
||||||
|
$passthru_is_disabled_workaround_file = stream_get_meta_data($passthru_is_disabled_workaround_handle)['uri'];
|
||||||
|
exec ($cmd . " > " . escapeshellarg($passthru_is_disabled_workaround_file), $output, $return_var);
|
||||||
|
readfile($passthru_is_disabled_workaround_file);
|
||||||
|
fclose($passthru_is_disabled_workaround_handle); // fclose(tmpfile()) automatically deletes the file, unlink is not required :)
|
||||||
|
}
|
||||||
if ($return_var != 0) {
|
if ($return_var != 0) {
|
||||||
$errstr = "Internal server error: command returned non-zero: {$return_var}: {$cmd}";
|
$errstr = "Internal server error: command returned non-zero: {$return_var}: {$cmd}";
|
||||||
echo $errstr;
|
echo $errstr;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue