One very rare problem that hits some people with Drupal is that it hangs on installation, and never gets anywhere. Using Firebug, I was able to track the problem down to jQuery, then ripped out the minimized copy of jQuery, stuck in a full copy, and re-ran the install, which immediately revealed the bug.

Drupal was attempting to access a URL that is not sandboxed (in the list of legal URLs for its own site) using Javascript. Javascript limits ("sandboxes") URLs to prevent cross-site exploits, and in this case Drupal was attempting to access an IP-based URL on a different port.

There are two interrelated problems. First, access on the IP rather than the host name. Firefox can't tell those are the same address and sandboxes them apart from one another. Attempting to access one from the other is a security violation. Second, access on a different port: that was caused by Nginx as a front-end to the Apache box. Drupal is relying on Apache's "ServerName" setting, and it shouldn't.

If you're having this problem and you're developing on the same box you're browsing from, stop and then restart Apache. If you see this message: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName, that's your problem. Use the IP address rather than any locally assigned hostnames for the Drupal install.

Secondly, if you're using Nginx or any other reverse proxy, go around it. Use the IP address of the Apache install directly, not the reverse proxy's front end.

I hope this helps someone out there.