I'll be the first to admit that I deviated from the tutorial slightly in that I installed NGINX instead of Apache, and I used https://launchpad.net/~ondrej/ archive/ubuntu/php instead of Ubuntu's stock PHP package. Everything appeared to go smoothly, but I'm receiving "502 Bad Gateway" from NGINX. I added the "error_log" directive to /etc/nginx/sites-available/ispconfig.vhost to obtain further information: Code: 2016/04/26 12:35:04 [crit] 26240#26240: *2 connect() to unix:/var/lib/php7.0-fpm/ispconfig.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.56.1, server: _, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/lib/php7.0-fpm/ispconfig.sock:", host: "ubuntu-16-vm.example.com:8080" I have dug-around in the FPM pool configurations and everything looks to be correct. /etc/php/7.0/fpm/pool.d/ispconfig.conf: Code: [ispconfig] listen = /var/lib/php7.0-fpm/ispconfig.sock listen.owner = ispconfig listen.group = ispconfig listen.mode = 0660 user = ispconfig group = ispconfig ; ... The socket permissions look to be correct: Code: srw-rw---- 1 ispconfig ispconfig 0 Apr 26 12:55 /var/lib/php7.0-fpm/ispconfig.sock I don't know enough about how FPM starts its processes to know if this is correct or not: Code: # ss -lp | grep 56004 u_str LISTEN 0 128 /var/lib/php7.0-fpm/ispconfig.sock 56004 * 0 users:(("php-fpm7.0",pid=8427,fd=0),("php-fpm7.0",pid=8426,fd=0),("php-fpm7.0",pid=8421,fd=9)) Code: # ps -ef | grep ispconfig ispconf+ 8426 8421 0 12:55 ? 00:00:00 php-fpm: pool ispconfig ispconf+ 8427 8421 0 12:55 ? 00:00:00 php-fpm: pool ispconfig Does anything jump-out? What might I have overlooked? Thank you very much for any help! UPDATE: I got the ISPConfig interface working, but it's not a solution; it's a workaround. In /etc/nginx/sites-available/ispconfig.vhost, I changed Code: fastcgi_pass unix:/var/lib/php7.0-fpm/ispconfig.sock; to Code: fastcgi_pass localhost:9000; and in /etc/php/7.0/fpm/pool.d/ispconfig.conf I changed Code: listen = /var/lib/php7.0-fpm/ispconfig.sock to Code: listen = 127.0.0.1:9000 listen.allowed_clients = 127.0.0.1 This still didn't work until I added the following line to /etc/hosts (presumably because the fastcgi_pass directive in the NGINX config could not resolve "localhost" without it): Code: 127.0.0.1 ubuntu-vm.example.com ubuntu-vm localhost I should note also that in Ubuntu 16, the order in which the above hostnames appear is important; amavis failed to be installed/started when I had the order reversed (which has always worked fine in Ubuntu 14). Apparently, Code: hostname --fqdn , which amavis uses to set $hostname, returns the leftmost of the listed hostnames. Unless the FQDN notation comes first in the list, amavis fails to start.