Entwickeln auf Windows mit WAMPSERVER - Falle php-Version

Entwickeln auf Windows mit WAMPSERVER - Falle php-Version

Wir entwickeln seit einiger Zeit Webseiten mit einem mehr oder weniger aufwendigen Workflow. Jede/r von uns hat seine lokale Entwicklungsumgebung auf dem jeweiligen Rechner, egal welches Betriebssystem. Dann gibt es eine Entwicklungsumgebung auf dem Server, die auch die Kunden einsehen können und wo wir den Projektstand mit den Kunden abstimmen können. Und wenn alles sitzt, wie es soll, wird die Seite auf dem Server zur Live-Umgebung aufgespielt. Miteinander verbunden sind diese drei Ebenen via git. Für mich als eingefleischte Windows-Userin ist es angenehm, in meiner gewohnten Umgebung auf meiner lokalen Windows-Kiste entwickeln zu können, auch wenn vieles unter Windows weniger geschmeidig läuft als unter UNIX-Systemen.

Um einen lokalen Apachen mit allem Zipp und Zapp zur Verfügung zu haben, benutze ich eigentlich gerne WAMPSERVER. Das ist schnell installiert, bietet mir out of the box einen Apachen, mysql und eine gute handvoll PHP-Versionen. Aber ...

In WAMPSERVER die PHP-Version umschalten

Bislang war ich mit einer PHP-Version 7.3.x gut durch's Entwicklen gekommen, aber jetzt brauchte ich für ein Projekt 7.4.x. Kein Problem eigentlich, dafür gibt es ein Knöpfchen, mit dem man zwischen den Versionen hin und her schalten kann. Dummerweise steht dann zwar dem Apachen die Wunschversion zur Verfügung, nicht aber der Konsole. Schalteste auf 7.4.x um und gibst in der Konsole php -v ein, ist dort die zuletzt verwendete Version immer noch aktiv. Nun gibt es in WAMPSERVER auch ein Knöpfchen, um die CLI-Version umzustellen, aber das ist meinem Windows 10 so egal wie meiner Katze der Befehl, nicht auf den Tisch zu springen, wenn ich nicht da bin.

Tatsächlich muss ich unter Windows die Umgebungsvariablen aufrufen und dort die Systemvariablen verändern und den Pfad der verwendeten php-Version von Hand korrigieren. Jetzt denkste, alles ist gut ... isses aber nicht! 

Und jetzt funktioniert die Windows-Konsole immer noch nicht, wie sie soll - warum?

Konkret hatte ich anschließend ein Problem mit Drush, das meinte, zu wenig Memory zu haben. Und ja, schau, ich gehe in der GUI von WAMPSERVER in die PHP-Einstellungen und die sind tatsächlich alle auf "Auslieferungszustand". Die Änderungen, die ich für 7.3.x vorgenommen habe, gelten nicht für 7.4.x. Also trage ich meine Wunschwerte ein, starte sicherheitshalber alles neu und - "Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)". Danke für nichts ... Der Statusreport von Drupal meint, es ist alles schön, meine PHP-Einstellungen sind dort eingetragen. Aber natürlich wieder nicht für die Windows-Konsole. Der Befehl drush status hilft mir weiter. Dort steht der Pfad zur verwendeten php.ini, und schau an, in dieser stehen tatsächlich die schwachbrüstigen Ausgangswerte. Das ist die php.ini im PHP-Verzeichnis. Im WAMPSERVER versteckt sich aber noch eine andere php.ini im Apache-Verzeichnis, und die wurde über die GUI von WAMPSERVER vorher auch brav geändert. 

Und hier nochmal alle Schritte zusammengefasst

Um die PHP-Version in WAMPSERVER unter Windows zu ändern, und zwar für den Apachen und die Windows-Konsole muss man:

  • in der WAMPSERVER-GUI die gewünschte Version auswählen.
  • in Windows die Umgebungsvariablen aufrufen und den Pfad zur verwendeten PHP-Version entsprechend anpassen (damit die Windows-Konsole auch die richtige Version nimmt).
  • in der WAMPSERVER-GUI die Einstellungen für die PHP-Version anpassen (die gelten für den Apachen).
  • die php.ini im PHP-Verzeichnis händisch auch anpassen (für die Windows-Konsole).

Und weil ich das nicht allzu oft machen muss und wenn ich es machen muss vergessen habe, was ich machen muss ... Ach naja, deswegen habe ich das jetzt hier mal beschrieben. Vielleicht hilft es ja auch anderen mit demselben Problem.