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.

7 Responses to “Magento unter Windows”

  1. mot Says:

    Im PDO die native MySQL Extension für PHP nutzen?

  2. Reto Kiefer Says:

    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…

  3. Weizen Says:

    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

  4. Reto Kiefer Says:

    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…

  5. Phoenix Says:

    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.

  6. Reto Kiefer Says:

    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)

  7. TechDivision Says:

    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.

Leave a Reply