Configurare un webserver locale su macOS
Su macOS è possibile hostare i propri siti web in locale sfruttando la directory ~/Sites
come alternativa a /Library/WebServer/Documents
.
Abilitazione della configurazione per-utente
Per farlo è sufficiente creare un file /etc/apache2/other/00-enable_userdir.conf
contenente:
LoadModule userdir_module libexec/apache2/mod_userdir.so
Include /private/etc/apache2/extra/httpd-userdir.conf
Questo abiliterà il file /private/etc/apache2/extra/httpd-userdir.conf
; dal file sarà dunque necessario decommentare la riga Include /private/etc/apache2/users/*.conf
:
$ sed -i '.bak' 's%#\(Include /private/etc/apache2/users/*.conf\)%\1%' /etc/apache2/extra/httpd-userdir.conf
Procedere quindi con la generazione della configurazione per-utente:
<Directory "/Users/<username>/Sites/">
AddLanguage en .en
AddLanguage it .it
Options Indexes MultiViews FollowSymLinks ExecCGI
AllowOverride All
Require host localhost
</Directory>
Controllare la configurazione di Apache
$ apachectl configtest
Configurazione dei permessi
$ chmod +a “_www allow execute” ~
Avviare Apache
$ sudo apachectl start
PHP
Per eseguire codice PHP tramite Apache, è sufficiente creare un file /etc/apache2/other/00-php.conf
contenente:
LoadModule php_module <path-installazione-lib-php>/lib/httpd/modules/libphp.so "Nome"
<FilesMatch \.php$>
SetHandler application/x-httpd-php
DirectoryIndex index.php index.html
</FilesMatch>
In alternativa Homebrew preconfigura Apache come segue:
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
Come si può notare è presente il campo Nome
: da macOS Monterey, è necessario firmare moduli esterni. Per farlo, seguirà una guida apposita.
Lanciare dunque: $ apachectl restart
Utilizzo
Ora è possibile lanciare i propri siti nella propria cartella utente. Per visualizzarli è sufficiente usare come URL: localhost/~<username>/<nome-sito>