2016-11-22 1 views
0

Ich stelle ein TYPO3 6.2-Projekt mit (aktuellem Master) Surf bereit. Sowohl EXT:typo3_console (1.1.8) als auch EXT:coreapi (1.3.0) werden (in den aktuellsten kompatiblen Versionen) installiert und im TYPO3-Projekt aktiviert.Opcode Cache nach erfolgreicher Implementierung des TYPO3-Projekts mit Surf

Unfortunatelly bekomme ich einen Fehler, wenn das erfolgreich im Einsatz Projekt im Browser anfordert:

in TYPO3 Install Tool der TYPO3-Instanz funktioniert wieder
Fatal error: Cannot redeclare class tx_pdfcreator2 in /var/www/vhosts/preview/htdocs/releases/20161122165450/Web/typo3conf/ext/pdf_creator2/class.tx_pdfcreator2.php on line 37 

Nach dem Löschen des Opcode Cache.

Das Löschen des Opcode-Cache über EXT:coreapi löst das Problem nicht, obwohl die Ausgabe auf der Konsole lautet: "Der vollständige Opcode-Cache wurde gelöscht".

Dies ist der Ausgang Surf erzeugt:

Deploying preview (20161122165450) 
Stage initialize 
Webserver 001 (Project_001) TYPO3\Surf\Task\CreateDirectoriesTask 
Webserver 001 (Project_001) TYPO3\Surf\Task\Generic\CreateDirectoriesTask 
Stage package 
Webserver 001 (Project_001) TYPO3\Surf\Task\Package\GitTask 
Webserver 001 (Project_001) Foo\Deployment\Task\LocalInstallTask 
Stage transfer 
Webserver 001 (Project_001) TYPO3\Surf\Task\Transfer\RsyncTask 
Webserver 001 (Project_001) TYPO3\Surf\Task\Generic\CreateSymlinksTask 
Webserver 001 (Project_001) TYPO3\Surf\Task\TYPO3\CMS\CreatePackageStatesTask 
Stage update 
Webserver 001 (Project_001) TYPO3\Surf\Task\TYPO3\CMS\SymlinkDataTask 
Webserver 001 (Project_001) TYPO3\Surf\Task\TYPO3\CMS\CopyConfigurationTask 
Stage migrate 
Webserver 001 (Project_001) TYPO3\Surf\Task\TYPO3\CMS\SetUpExtensionsTask 
Webserver 001 (Project_001) TYPO3\Surf\Task\TYPO3\CMS\CompareDatabaseTask 
Stage finalize 
Stage test 
Stage switch 
Webserver 001 (Project_001) TYPO3\Surf\Task\SymlinkReleaseTask 
Node "Webserver 001" is live! 
Webserver 001 (Project_001) TYPO3\Surf\Task\TYPO3\CMS\FlushCachesTask 
Stage cleanup 
Webserver 001 (Project_001) TYPO3\Surf\Task\CleanupReleasesTask 
Removing releases 20161117180245 

Jede Idee, was hier passierte und wie kann ich das Problem lösen?

Antwort

2

Um Opcode Caches mit Surf löschen müssen Sie die WebOpcacheResetCreateScriptTask und WebOpcacheResetExecuteTask Aufgaben zu Ihrem Workflow hinzuzufügen.

Löschen von Opcode-Caches auf CLI mit coreapi wird nichts bewirken. Eine ausführliche Erläuterung finden Sie unter http://insight.helhum.io/post/142295674970/what-you-need-to-know-about-php-opcode-cache

+0

Vielen Dank für einen guten Link. Nur eines: die Deaktivierung von 'opcache.validate_timestamps' in TYPO3 würde bedeuten, dass ein korrekter' opcache.blacklist_filename' zur Verfügung gestellt werden muss, der 'LocalConfiguration.php',' PackageStates.php' und alles in 'typo3temp /' beinhaltet. Etwas anderes? Oder, vielleicht, kennen Sie eine Ressource, wo man über Opcache Tubning für TYPO3 lesen kann? –

+0

Es hängt stark von Ihrer Setup- und Bereitstellungsstrategie ab. Wenn Sie Code und Konfiguration nur während der Bereitstellung ändern (empfohlen), benötigen Sie keine Backlists, da sich PHP-Dateien erst nach der Bereitstellung ändern. – helhum

+0

stimme ich teilweise hier zu, bcs auch wenn Konfigurationsdateien nur während der Bereitstellung geändert werden, möchte der TYPO3-Administrator möglicherweise einige Erweiterungseinstellungen während der Lebenszeit ändern, die in LocalConfiguration.php geschrieben würden, aber aufgrund deaktivierter validate_timestamps nicht erkannt würden 'in Opcache. Gleiches gilt für Cache-Dateien - ich denke, sie werden auch während der normalen Lebenszeit der Site erstellt/aktualisiert/entfernt. –

0

Mit den Surf-Aufgaben \TYPO3\Surf\Task\Php\WebOpcacheResetCreateScriptTask und \TYPO3\Surf\Task\Php\WebOpcacheResetExecuteTask (die mit Surf kommen) anstelle von EXT:coreapi funktionierte für mich!

$workflow->addTask(WebOpcacheResetCreateScriptTask::class, 'package', $this); 
$workflow->addTask(WebOpcacheResetExecuteTask::class, 'switch', $this); 
Verwandte Themen