Show proper error page even if the config.php has syntax errors
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This commit is contained in:
parent
576d31d48d
commit
68dbf94470
1 changed files with 23 additions and 1 deletions
22
index.php
22
index.php
|
@ -67,7 +67,29 @@ try {
|
||||||
OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR);
|
OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR);
|
||||||
OC_Template::printExceptionErrorPage($ex);
|
OC_Template::printExceptionErrorPage($ex);
|
||||||
} catch (Error $ex) {
|
} catch (Error $ex) {
|
||||||
|
try {
|
||||||
\OC::$server->getLogger()->logException($ex, array('app' => 'index'));
|
\OC::$server->getLogger()->logException($ex, array('app' => 'index'));
|
||||||
|
} catch (Error $e) {
|
||||||
|
|
||||||
|
$claimedProtocol = strtoupper($_SERVER['SERVER_PROTOCOL']);
|
||||||
|
$validProtocols = [
|
||||||
|
'HTTP/1.0',
|
||||||
|
'HTTP/1.1',
|
||||||
|
'HTTP/2',
|
||||||
|
];
|
||||||
|
$protocol = 'HTTP/1.1';
|
||||||
|
if(in_array($claimedProtocol, $validProtocols, true)) {
|
||||||
|
$protocol = $claimedProtocol;
|
||||||
|
}
|
||||||
|
header($protocol . ' 500 Internal Server Error');
|
||||||
|
header('Content-Type: text/plain; charset=utf-8');
|
||||||
|
print("Internal Server Error\n\n");
|
||||||
|
print("The server encountered an internal error and was unable to complete your request.\n");
|
||||||
|
print("Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.\n");
|
||||||
|
print("More details can be found in the webserver log.\n");
|
||||||
|
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR);
|
OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR);
|
||||||
OC_Template::printExceptionErrorPage($ex);
|
OC_Template::printExceptionErrorPage($ex);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue