I had the joy to debug a not working contao system line by line.
Why line by line? Because there was no entry in any logs, even with "log all motherfucker"-php.ini values on.
After parsing the lines, I ended up into this error message.
Fatal error: Cannot use 'String' as class name as it is reserved in ... system/modules/core/library/Contao/String.php on line 28
Well, nice to know the error but where was this triggered? So another round with joy and I ended up with an extension, of course installed "by hand" which means not possible to update by the contao updater and this lovely line.
After I've changed that line to the following line, all the gizmos where working again.
So, what should you do when you where faced with a 500 Apache Status Code after a contao installation moved from an PHP 5.x runtime environment to a PHP 7.x runtime environment?
cd <project root>
grep -ir "import('String');" *
Replace >>import('String');<< with >>import('StringUtil');<< and that is it.
But all would be better if you are not installing extensions by hand.