Wie verwende ich APCu mit TYPO3?
Damit TYPO3 optimal mit Performance Plus zusammenarbeitet, ist noch eine kleine Anpassung an der Konfiguration notwendig. Am einfachsten geht dies über das Kundencenter.
Wähle hier in der Projektverwaltung das gewünschte Projekt aus und gehe in die "Performance Plus"-Oberfläche unterhalb von Tools. Das Kundencenter sucht nun automatisch nach TYPO3 Installationen in deinem Projekt und listet diese unterhalb der aktuellen Auslastung des OPCaches und APCu auf. Setze hier einfach den Haken bei APCu Caching aktivieren und klicke auf Konfigurieren.
Die ausgewählte TYPO3 Installation nutzt den APCu schon wenige Sekunden später.
Alternativ kannst du die Aktivierung des APCu auch manuell vornehmen. Lege dafür zunächst im typo3conf-Verzeichnis der gewünschten Installation eine Datei mit dem Namen „MwCachingConfiguration.php“ und dem folgenden Inhalt an.
<?php
if (!function_exists('mw_setCacheBackend')) {
function mw_setCacheBackend($backendClassName, $cacheName, $lifetime = NULL)
{
$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations'][$cacheName]['backend'] = $backendClassName;
if (isset($lifetime))
{
$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations'][$cacheName]['options'] = array("defaultLifetime" => $lifetime);
} else {
$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations'][$cacheName]['options'] = array();
}
}
}
$mw_apcExtensionLoaded = extension_loaded('apc');
$mw_apcuExtensionLoaded = extension_loaded('apcu');
$mw_apcAvailable = $mw_apcExtensionLoaded || $mw_apcuExtensionLoaded;
$mw_apcEnabled = ini_get('apc.enabled') == TRUE;
if (method_exists('TYPO3\CMS\Core\Information\Typo3Version','getBranch') && method_exists('TYPO3\CMS\Core\Core\Environment','getContext')) {
$get_version = new TYPO3\CMS\Core\Information\Typo3Version();
$version = $get_version->getBranch();
$context = TYPO3\CMS\Core\Core\Environment::getContext();
} else {
$version = TYPO3_version;
$context = TYPO3\CMS\Core\Utility\GeneralUtility::getApplicationContext();
}
if (PHP_SAPI !== 'cli' && $context !== 'Development' && $mw_apcAvailable && $mw_apcEnabled) {
$mw_backendClassName = $mw_apcExtensionLoaded ? 'TYPO3\\CMS\\Core\\Cache\\Backend\\ApcBackend'
: 'TYPO3\\CMS\\Core\\Cache\\Backend\\ApcuBackend';
} else {
$mw_backendClassName = 'TYPO3\\CMS\\Core\\Cache\\Backend\\FileBackend';
}
if (substr($version,0,2) === "10" || substr($version,0,2) === "11")
{
mw_setCacheBackend($mw_backendClassName, 'hash');
mw_setCacheBackend($mw_backendClassName, 'pages');
mw_setCacheBackend($mw_backendClassName, 'pagesection', 2592000);
mw_setCacheBackend($mw_backendClassName, 'rootline',2592000);
mw_setCacheBackend($mw_backendClassName, 'imagesizes', 0);
} elseif ($version[0] === "9") {
mw_setCacheBackend($mw_backendClassName, 'cache_hash');
mw_setCacheBackend($mw_backendClassName, 'cache_pages');
mw_setCacheBackend($mw_backendClassName, 'cache_pagesection', 2592000);
mw_setCacheBackend($mw_backendClassName, 'cache_rootline',2592000);
mw_setCacheBackend($mw_backendClassName, 'cache_imagesizes', 0);
mw_setCacheBackend($mw_backendClassName, 'extbase_reflection', 0);
mw_setCacheBackend($mw_backendClassName, 'extbase_datamapfactory_datamap', 0);
} elseif ($version[0] === "8" || $version[0] === "6") {
mw_setCacheBackend($mw_backendClassName, 'cache_hash');
mw_setCacheBackend($mw_backendClassName, 'cache_pages');
mw_setCacheBackend($mw_backendClassName, 'extbase_datamapfactory_datamap');
mw_setCacheBackend($mw_backendClassName, 'cache_pagesection', 2592000);
mw_setCacheBackend($mw_backendClassName, 'cache_rootline',2592000);
mw_setCacheBackend($mw_backendClassName, 'cache_imagesizes', 0);
mw_setCacheBackend($mw_backendClassName, 'extbase_object', 0);
mw_setCacheBackend($mw_backendClassName, 'extbase_reflection', 0);
} elseif ($version[0] === "7") {
mw_setCacheBackend($mw_backendClassName, 'cache_hash');
mw_setCacheBackend($mw_backendClassName, 'cache_pages');
mw_setCacheBackend($mw_backendClassName, 'extbase_datamapfactory_datamap');
mw_setCacheBackend($mw_backendClassName, 'extbase_typo3dbbackend_queries');
mw_setCacheBackend($mw_backendClassName, 'cache_pagesection', 2592000);
mw_setCacheBackend($mw_backendClassName, 'cache_rootline',2592000);
mw_setCacheBackend($mw_backendClassName, 'cache_imagesizes', 0);
mw_setCacheBackend($mw_backendClassName, 'extbase_object', 0);
mw_setCacheBackend($mw_backendClassName, 'extbase_reflection', 0);
} else {
mw_setCacheBackend($mw_backendClassName, 'cache_hash');
mw_setCacheBackend($mw_backendClassName, 'cache_pages');
mw_setCacheBackend($mw_backendClassName, 'cache_pagesection', 2592000);
mw_setCacheBackend($mw_backendClassName, 'cache_rootline',2592000);
mw_setCacheBackend($mw_backendClassName, 'cache_imagesizes', 0);
mw_setCacheBackend($mw_backendClassName, 'extbase_datamapfactory_datamap', 0);
}
Bearbeite nun die Datei AdditionalConfiguration.php im gleichen Verzeichnis und füge folgende Zeile am Ende hinzu:
include_once "MwCachingConfiguration.php";
Falls die Datei noch nicht existiert, lege sie neu an und trage die folgenden Zeilen ein:
<?php
include_once "MwCachingConfiguration.php";
Et voilà! Dein TYPO3 verwendet nun den APCu als Cachebackend und profitiert so vom ganzen Potenzial, das dir Performance Plus bietet!
Hinweis
Achte darauf, dass keine C0-Steuerzeichen in der Datei vorhanden sind. Dies passiert zum Beispiel, wenn du die Datei unter
Windows mit Notepad erstellt und anschließend hochgeladen hast.
Ein sicherer Weg zur Erstellung der Datei und der notwendigen Einträge ohne Steuerzeichen bietet zum Beispiel der WebFTP-Zugang
im Mittwald Kundencenter.
Alternativ kannst du die Datei lokal mit einem Editor erstellen, der Unix-konform speichern kann. Dies ist zum Beispiel mit Notepad++
oder UltraEdit möglich.