After upgrading Ubuntu, I'm having trouble with the cherokee (1.0.0) and php-cgi.
Cherokee itself runs fine. When I run cherokee-admin, I get this error:
(critical) bind.c:284 - Could not bind() port=9090 (UID=0, GID=0)
According to netstat port 9090 is absolutely free (both IPv4 and IPv6). When I run cherokee-admin -b or cherokee-admin -b0.0.0.0 it will succesfully bind to :::9090 (IPv6) or 0.0.0.0:9090 (IPv4) respectively. I can then reach cherokee-admin via the public interface, but not via localhost (over an SSH tunnel). When I call cherokee-admin with -blocalhost or -b127.0.0.1 I get the same "Could not bind" error.
The same seems to happen with php-cgi. When I run /usr/bin/php-cgi -b 127.0.0.1:47990, I get this error:
Cannot bind/listen socket -  Cannot assign requested address.
Couldn't create FastCGI listen socket on port 127.0.0.1:47990
When I change 127.0.0.1 to localhost, I get this:
Host 'localhost' has multiple addresses. You must choose one explicitly!
I've tried disabling IPv6 and completely removing (with --purge) and reinstalling cherokee and all associated packages and libraries, but this didn't help either.
The problem started when I upgraded from Ubuntu 8.10 (via 9.04 and 9.10) to 10.04. It's a VPS with kernel 126.96.36.199 (domU, modified kernel for virtualization). Before the upgrade everything worked like a charm. I tried a 'fresh' install in a virtual machine on my local machine and everything works perfectly.
I'd rather not have to reinstall the complete server. Does anyone know what's going on?