PHP unter macOS installieren und Version wechseln
Christoph Schwob·3 Min. Lesezeit
Was ist neu: Komplett neu: macOS hat kein PHP mehr, SIP muss nicht deaktiviert werden. Jetzt mit DDEV/Docker, Homebrew-Installation und Versionswechsel.
Kurz & knapp
macOS enthält seit Version 12 kein PHP mehr – und für Webprojekte brauchst du es lokal meist gar nicht: DDEV bzw. Docker bringen pro Projekt die passende PHP-Version mit (ddev composer install, ddev exec php -v). Für reine CLI-Tools installierst du PHP mit brew install php, ältere Versionen über php@8.4 & Co.
Getestet mit: macOS 27, Homebrew PHP 8.5, DDEV 1.25
Als dieser Artikel 2015 entstand, sah lokale PHP-Entwicklung auf dem Mac meist so aus: Webprojekte liefen über MAMP, aber für das Terminal – Composer, Skripte, Build-Tools – brauchte man zusätzlich ein aktuelles PHP auf der Kommandozeile. Weil macOS damals ein veraltetes PHP unter /usr/bin/php mitlieferte, wurde dieses ersetzt – inklusive Abschalten der System Integrity Protection.
Das ist heute nicht mehr nötig und auch nicht mehr möglich:
Brauchst du PHP lokal überhaupt noch?
Für Webprojekte lautet die Antwort heute meistens: nein. Mit DDEV (öffnet in neuem Tab) oder Docker läuft PHP in einem Container – in genau der Version, die das Projekt braucht. Jedes Projekt hat seine eigene Umgebung, und alle im Team arbeiten mit identischen Versionen.
DDEV: PHP pro Projekt
Die PHP-Version legst du bei DDEV pro Projekt fest:
ddev config --php-version=8.4
ddev restart
Sie steht danach in .ddev/config.yaml (php_version: "8.4") und wird mit dem Projekt versioniert. Alle PHP- und Composer-Befehle führst du über DDEV im Container aus:
ddev composer install # Composer im Container
ddev exec php -v # beliebiger PHP-Befehl im Container
ddev ssh # Shell im Container öffnen
Damit gibt es keine Konflikte zwischen Projekten mehr, die unterschiedliche PHP-Versionen brauchen.
Docker: PHP für einzelne Befehle
Ohne DDEV kannst du mit dem offiziellen PHP-Image (öffnet in neuem Tab) einzelne Befehle ausführen, ohne PHP zu installieren:
docker run --rm -v "$PWD":/app -w /app php:8.4-cli php script.php
PHP mit Homebrew installieren
Ein lokales PHP ist trotzdem praktisch – etwa für eigenständige CLI-Tools, Skripte außerhalb eines Projekts oder Editor-Integrationen. Am einfachsten geht das mit Homebrew:
-
PHP installieren (aktuelle Version, derzeit PHP 8.5):
brew install php -
Prüfen:
which php # /opt/homebrew/bin/php php -v -
Optional Composer installieren:
brew install composer
Die Konfiguration findest du mit php --ini – bei Homebrew liegt die php.ini unter /opt/homebrew/etc/php/<version>/.
Zwischen PHP-Versionen wechseln
Neben der aktuellen Version bietet Homebrew alle noch unterstützten Versionen als eigene Pakete an:
| PHP-Version | Homebrew-Paket | Sicherheitsupdates bis |
|---|---|---|
| PHP 8.5 | php |
31.12.2029 |
| PHP 8.4 | php@8.4 |
31.12.2028 |
| PHP 8.3 | php@8.3 |
31.12.2027 |
| PHP 8.2 | php@8.2 |
31.12.2026 |
Versionen ohne Support entfernt Homebrew nach und nach – php@8.1 ist bereits als veraltet markiert und wird Ende 2026 deaktiviert.
Die versionierten Pakete werden nicht automatisch verlinkt („keg-only“). So stellst du auf eine andere Version um:
brew install php@8.4
brew unlink php
brew link --overwrite --force php@8.4
php -v
Zurück zur aktuellen Version:
brew unlink php@8.4
brew link php
PHP-FPM als Dienst
Brauchst du PHP-FPM, etwa zusammen mit einem lokal installierten nginx oder Apache, startest du es über Homebrew als Hintergrunddienst:
brew services start phpHäufige Fragen
Ist PHP auf dem Mac vorinstalliert?
Nein, nicht mehr. Apple hat PHP mit macOS 12 Monterey entfernt. /usr/bin/php gibt es auf aktuellen Macs nicht mehr.
Muss ich für ein PHP-Update die System Integrity Protection deaktivieren?
Nein. Das war nur nötig, als man das mitgelieferte /usr/bin/php ersetzen wollte. PHP aus Homebrew liegt unter /opt/homebrew und braucht keine Änderungen am System.
Brauche ich PHP lokal, wenn ich mit DDEV arbeite?
In der Regel nicht. DDEV führt PHP und Composer im Container aus, z. B. mit ddev composer install oder ddev exec php -v. Die PHP-Version legst du pro Projekt in .ddev/config.yaml fest.
Wie wechsle ich mit Homebrew die PHP-Version?
Gewünschte Version installieren, z. B. brew install php@8.4, dann brew unlink php und brew link --overwrite --force php@8.4 ausführen und mit php -v prüfen.
Quellen & weiterführende Links
- Supported Versions (öffnet in neuem Tab) – php.net
- php – Homebrew Formula (öffnet in neuem Tab) – formulae.brew.sh
- DDEV – Docker-based local PHP development (öffnet in neuem Tab) – ddev.com
- DDEV Commands (öffnet in neuem Tab) – DDEV Dokumentation
- DDEV Config Options (php_version) (öffnet in neuem Tab) – DDEV Dokumentation
- php – Official Image (öffnet in neuem Tab) – Docker Hub
- macOS 12.0 – where oh where is PHP? (öffnet in neuem Tab) – Apple Developer Forums
- shivammathur/homebrew-php (ältere PHP-Versionen) (öffnet in neuem Tab) – GitHub
Geschrieben von
Christoph Schwob (öffnet in neuem Tab)
Ich bin Christoph Schwob, halbkreativer Entwickler aus Österreich und arbeite seit über 10 Jahren an und mit TYPO3. Hier sammle ich Lösungen, Code-Snippets und Notizen rund um TYPO3, macOS, Server, Homelab und alles andere.
Das könnte dich auch interessieren
- RubyGems unter macOS aktualisieren – ohne sudo und System-Ruby – 5. Dezember 2015
- Homebrew unter macOS: Installation & die wichtigsten Befehle – 22. November 2015
- .DS_Store-Dateien: verhindern, löschen und aus Git fernhalten – 27. Mai 2017