I am testing MW-1.27.1 & MW-1.28.0 on a Windows server. When starting the server all seems to be working just fine. After x time and some editing of pages (I can not exactly reproduce this) the below message pops up and the wiki can not be accessed anymore (blank screen).
Fatal error: Class MediaWiki\Session\PHPSessionHandler contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (SessionHandlerInterface::close) in C:\Apache\htdocs\mediawiki-1.28.0\includes\session\PHPSessionHandler.php on line 34
Fatal error: Class MediaWiki\Session\PHPSessionHandler contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (SessionHandlerInterface::open, SessionHandlerInterface::gc) in C:\Apache\htdocs\mediawiki-1.28.0\includes\session\PHPSessionHandler.php on line 34
The other test wiki (MW-1.26) on the same server can be accessed normally when this happens. I tried using PHP 7.0.11 & 7.0.13 with the same result. I found that there where some changes in MW-1.27 regarding session handling.
Also found this in Configuration_changes_in_1.28: The load.php entry point now enforces the existing policy of not allowing access to session data, which includes the session user and the session user's language. If such access is attempted, an exception will be thrown
I must admit that I do not know what session handling actually does.
To get the wiki with 1.28.0 running again I need to stop and restart Apache.
I did set:
$wgSessionsInObjectCache = true; $wgPHPSessionHandling = true;
I made the value for $wgPHPSessionHandling up because there is no documentation on this setting yet: Manual:$wgPHPSessionHandling.
My question is where to look first, is this a PHP configuration issue? Is this a bug in PHPSessionHandler.php or could it be that an extension is causing this?
- MW-1.27.1 & MW-1.28.0
- Apache 2.4.23
- PHP 7.0.13 (apache2handler)
- MySQL 5.6.25-log