Questo articolo è rivolto agli sviluppatori web che vogliono installare un server web Apache come parte del loro ambiente di sviluppo sul Mac.

Se sei uno sviluppatore PHP, allora questo articolo è un pre-requisito per il prossimo articolo che ti accompagnerà nell’installazione di PHP usando Homebrew e PECL. Un link a quell’articolo si trova in fondo a questa pagina.

Come sviluppatore, ero solito affidarmi alla versione di Apache precaricata con il sistema operativo del mio MacBook Pro. Con le sempre mutevoli regole di sicurezza di macOS, ho deciso di cambiare tutto il mio approccio e invece disabilitare la versione distribuita di Apache e usare una configurazione interamente da Homebrew. Questo nuovo approccio consente una maggiore flessibilità per il versioning e continuerà a funzionare su tutte le versioni di macOS.

Queste istruzioni funzionano allo stesso modo per macOS 10.13 High Sierra e 10.14 Mojave. Non ho testato su versioni precedenti di macOS, ma dovrebbe funzionare in modo simile. Inoltre, non è necessario iniziare con una nuova installazione del sistema operativo per utilizzare questo articolo, ma ho visto alcune cose strane accadere quando si aggiorna a Mojave rispetto a una nuova installazione (ad esempio, manca completamente il file di estensione del modulo mod_deflate.so dopo l’aggiornamento). Raccomando una nuova installazione, ma se invece stai affrontando un aggiornamento, preparati a rintracciare alcuni file e percorsi.

Iniziamo!

Ottimi aggiornamenti del sistema operativo

Se hai appena fatto una nuova installazione del sistema operativo, probabilmente non avrai bisogno di fare questo.

Installa Xcode

Se non sei interessato a installare l’intera applicazione Xcode va bene, il comando Homebrew installerà gli strumenti di base della linea di comando Xcode di cui ha bisogno. Tuttavia raccomando l’installazione completa, specialmente se stai usando Mojave. Per fare questo puoi eseguire il seguente comando da terminale.

xcode-select --install

Installa Homebrew

Il seguente comando installerà Homebrew.

(Si prega di notare che il seguente comando è una singola linea che è avvolta a causa dei limiti di larghezza della pagina in Medium. Assicurati di copiare l’intera linea).

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Creare le directory dei file di log di Apache

Apache è preconfigurato con le proprie directory di log, ma noi creeremo la nostra cartella “/usr/local/log/” in modo che siano facili da trovare quando ne abbiamo bisogno. Se passerai al prossimo articolo per installare PHP, useremo questa stessa posizione di file di log anche per i log di PHP, e avremo tutti i log in un unico posto.

Segui questi passi per creare le directory appropriate e impostare i loro permessi. Ignorate qualsiasi messaggio “esiste già” che potreste ricevere.

$ sudo mkdir /usr/local/log$ sudo mkdir /usr/local/log/httpd$ sudo chgrp -R staff /usr/local/log/httpd$ sudo chmod -R ug+w /usr/local/log/httpd/

Installare e configurare Apache

macOS 10.13 High Sierra e 10.14 Mojave hanno Apache preinstallato. Tuttavia, invece di usare la versione fornita, installeremo Apache tramite Homebrew e poi lo configureremo per funzionare sulla porta 80.

Se avete già l’Apache preinstallato in esecuzione, dovrà essere prima spento e qualsiasi script di caricamento automatico rimosso. Non fa male eseguire entrambi i seguenti comandi, anche su una nuova installazione.

(Si prega di notare che il secondo comando è una singola linea che si è avvolta a causa dei limiti di larghezza della pagina in Medium. Assicurati di copiare l’intera linea).

$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null

Ora installa la nuova versione di Apache fornita da Homebrew.

$ brew install httpd

Una volta completato, esegui il seguente comando per avviare il servizio Apache e assicurati che si riavvii automaticamente al login.

$ brew services start httpd

Ora hai installato la versione di Apache di Homebrew e configurato l’avvio automatico al riavvio. Dovrebbe essere già in esecuzione, quindi dovresti essere in grado di puntare il tuo browser a http://localhost:8080 e vedere un semplice header che dice: “Funziona!”.

Nota, al momento siamo puntati sulla porta 8080. Lo cambieremo nei prossimi passi. Ora che abbiamo un web server funzionante, vogliamo fare alcune modifiche alla configurazione in modo che funzioni più a nostro piacimento … o in realtà solo a mio piacimento ;-).

