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
24
index.php
24
index.php
|
@ -67,7 +67,29 @@ try {
|
|||
OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR);
|
||||
OC_Template::printExceptionErrorPage($ex);
|
||||
} catch (Error $ex) {
|
||||
\OC::$server->getLogger()->logException($ex, array('app' => 'index'));
|
||||
try {
|
||||
\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_Template::printExceptionErrorPage($ex);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue