I am now having this issue as well (accept this is not my first install), and have ran the pihole -d command to find there is an issue with the X-header response from the httpd server:
*** [ DIAGNOSING ]: Pi-hole processes
[✓] lighttpd daemon is active
[✓] pihole-FTL daemon is active
*** [ DIAGNOSING ]: Setup variables
BLOCKING_ENABLED=true
PIHOLE_INTERFACE=wlp3s0
IPV4_ADDRESS=192.168.0.3/24
IPV6_ADDRESS=2601:c6:c880:608::b5
PIHOLE_DNS_1=1.1.1.1
PIHOLE_DNS_2=1.0.0.1
QUERY_LOGGING=true
INSTALL_WEB_SERVER=true
INSTALL_WEB_INTERFACE=true
LIGHTTPD_ENABLED=true
*** [ DIAGNOSING ]: Dashboard and block page
[✗] Block page X-Header: X-Header does not match or could not be retrieved.
HTTP/1.1 403 Forbidden
Content-Type: text/html
Content-Length: 345
Date: Tue, 02 Jul 2019 16:08:19 GMT
Server: lighttpd/1.4.45
[✗] Web interface X-Header: X-Header does not match or could not be retrieved.
HTTP/1.1 403 Forbidden
Content-Type: text/html
Content-Length: 345
Date: Tue, 02 Jul 2019 16:08:19 GMT
Server: lighttpd/1.4.45
Will do. Also, I found this looking through the error log that the -d flag generated. Doesn't look good:
$ sudo cat /var/log/lighttpd/error.log
2019-06-30 00:06:39: (server.c.1534) logfiles cycled UID = 0 PID = 26650
2019-07-01 00:01:15: (mod_fastcgi.c.2543) FastCGI-stderr: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/admin/api_FTL.php on line 303
2019-07-01 00:01:22: (mod_fastcgi.c.2543) FastCGI-stderr: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/admin/api_FTL.php on line 303
2019-07-01 09:10:03: (mod_fastcgi.c.2543) FastCGI-stderr: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/admin/api_FTL.php on line 303
2019-07-01 19:11:05: (server.c.1828) server stopped by UID = 0 PID = 1
2019-07-01 19:12:24: (log.c.217) server started
2019-07-02 11:00:00: (server.c.1828) server stopped by UID = 0 PID = 1
2019-07-02 11:06:19: (log.c.217) server started
2019-07-02 11:26:21: (server.c.1828) server stopped by UID = 0 PID = 1
2019-07-02 11:26:21: (log.c.217) server started
2019-07-02 11:33:19: (server.c.1828) server stopped by UID = 0 PID = 1
2019-07-02 11:34:37: (log.c.217) server started
2019-07-02 11:38:16: (server.c.1828) server stopped by UID = 0 PID = 1
2019-07-02 11:38:17: (log.c.217) server started
2019-07-02 11:45:17: (server.c.1828) server stopped by UID = 0 PID = 1
2019-07-02 11:57:55: (log.c.217) server started
2019-07-02 12:06:11: (server.c.1828) server stopped by UID = 0 PID = 1
2019-07-02 12:06:12: (log.c.217) server started
~$
We don't support Linux Mint as a distribution but you may be able to find out why you are getting a 403 by checking the lighttpd error logs. I'm not sure where they may be stored on your distribution, but most likely they are in /var/log/lighttpd/error.log.
My suggestion is to use docker if you would like to stay on Mint.
Using apt to purge the package will most likely pull down packages that depend on lighttpd as well making a mess. dpkg will only purge/remove the files contained in the package and run the post removal script for the package.
Could always as a last resort use apt to purge the package.
pi@noads:~ $ man dpkg
[..]
-P, --purge package...|-a|--pending
Purge an installed or already removed package. This
removes everything, including conffiles. If -a or
--pending is given instead of a package name, then all
packages unpacked or removed, but marked to be purged in
file /var/lib/dpkg/status, are purged.
Note: some configuration files might be unknown to dpkg
because they are created and handled separately through
the configuration scripts. In that case, dpkg won't
remove them by itself, but the package's postrm script
(which is called by dpkg), has to take care of their
removal during purge. Of course, this only applies to
files in system directories, not configuration files
written to individual users' home directories.
Purging of a package consists of the following steps:
1. Remove the package, if not already removed. See
--remove for detailed information about how this is
done.
2. Run postrm script.