PHP sparito su macOSX 12 Monterey

PHP

PHP sull’ultima versione di macOS, ovvero Monterey non è presente di default, deprecato su Catalina, nella 12 versione dell’OS di Apple il modulo è stato del tutto eliminato.

Se avete comunque bisogno di PHP si può installare attraverso homebrew, al solito col comando:

brew install php

Una volta installato il problema è farlo funzionare! Il modulo infatti va firmato digitalmente, altrimenti lanciando il comando httpd -k start vi verrà restituito l’errore:

httpd: Syntax error on line 190 of /private/etc/apache2/httpd.conf: Code signing absent - not loading module at: /usr/local/Cellar/php/8.1.1/lib/httpd/modules/libphp.so

Firmare il modulo PHP

Per prima cosa bisogna creare un’autorità di certificazione nel portachiavi di MacOS. Quindi, aprite l’app Accesso Portachiavi e nel menù come in figura sotto selezionate “Assistente certificato -> Crea un’autorità di certificazione

PHP

Create l’autorità, potete darle il nome volete, io l’ho chiamata Tuttologico, impostate “Certificato utente: Firma codice”, come in figura sotto

PHP

Adesso potete firmare il modulo con il comando

codesign --sign "Tuttologico" --force --keychain ~/Library/Keychains/login.keychain-db /usr/local/Cellar/php/8.1.1/lib/httpd/modules/libphp.so

Ovviamente controllate che la directory del modulo sia quella giusta, nel mio caso ho installato la versione 8.1.1 e il percorso rispecchia il numero di versione, quindi nel vostro caso potrebbe essere diverso!

Infine, prima di lanciare apache dovete aggiungere la seguente riga al file /etc/apache2httpd.conf

LoadModule php_module /usr/local/Cellar/php/8.1.1/lib/httpd/modules/libphp.so "Tuttologico"

    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>

Potete adesso lanciare il webserver con il comando sudo httpd -k start

La cartella documenti del webserver predefinita si trova in /Library/WebServer/Documents, tutto quello che mettete li sarà accessibile da browser all’indirizzo localhost