How to Run Apache and IIS at the Same Time: Part 1

Share this article

Whether you’re a freelancer or an employee, it’s often necessary to work with a diverse range of platforms and applications to get the job done. If you’re a PHP developer, you may become involved with Microsoft SQL Server and Windows hosting. If you’re a .NET developer, you could be asked to write an Apache-based URL rewriting system. Don’t be afraid: embrace the tools and learn from the experience! Apache IIS same PC
It’s not always that easy, of course. It’s best to use a development environment which is similar to your hosting platform so you’ll normally require either Apache HTTP Server or Microsoft Internet Information Server/Services (IIS). But what if you require both?

Do You Require Both Servers?

From a development perspective, IIS and Apache do the same thing. It’s great if you can use a similar set-up to your web host, but it’s not strictly necessary. If your requirements are relatively modest, I’d suggest running IIS only. It’ll happily run ASP.NET, Classic ASP and PHP on the same installation. Apache does not (directly) support ASP.NET. You can use Mono, the open source equivalent, and I suspect some clever hackers have found a way to run Microsoft’s ASP.NET on Apache. But is it worth the effort? You’ll almost certainly encounter issues — especially when using Visual Studio. If you only want to maintain one server on your Windows PC, IIS could be the best solution.

Down on the Development Farm

If you’ve got two or more machines, then it’s straight-forward to install Apache on one PC and IIS on another. Shared folders can be configured so it’s easy to deploy and run files on a remote server. This is a great solution if you’re working in a team and allows backup facilities to be implemented. However, it’s overkill for one person and will certainly increase your electricity bill.

Valuable Virtual Machines

VM software allows you to create a software-simulated PC inside your PC. I’m a big fan of VirtualBox, although Microsoft Virtual PC and VMware have their good points. The advantage of a VM is that you can set up any number of server configurations and switch to the one that’s most appropriate. Developers can still access shared folders and backup systems will work just as well as on a real server. However, VMs add an extra layer of effort and must be configured and maintained. On a single PC, you’ll also need to boot your VM whenever you start coding. That may only take a minute or two, but it’ll soon become tiresome. Finally, VMs are just blocks of data — they’re easy to back up, but they’re fragile. An OS crash, corruption, or file deletion could trash your VM and destroy your work. If none of these solutions appeal to you, head over to part 2
— it provides two methods for running Apache and IIS on the same Windows PC at the same time.

Frequently Asked Questions on Running Apache and IIS Simultaneously

What are the key differences between Apache and IIS?

Apache and IIS are both web servers, but they differ in several ways. Apache, an open-source software, is known for its power and flexibility. It supports a wide range of operating systems including Unix, Linux, Mac OS X, and Windows. On the other hand, IIS is a proprietary server from Microsoft, designed specifically for Windows. It integrates seamlessly with other Microsoft applications and is known for its user-friendly interface and robust security features.

Can I run Apache and IIS on the same machine?

Yes, it is possible to run both Apache and IIS on the same machine. However, they cannot listen to the same port number at the same time. You need to configure one of the servers to listen to a different port, which can be done through the server’s configuration files.

How do I configure Apache and IIS to run on different ports?

To configure Apache and IIS to run on different ports, you need to edit their respective configuration files. For Apache, this is the httpd.conf file, and for IIS, this is the applicationhost.config file. In these files, you can change the port number that the server listens to.

What are the benefits of running both Apache and IIS?

Running both Apache and IIS can provide several benefits. For instance, you can take advantage of the strengths of both servers. Apache is known for its flexibility and power, while IIS is known for its robust security features and seamless integration with other Microsoft applications. Additionally, running both servers can provide redundancy, improving the reliability of your web services.

Are there any drawbacks to running both Apache and IIS?

While there are benefits to running both Apache and IIS, there can also be drawbacks. One potential issue is the increased resource usage, as running two servers will require more memory and CPU power. Additionally, managing two servers can be more complex than managing just one.

How can I switch between Apache and IIS?

To switch between Apache and IIS, you can simply stop the server you are currently using and start the other one. This can be done through the server’s control panel or command line interface.

Can I use Apache and IIS for different websites on the same machine?

Yes, you can use Apache and IIS for different websites on the same machine. You just need to configure each server to handle requests for its respective websites. This can be done through the server’s configuration files.

How do I migrate from Apache to IIS or vice versa?

Migrating from Apache to IIS or vice versa involves several steps. First, you need to install the server you are migrating to. Then, you need to configure the new server to handle your websites. Finally, you need to transfer your website files and databases to the new server.

What are some common issues when running Apache and IIS simultaneously?

Some common issues when running Apache and IIS simultaneously include port conflicts, increased resource usage, and increased complexity in server management. However, these issues can be mitigated with proper configuration and management.

Can I run other web servers alongside Apache and IIS?

Yes, you can run other web servers alongside Apache and IIS, as long as they are configured to listen to different ports. Some popular web servers that can be run alongside Apache and IIS include Nginx and LiteSpeed.

Craig BucklerCraig Buckler
View Author

Craig is a freelance UK web consultant who built his first page for IE2.0 in 1995. Since that time he's been advocating standards, accessibility, and best-practice HTML5 techniques. He's created enterprise specifications, websites and online applications for companies and organisations including the UK Parliament, the European Parliament, the Department of Energy & Climate Change, Microsoft, and more. He's written more than 1,000 articles for SitePoint and you can find him @craigbuckler.

apacheiiswindows
Share this article
Read Next
Get the freshest news and resources for developers, designers and digital creators in your inbox each week