When choosing a webserver stack, used to run PHP applications like Magento, a LAMP (Linux Apache MySQL PHP) stack is favored. Although nginx with php-fpm is on the rise, Apache on Linux is still the most popular choice. When choosing a reactor pattern based webserver like nginx or lightspeed, which some claim perform better under load, Linux is still the most popular choise. In fact here at RapidCommerce, all Magento hosting is done using Linux and a mix of Varnish/Apache/Nginx.
There is a “new” kid in town though, IIS. Obviously IIS does not run under Linux, its THE Microsoft Windows webserver. And it has never been popular to run PHP/MySQL based applications. With good reasons, I might add. IIS6 was a terrible performer when it came to PHP. However for IIS7 things have changed, so they say. Apparently the team behind IIS has been working closely with the PHP guru’s at Zend.
Add to these improvements in IIS7, the availability of a new opcode and user cache; WinCache. I started to wonder… How does this “new” WIMP (Windows IIS MySQL PHP) stack compare to the widely favored LAMP stack? So I decided to put things to the test. This series of posts will compare ZendServer CE (from those same gurus involved in improving IIS/PHP) with IIS7.
Both stacks can be seen as “out-of-the-box” PHP application servers. Both come with their own opcode cacher, Zend Optimizer+ with Zend Datacache SHM versus WinCache. Zend chose to run PHP as mod_php in Apache and in IIS PHP is run with FastCGI. I will acknowledge that adding Nginx/php-fpm and Apache/fast-cgi would be more fair, as they use a more comparable way to integrate PHP with the webserver. But I trust the guys at Zend know what they are doing and had their reasons to use the mod_php. The point being, out-of-the-box vs out-of-the-box. To make thing more comparable we’ll add Zend Server CE under Windows to the mix.
This series of posts will compare typical, non-tweaked, LAMP and WIMP stacks, in terms of performance, running Magento CE 1.7.
Table of contents (work in progress)
2. Running Magento with IIS and WinCache
3. Benchmarks (coming soon)
4. Conclusion (coming soon)