Apache is a good choice if you want complete flexibility, and if you are using a Linux or Unix server. IIS still rules for Win32 servers, though. (that might change with Apache 2.0, coming soon)
No matter which web server you choose, I think the next--or possibly even most--important decision is which server-side language you want to program in.
ASP is a little flexible in this regard, letting you choose between VBscript, VB, Jscript, even Javascript, as I understand.
PHP has some interesting advantages, though.
1. It is perhaps the most evenly cross-platform solution I have seen yet. You can write code on a Windows98 box and deploy it on a Unix server, or even a mainframe, if it runs one of the fairly standard Unix operating systems.
2. It works with more web servers than any other scripting language. (IIS, Apache, Netscape, thttpd, xitami, etc...)
3. PHP supports more third-party software than any other web scripting language except Perl (browse CPAN if you don't believe me).
4. PHP comes with complete source code, so you can recompile it anytime, with different options depending on your needs, and PHP freely encourages you to write your own extensions if you need customization.
5. PHP has an optimizer available at
that speeds up performance dramatically, and they are working on a compiler and a caching system for server clusters.
And, not to knock Perl... Perl can do anything any of the other scripting languages can do, and anything else you might be able to imagine, but it takes a little more work, maybe even a special kind of mindset ;-). Perl is a general-purpose language, not just a server-scripting language and there are some serious questions about performance on high-traffic servers.