Abilitare il web server su macOS

Nelle versioni precedenti del sistema operativo targato Apple c’era la possibilità di abilitare il web server integrato con un semplice click dal pannello Condivisione nelle Preferenze di Sistema. All’interno della propria Home vi era la cartella Siti dove si potevano creare le proprie  pagine html oppure php.

Purtroppo nelle versioni più recenti di macOS hanno tolto questa possibilità nonostante il web server Apache sia ancora presente. Ma per abilitarlo occorre armeggiare a basso livello dal Terminale.

Per primo apriamo il file /etc/apache2/httpd.conf con un editor di testo:

$ sudo nano /etc/apache2/httpd.conf

e modifichiamo la riga 177:

#LoadModule php7_module libexec/apache2/libphp7.so

in

LoadModule php7_module libexec/apache2/libphp7.so

Modifichiamo anche la riga 178 per abilitare il modulo Perl:

#LoadModule perl_module libexec/apache2/mod_perl.so

in

LoadModule perl_module libexec/apache2/mod_perl.so

Ora abilitiamo il modulo per i siti web personali alla riga 174:

#LoadModule userdir_module libexec/apache2/mod_userdir.so

in

LoadModule userdir_module libexec/apache2/mod_userdir.so

Modifichiamo anche la riga 511:

#Include /private/etc/apache2/extra/httpd-userdir.conf

in

Include /private/etc/apache2/extra/httpd-userdir.conf

Salviamo tutto e chiudiamo l’editor. Riapriamolo di nuovo per modificare il file /private/etc/apache2/extra/httpd-userdir.conf:

$ sudo vi /etc/apache2/extra/httpd-userdir.conf

e modifichiamo la riga 16:

#Include /private/etc/apache2/users/*.conf

in

Include /private/etc/apache2/users/*.conf

Salviamo anche queste modifiche e usciamo.

Se non esiste, creiamo la cartella Siti nella nostra home:

$ mkdir ~/Sites
$ echo "<html><body><h1>My site works</h1></body></html>" > ~/Sites/index.html.en

Adesso assicuriamoci dell’esistenza del file di configurazione relativo alla nostra home e se non esiste creiamolo:

$ sudo vi /etc/apache2/users/<your short user name>.conf

Assicuriamoci che il suo contenuto sia così:

<Directory "/Users/<your short user name>/Sites/">
AddLanguage en .en
AddHandler perl-script .pl
PerlHandler ModPerl::Registry
Options Indexes MultiViews FollowSymLinks ExecCGI
AllowOverride None
Require host localhost
</Directory>

Adesso verifichiamo la correttezza della configurazione scrivendo il comando:

$ apachectl configtest

e assicuriamoci che ritorni il messaggio:

Syntax OK

Avviamo Apache con il comando:

$ sudo apachectl start

e navighiamo all’url:

http://localhost

Dovremmo vedere qualcosa simile a:

It works!

Poi se ci indirizziamo all’url:

http://localhost/~<nome_breve>

dovremmo invece vedere:

My site works

Adesso occupiamoci di PHP, creando il file info.php:

$ echo "<?php echo phpinfo(); ?>" > ~/Sites/info.php

e proviamolo dal browser andando all’indirizzo:

http://localhost/~<nome_breve>/info.php

Dovremmo vedere tutte le info di configurazione dell’ambiente PHP.

Facciamo una cosa simile per Perl:

$ echo "print \$ENV{MOD_PERL} . qq{\n};" > ~/Sites/info.pl

e proviamolo dal browser andando all’indirizzo:

http://localhost/~<nome_breve>/info.pl

Dovremmo vedere la stringa "mod_perl/2.0.9".