Hallo zusammen,
ich habe ein recht diffuses Problem mit PHP (5.6 - 7.1.6) bei eingeschalteten Opcache in Verbindung mit dem IIS 8.5 und Windows Server 2012 R2.
Das Problem stellt sich wie folgt dar:
Ruft man eine PHP-Seite auf, kann es sein, dass der Aufruf der Seite 5-10x problemlos funktioniert, anschließend erscheint nur noch eine weiße Seite.
Im Logfile findet man dann Warnungen/Fehler wie
[07-Dec-2017 09:57:11 Europe/Berlin] PHP Fatal error: Cannot redeclare composerRequiree744d24db906654e872801355481e07f() (previously declared in D:\inetpub\wwwroot\itdoc\extensions\BlueSpiceFound ation\vendor\composer\autoload_real.php:63) in D:\Inetpub\wwwroot\itdoc\extensions\BlueSpiceFound ation\vendor\composer\autoload_real.php on line 63
oder
[11-Dec-2017 09:35:23 Europe/Berlin] PHP Warning: preg_match_all(): Compilation failed: two named subpatterns have the same name at offset 1312
Die redeclare Fehler lassen sich mit if(!class_exists("Database_Zend",false)) {... beheben, aber da sich die sporadisch auftretenden Fehler über so ziemlich alle Eigenentwicklungen und fertigen Module ziehen, ist das nicht praktikabel. Programmierfehler sind auszuschließen, da die Fehler meist nur sporadisch und unter Last auftreten. Mit ausgeschaltetem Opcache treten die Fehler nicht auf.
Interessanterweise sind die Fehler unter Windows Server 2008 mit eingeschalteten Opcache nicht aufgetreten. Erst mit der Server Version 2012 sind sie aufgetreten. Irgendetwas geht im Zusammenspiel mit PHP + Opcache+ Windows Server 2012 + IIS gewaltig schief. Die PHP-Version schein zweitrangig zu sein. Ich habe es mit PHP 5.6 und 7.1.6 mit gleichem Ergebnis versucht.
Kennt jemand dieses Problem und hat ggf. einen Lösungsansatz parat?
ich habe ein recht diffuses Problem mit PHP (5.6 - 7.1.6) bei eingeschalteten Opcache in Verbindung mit dem IIS 8.5 und Windows Server 2012 R2.
Das Problem stellt sich wie folgt dar:
Ruft man eine PHP-Seite auf, kann es sein, dass der Aufruf der Seite 5-10x problemlos funktioniert, anschließend erscheint nur noch eine weiße Seite.
Im Logfile findet man dann Warnungen/Fehler wie
[07-Dec-2017 09:57:11 Europe/Berlin] PHP Fatal error: Cannot redeclare composerRequiree744d24db906654e872801355481e07f() (previously declared in D:\inetpub\wwwroot\itdoc\extensions\BlueSpiceFound ation\vendor\composer\autoload_real.php:63) in D:\Inetpub\wwwroot\itdoc\extensions\BlueSpiceFound ation\vendor\composer\autoload_real.php on line 63
oder
[11-Dec-2017 09:35:23 Europe/Berlin] PHP Warning: preg_match_all(): Compilation failed: two named subpatterns have the same name at offset 1312
Die redeclare Fehler lassen sich mit if(!class_exists("Database_Zend",false)) {... beheben, aber da sich die sporadisch auftretenden Fehler über so ziemlich alle Eigenentwicklungen und fertigen Module ziehen, ist das nicht praktikabel. Programmierfehler sind auszuschließen, da die Fehler meist nur sporadisch und unter Last auftreten. Mit ausgeschaltetem Opcache treten die Fehler nicht auf.
Interessanterweise sind die Fehler unter Windows Server 2008 mit eingeschalteten Opcache nicht aufgetreten. Erst mit der Server Version 2012 sind sie aufgetreten. Irgendetwas geht im Zusammenspiel mit PHP + Opcache+ Windows Server 2012 + IIS gewaltig schief. Die PHP-Version schein zweitrangig zu sein. Ich habe es mit PHP 5.6 und 7.1.6 mit gleichem Ergebnis versucht.
Kennt jemand dieses Problem und hat ggf. einen Lösungsansatz parat?
Kommentar