Browse Source

Show proper error page even if the config.php has syntax errors

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
tags/v13.0.0beta1
Morris Jobke 6 years ago
parent
commit
68dbf94470
No account linked to committer's email address
1 changed files with 23 additions and 1 deletions
  1. 23
    1
      index.php

+ 23
- 1
index.php View File

@@ -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…
Cancel
Save