Apriamo il file di configurazione di Apache:

$ open -e /usr/local/etc/httpd/httpd.conf

Cambia la porta di ascolto

Scorri verso il basso e trova la linea che dice, “Listen 8080” e cambiala in;

Listen 80

Enable Useful Apache Modules

Poi puoi abilitare i seguenti due utili moduli Apache. Puoi cercare le seguenti due linee e decommentarle rimuovendo l’hashtag iniziale “#”.

Suggerimento: la linea deflate è nel mezzo della sezione LoadModule e la linea rewrite è in fondo alla sezione LoadModule.

LoadModule deflate_module lib/httpd/modules/mod_deflate.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

Cambiare le impostazioni di utente e gruppo di Apache

Di default Apache funziona come utente _www e gruppo _www. Tra un po’ imposteremo la nostra directory di documenti di default su una directory “Sites” nella nostra cartella Home, e queste impostazioni di utente e gruppo ti causeranno problemi di autorizzazione quando cercherai di accedere ai file nella tua directory home.

Scorri circa un terzo della strada verso il basso nel tuo file httpd.conf e troverai due linee che impostano l’utente e il gruppo con cui Apache verrà eseguito. Cambiali in modo che corrispondano al tuo account utente. Sostituisci your_username con il nome utente del tuo MacBook e usa un nome di gruppo come staff.

User your_username
Group staff

Imposta Apache Server Admin e il nome del server

Trova la linea “ServerAdmin” e abilitala rimuovendo l’hashtag iniziale “#” (se necessario) e poi cambia l’email con la tua:

ServerAdmin [email protected]

Abilita il nome del server Apache nella configurazione rimuovendo l’hashtag iniziale “#” e cambiandolo in localhost:

ServerName localhost

Modifica la radice del documento, la directory e gli override

Poi cambieremo la radice del documento per Apache. Questa è la cartella da cui Apache cerca di servire i file. Per default la document root è configurata come /usr/local/var/www. Poiché stiamo creando un ambiente di sviluppo e vogliamo evitare il maggior numero possibile di problemi di permessi per le cartelle, cambieremo la document root in una cartella nella nostra directory Home (che creeremo a breve).

Continua a scorrere in basso e trova la linea DocumentRoot. Cambiala per leggere:

DocumentRoot "/Users/your_username/Sites"

In seguito, devi anche cambiare il riferimento al tag proprio sotto la linea DocumentRoot. Anche questo dovrebbe essere cambiato per puntare alla tua nuova radice del documento:

<Directory "/Users/your_username/Sites">;

In quello stesso blocco troverai un’impostazione AllowOverride. Questa dovrebbe essere cambiata da None per permettere “All” overrides:

AllowOverride All

Set Apache Error Log Location

Infine, stiamo per impostare la posizione del log degli errori di Apache nella cartella che abbiamo creato prima. Scorri un po’ più in basso e trova la linea per “ErrorLog” e cambiala come segue:

ErrorLog "/usr/local/log/httpd/error_log"

Salva e esci dall’editor di testo.

Crea una cartella Sites

Usa le seguenti due linee per creare una cartella “Sites” e aggiungi un file index.html per iniziare:

(Si prega di notare che il secondo comando è una singola linea che si è avvolta a causa dei vincoli di larghezza della pagina in Medium. Assicurati di copiare l’intera linea).

$ mkdir ~/Sites
$ echo "<h1>It Works in my Sites Folder</h1>;" > ~/Sites/index.html

Riavvia Apache

Ora riavvieremo per assicurarci che le nostre impostazioni di configurazione siano corrette:

$ sudo apachectl -k restart

Prova a navigare sul tuo localhost nella sua nuova posizione: http://localhost

Se questo funziona e vedete il messaggio “It Works in my Sites Folder” allora congratulazioni! Hai una nuova istanza di server web in esecuzione sulla porta 80.

Se ricevi un errore, una probabile causa potrebbe essere il doppio apice usato intorno alle voci della directory nel tuo file httpd.conf. A volte gli editor di testo li convertono in virgolette di tipo latino. Queste virgolette sono opzionali e possono essere rimosse. Prova a rimuovere le doppie virgolette e riavvia nuovamente Apache.

.

admin

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

lg