L’ultima versione di macOS 12 Monterey non porta più con sé preinstallato PHP. Difatti, una nota nel conf http.conf di Apache riporta:

#PHP was deprecated in macOS 11 and removed from macOS 12

Per fortuna possiamo installare PHP manualmente scegliendo una delle versioni disponibili, incluse 5.7, 7.4 e 8.1 con l’aiuto di Homebrew.

Installiamo homebrew

Se non abbiamo homebrew installato sul nostro mac, installiamolo velocemente con un solo comando, come da sito ufficiale:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Aggiungiamo il repository

Tramite il comando tap, diciamo a brew di aggiungere un nuovo repository al suo elenco interno, in modo da poter installare pacchetti supplementari. Di default, tap tiene conto che il repository provenga da Github. Difatti, quello che ci serve è shivammathur/homebrew-php. Aggiungiamolo quindi così:

brew tap shivammathur/php

A questo punto, scegliamo la versione di PHP che vogliamo installare, qui installeremo l’ultima disponibile, la 8.1:

brew install shivammathur/php/php@8.1

Le opzioni sono:

  • php@5.6
  • php@7.0
  • php@7.1
  • php@7.2
  • php@7.3
  • php@7.4
  • php@8.0
  • php@8.1

Una volta terminata la procedura, linkiamo la versione PHP, così da poter utilizzare il comando php direttamente:

brew link --overwrite --force php@8.1

Riavviamo il terminale

Ed eseguiamo:

php -v

A questo punto il sistema vi confermerà che la versione attuale è quella appena installata:

Luca-Murante:~ luca$ php -v
PHP 8.1.3 (cli) (built: Feb 22 2022 09:40:25) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.3, Copyright (c) Zend Technologies
with Zend OPcache v8.1.3, Copyright (c), by Zend Technologies

Cambiare versione

Se volessimo cambiare la versione, ripetiamo semplicemente questa guida dal principio specificando la versione da installare e poi ricordiamo di effettuare il link

Rimuovere vecchie versioni

Se abbiamo installato vecchie versioni da una vecchia installazione di Homebrew, possiamo rimuoverle:

rm -rf $(brew --cellar)/php

Rimuoviamo anche i vecchi Launch Agents, se presenti:

rm -f ~/Library/LaunchAgents/homebrew.mxcl.php*
rm -f /Library/LaunchAgents/homebrew.mxcl.php*
rm -f /Library/LaunchDaemons/homebrew.mxcl.php*

A questo punto rimuoviamo il vecchio repository:

brew untap homebrew/php

..e facciamo un po’ di pulizia:

brew cleanup