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:
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"
.