Die Pimcore-Versionen vor 2.x kommen ab und an nicht mit dem Update auf 3.x klar, da einer der anzuwendenden Update-Dateien ohne Anpassungen für simple_xml zu groß ist. Mit folgender Änderungen können diese Schwierigkeiten aus dem Weg geräumt werden.
Fehlerursache in Pimcore
Es kommt folgender Fehler:
Download fails, see debug.log for more details. Error-Message: Warning: simplexml_load_string(): Entity: line 2: parser error : internal error: Huge input lookup in ...
Die Ursache ist, dass eine vom Update heruntergeladene Datei zu groß für simplexml_load_string() ist. Ab Version 2.7 kann die libxml aber durch die Option LIBXML_PARSEHUGE mit großen Dateien umgehen:
Sets XML_PARSE_HUGE flag, which relaxes any hardcoded limit from the parser. This affects limits like maximum depth of a document or the entity recursion, as well as limits of the size of text nodes.
Diese Option kann in pimcore eingebaut werden.
Fehlerbehebung
Hierfür in Datei pimcore/lib/Pimcore/Update.php folgende Zeilen suchen:
$xml = Pimcore_Tool::getHttpData($url); if($xml) { $updateFiles = simplexml_load_string($xml, null, LIBXML_NOCDATA);
und ändern in:
$xml = Pimcore_Tool::getHttpData($url); if($xml) { $parserOptions = LIBXML_VERSION >= 20900 ? LIBXML_NOCDATA | LIBXML_PARSEHUGE : LIBXML_NOCDATA; $updateFiles = simplexml_load_string($xml, null, $parserOptions);