Is IIS 10.0 Express worth the trouble?

My Vista machine finally went hasta la vista, baby, so now I’m cooking with gas on a Windows 10 machine. I was going to download and install Apache so I could then download and install PHP and MySQL (or Maria) when I saw that Windows 10 comes with IIS 10.0 Express. This means I can skip downloading and installing Apache. But is that a good idea?

I’ve not even touched IIS since version four or something like that. What will be the bigger hassle? Configuring IIS or Apache and getting PHP and MySQL/Maria to work with one or the other? I mean, Apache is kind of the devil I know…

Does your version of Win10 come with Hyper-V? If so, you could set that up and run a LAMP server in there instead. Would that work for you?

A download and install of XAMPP will save you any headaches. https://www.apachefriends.org/index.html

  • Hyper-V will only work on Windows 10 Enterprise, Professional, or Education, not 10 Home.

Yeah, I have Windows 10 Pro. I know XAMPP is great, but I prefer to install my components separately. So I was wondering between IIS 10 Express or just go the familiar Apache way.

Nothing says you cannot run both at the same time. Run one on the standard 80 port and the other one on 81 or just run one at a time. You could also do a hyper-V for one or both.

I don’t quite understand why people waste time setting up dev environments manually or on their host machine when tools like puphpet.com exist that cover a vast majority of use cases. This is especially true on windows where installing php, extensions, and supporting software can quickly become an exercise in futility. For all my php work I start by standing up a vagrant environment with puphpet.com. When it works its the best thing ever.

1 Like

I haven’t used IIS but one thing I can think of against it is that it has a completely different kind of url rewrite system than Apache. To me learning it doesn’t make sense because hardly anyone in production uses Windows for hosting PHP applications so this knowledge is mostly useless. It’s much more useful to use and learn rewrite systems that are actually used in production like those in Apache, Nginx, etc. That’s why I prefer Apache.

In the same way I could say that I don’t waste my time learning tools like puphet.com. I’m not saying they don’t make sense but that setting up own environment can also work well. Certainly, there comes a point where features of such tools become handy and worthwhile but if someone doesn’t have that many sites to host locally or doesn’t need any non-standard installations then plain environment will work fine.

I have Apache, multiple versions of PHP, multiple database systems all installed by myself and they work very well. I use simple batch scripts to switch between PHP versions, different document root paths, switch on/off Xdebug, etc. and I keep all my local addresses in a separate Apache config file. Sure, learning all of this is not a 5 minute task but there’s an advantage to it that this makes me learn configuring Apache and PHP and sometimes this knowledge comes in handy in other scenarios so this is not wasted time at all. Now when I need to set up this kind of environment from scratch I install all the components very quickly because I’m already familiar with the steps.

1 Like

I guess that works for a one person operation but for a team its best to have process / workflow for easily on-boarding new developers in a way where everyones environment matches. If you have several developers working on the same repository but with differing environments it can lead to many problems that are avoidable by running a vm or docker container. Not to mention larger projects typically require supporting software to run a full development environment including extensions and system libraries that can be painful to install unless on a true linux machine. I prefer my team to focus on development rather than configuring their dev environment. Docker and vagrant are perfectly suited for such a task in a multi-person operation. I think most people who are actively working in the development industry work with others not by themselves. So it makes sense to learn things like vagrant and docker. Especially with the ease of use of puphpet.com for creating the vagrant config to stand-up very complex environments. Lastly, there are slight differences between a native running xampp environment and the typical Linux server environment. Minimizing those differences by working on a true linux machine that closely matches the prod environment reduces dev/debugging time and bugs overall. In that regard it really doesn’t make any sense to be using IIS unless you’re running that on production and most php operations are not running windows servers. I’ve never worked on a windows server myself.

That’s basically my point of view as well. Getting Apache, PHP, and MySQL working together took a lot of effort the first time, but not subsequently.

Why? Because it’s fun. :grin: But seriously, at the time, I first installed XAMP, and at the end, I had no clue about anything. Installing and getting the components to work taught me a lot of about how they worked together. But you’re right. There’s no virtue in doing it the hard way. I’ll check out puphpet.

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.