Magento unter Windows
Da es unter Linux (und Mac OS X) einwandfrei läuft und Magento ein sehr vielversprechendes Shop-System ist, wollte ich es einmal auf meiner Entwicklungsmaschine mit Windows XP und aktuellem PHP 5.2.5 einsetzen. Aber leider ist nicht alles Gold was glänzt.
Der Fehler ist zwar nicht bei der E-Commerce Software zu suchen aber eines dieser typischen Ärgernisse von PHP, doch dazu gleich. Der Fehler tritt beim Aufrufen des Installers (genauer beim Erstellen der DB-Tabellen) auf und besteht darin, dass man eine ewig lange PDO Exception zu sehen bekommt und die Software eben nicht installiert wird. Die Fehlermeldung lautet:
General error: 2014 Cannot execute queries while other
unbuffered queries are active.
Consider using PDOStatement::fetchAll().
Alternatively, if your code is only ever going to run
against mysql,you may enable query buffering by setting the
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.
Sucht man in den Magentoforen ein wenig rum, ist das Problem ein bekanntes, nur eine Lösung gibt es dafür nicht, weil es ein Fehler von PHP/PDO ist. Auch der Workaround an zwei Stellen im Code
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
auf true zu setzen bringt nichts. Der PHP-/PDO-Fehler wird hier und hier beschrieben. Der Fehler wurde Ende 2006(!) reported und bis heute nicht gefixt. Das ist mehr als ärgerlich, denn der einzige Workaround der zur Verfügung steht ist die Verwendung einer php_pdo_mysql.dll von fragwürdiger Herkunft.
Das kann es doch nicht sein — ist es aber leider.
February 3rd, 2008 at 2:59 pm
Im PDO die native MySQL Extension für PHP nutzen?
February 3rd, 2008 at 7:20 pm
Magento empfiehlt ODBC zu verwenden, weil es damit gehen solle. Inwieweit Dein Vorschlag was helfen soll, kann ich nicht beurteilen…
Aber das Problem ist doch, dass es da erhebliche Bugs gibt, die einfach nicht gefixed werden und das seit mehr als einem Jahr. Und was soll das Gerede um PDO 2 wenn sie noch nicht mal PDO 1 gescheit hinbekommen haben…
February 20th, 2008 at 9:43 pm
Es gibt noch eine andere Lösung
download:
http://www.nolimitclubbing.com/lib_php/php_pdo_mysql.dll (mirror for the file mentioned in bug comments) and add this file to your php\ext directory.
Quelle:
http://www.magentocommerce.com/boards/viewthread/3014
February 20th, 2008 at 9:49 pm
Ja genau, das meinte ich mit einer DLL fragwürdiger Herkunft. Mag sein, dass es damit geht aber ich installiere keine DLLs, von denen ich nicht die Urheber kenne…
March 20th, 2008 at 11:51 am
Wir hatten das selbe Problem auf unseren Entwicklungssystemen. Mit der oben genannten DLL läuft Magento einwandfrei unter Windows.
Es handelt sich um einen Bug in PHP bzw. der PDO-Extension, der aber - obwohl er seit längerem bekannt ist - noch immer nicht gefixt ist.
March 20th, 2008 at 12:05 pm
Hallo Phoenix,
danke für den Hinweis, auf die Funktionalität der DLL. Wir “lösen” das Problem so, dass wir die Entwicklung komplett auf Macs verlagern :o)
August 22nd, 2008 at 6:45 pm
Bin gerade durch Zufall über den Beitrag gestolpert und konnte mir ein schmunzeln beim Lesen des Posts und vor allem der Kommentar jetzt gerade nicht verkneifen….
Willkommen in der Mac-Welt, in der auch wir unsere Magento-Projekte entwickeln - bislang ohne große Probleme. Für einen Erfahrungsaustausch stehen wir gerne zur Verfügung.