Due to the fact that some of our readers ask about whether should they host their PHP websites with a Windows web host, we, therefore, have done a lot researches and investigations over the Internet, and finally find that Windows is NOT a good option to run a PHP website. Here, we have presented 3 key reasons in the following parts.
Windows Web Host is Expensive
Windows is a series of graphical interface operating systems, which are developed and sold by Microsoft. In other words, Windows is not a free operating platform, but a paid one. Besides, Windows can only be legally purchased from Microsoft or one of its appointed agents, meaning that Microsoft is a monopolist seller of Windows, and have the right to set the price at which they are willing to sell it. As monopolists are expected to use their market power to maximize the income and profits, this effective monopoly, hence, is part of the answers that why Windows is so expensive. According to Microsoft official site, the latest version of Windows 2012 has been priced from $1088, which can be a huge burden for web hosting companies as well as webmasters. Moreover, there are very few free applications that are included on a Windows server, meaning that the out-of-pocket expenses after purchasing can be quite large.
PHP Cannot Run Efficiently with IIS
IIS, which has been formally called as Internet Information Server, is a Microsoft software application and set of feature extension modules created by Microsoft for use with Microsoft Windows. It is flexible, secure and manageable, and can handle as many demanding tasks as you want. But to be honest, it runs PHP scripts less efficiently than Apache2.
According to our investigation, webmasters who run PHP web sites with IIS often encounter the 500 error, and need to occasionally restart the IIS server to ensure the site work properly. With Apache 2, however, these situations will never happen. Besides, PHP is Linux-based, and each request is handled by a different process. With IIS, however, the same type of request is handled by the same process in different threads. This is the major reason why the IIS running PHP may breakdown frequently.
Windows is Not Compatible with Some PHP Modules / Extensions
After installing PHP on Windows, some webmasters will probably install some modules or extensions for added functionality, but only find a PHP Warning in PHP error log:
PHP Startup: in Unknown on line 0
This means the modules and extensions they have downloaded are not compatible with Windows servers. It is quite frustrating, and is one of the main reasons why we don’t suggest our readers running PHP website on Windows. Here, we have listed some modules and extensions that are currently incompatible with Windows servers.
SourceGuardian | hash | mime_magic | Reflection | wddx |
calendar | iconv | session | gettext | xml |
ctype | imagick* | tokenizer | SimpleXML | xmlreader |
curl | imap | openssl | SPL | bcmath |