Users frequently ask me for platforms and operating system recommendations, wanting to know which is best for ColdFusion. And having just answered this one yet again, I am posting it here so as to be able to refer people to it in the future …
There is no recommended operating system for ColdFusion, and ColdFusion should not be driving your OS decision. From a ColdFusion perspective, there is not a lot of difference between Windows or Linux or anything else. ColdFusion runs in a JVM, and the same core ColdFusion bits run in the JVM regardless of underlying platform. The only real exception to this is Windows specific functionality (like COM support), but core ColdFusion is the same any all operating systems (since CFMX).
So, which OS should you use for your ColdFusion server? I’d not get too hung up on which OS is better for ColdFusion, as just explained, ColdFusion really does not care what the underlying platform and OS is. The deciding factors have to be all the reasons that generally go into OS decision making, things like what in house experience and expertise you have, cost (taking into account ongoing costs and maintenance costs and more), platforms already in use for other servers, and so on.
And as long as you end up deciding on a platform that ColdFusion supports, you’re all set.

21 thoughts

  1. In theory, I agree. In practice, Windows is a better choice for ColdFusion at this point (despite the fact I run on Linux). Why?
    1) More people run CF on Windows than on Linux/Unix. There’s a better chance someone else has experienced the same issues you are facing.
    2) Official support for Linux is limited to RHEL3, RHEL4, SUSE8, and SUSE9. Most virtual/dedicated servers standardize on CentOS, Debian, Fedora, or other "free" distributions. Unless you use an officially supported distro, you’re on your own when you run into any issues, may have to compile your own JRun connector, have to deal with package incompatibilities, etc.
    3) ColdFusion’s release cycle is more like the release cycle of Windows than a typical Linux application. As your distro is upgraded, you may have to stick with older versions of various packages (even on RHEL, CF relies on deprecated libraries such as xorg-x11-deprecated-libs) or risk breaking CF. Not as much a problem on the Windows side.
    4) Adobe knows Windows far better. For example, it took over 3 weeks for me to get an answer from Adobe Support on whether RHEL4 (x86_64) with Sun JDK 1.4.2_11 (i586) is officially supported, or whether official support is limited to RHEL4 (i386). (Apparently x86_64 is not supported, though "it might work" since 64-bit Linux is normally able to execute 32-bit Linux code.)

  2. For me it’s Windows.
    It’s easy to install and configure, plays nicely with different versions of windows and windows servers, intergrates with IIS and I prefer to use MS SQL Server.
    So i’d actually say that your database choie might dictate the operating system also, as you can’t get some DB’s for Linux but you can get them all for Windows, so why lock yourself in.
    Also support is a big issue, people seem to have a lot more issues with Linux, Apache. Not because CF doesn’t support it, but because there are so many variants of Linux and Apache that you just might be doing something that not many people have done or experienced.
    Once running however, Coldfusion is incredibly stable on both platforms.

  3. I’m a little surprised by the responses. Personally, I would say that for development, I find Windows a little easier to deal with, but for actually serving content, I would most certainly use some Linux/Unix environment.

  4. I have to put a plug in for linux. We’ve been serving ColdFusion files on linux ever since they first came out with the funky little linux stub that allowed you to run files on linux even though it was installed on Windows (needless to say, today’s CF runs much better!). Then when MX came around, we put the axe to the grind and have been running on redhat linux ever since. I love Apache and Linux–typically much more secure and less prone to the need to reboot. We do have one instance of ColdFusion running on Windows, but the 3 running on Linux are pretty much rock solid. In addition, if you are a business running CF, you’re not going to be always running the latest-and-greatest distribution. You’re running the one that’s supported by your software and by your company.
    I would have to disagree with the view the it depends on your database. Again, any business should be running a separate database server to for reliability, security, etc. So we run RHEL4 linux servers for ColdFusion which talk to our Windows 2003 Server boxes running MSSQL server and another linux box running mySQL. None of the CF servers are running their own databases.
    Anyone else on linux?

  5. For our production environment we use Solaris on Sparc. We’ve never considered swapping to Windows. For my private hosting I always select Linux – I don’t want to swap either.

  6. I’d say that choosing an OS is much like choosing a language for your application. If you have a bunch of PHP programmers working for the company, PHP may be the best choice – a bunch of ASP programmers or .NET programmers, Java guys, CF? Pick a language your employees can leverage.
    The same is true when picking a server platform to run your apps on. In most cases, any given company is going to have an in-house expertise around Linux/Win, whatever. This should be leveraged as much as possible. A linux admin is always going to deal with a Linux box better than a Win box and vice versa.
    Unless you are going to be getting new employees, choose something that’s going to take advantage of the skillsets of your employees.

  7. I so have to chime in here. I agree that your DB MUST be on a seperate server. So yeah for ORACLE on windows (even though you cert on linux). I too think linux’s core is much more stable than windows, however, I have never had a problem with CF / JRun4 on windows. I have a CF box on linux and all of my production cluster on windows. Super easy to configure and everything just works.
    All in all, I don’t think you can go wrong with any OS as long as you are using CF!

  8. For our production environment we use Solaris on Sparc. If scorpio will support Soalris on x32/x64, we will use Solaris on x64. Currently, the apache plugin is not plattform independent:
    coldfusionmx > file runtime/lib/wsconfig/1/mod_jrun20.so
    runtime/lib/wsconfig/1/mod_jrun20.so:
    ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, not stripped, no debugging information available

  9. Hans, I think that may have been true pre-CFMX, but it is absolutely not the case anymore. You do realize that Adobe.com itself runs primarily on ColdFusion 7.0.2 on Solaris (with JRun, Apache and Oracle) with some servers running on Red Hat AS 4 (with MySQL). In fact, I don’t think there is a single Windows box on the Adobe.com mix.
    Michael, um, no. ‘Abandoned’ implies that it was one supported and then we stopped doing so. That, of course, is incorrect. There was no support for Mac OSX in CFMX as Mac OSX was a non issue then, there is minimal (very minimal) support in CFMX7 as Max OSX become somewhat more relevant then. And Scorpio will support Mac OSX properly. No abandonment here, just sane business decisions. And no, I am not going to debate the point, but suffice it to say that while OSX has become a very important development platform, it has utterly failed as a server platform. Which means that in all likelihood we’ll ave lots of downloads of the free Developer’s Edition for Mac OSX, but that won’t translate into many sales. And, considering the cost associated with testing and supporting each additional platform, it was tough to justify before. We’re doing it now, but you’ve been complaining as if this were a personal attack for a long time now, and it isn’t. It’s called business.
    — Ben

  10. It’s not personal, but it does irk me when I continually see the same old line trotted out, "I’d not get too hung up on which OS is better for ColdFusion, as just explained, <b>ColdFusion really does not care what the underlying platform and OS is.</a>"
    Which is either true… or false. If ColdFusion runs on a JVM and doesn’t really "care" about the underlying platform, then supporting OS X PPC or OS X 886, Windows, Solaris, Linux, or any platform running a JVM should be trivial. If, as you imply, testing and supporting additional platforms is a time consuming and non-trivial process, and a major business case needs to be made for doing so, then it’s pretty obvious that it does care, and that its JVM-based platform "indepencence" is really just a marketing bullet point.
    Sorry, it’s just the way I see it.

  11. Michael, write some simple Java code, compile it, and it’ll probably run just about everywhere. Probably. But write a more complex app (and ColdFusion is a massive and complex app) and things get more complicated. It’s seldom CF itself that creates the problems, and far more frequently the database drivers or HTTP server connectors and so on, but there are still issues that need to be thoroughly tested. Sure, Java is all about portability, but believing that any and all apps, no matter how complex, will just run as is, well that’s a bit naive. ColdFusion is indeed Java under the hood, which is how users have gotten it to run on all sorts of platforms that we don’t officially support. But officially supported is something else, it means thoroughly testing with every possible combination of OS revisions and JREs and J2EE servers and HTTP servers and database drivers and more, and yes, there is indeed a cost involved. But we’ve been through this before, and I am wasting time again. So, feel free to see it as you see fit.
    — Ben

  12. Ben and Michael, being an ex-Java junkie I can tell you that we had our own special variation of the Java mantra, ‘Write once, run everywhere’. That mantra was ‘Write once, debug everywhere’. We found very much that Java running on one OS worked very differently than on another OS, and that especially includes file management and threading, two areas which would directly impact making CFMX work in all the sundry Java ports across various OS and OS flavors.
    Also, do remember that Mac OS X is NOT a linux or UNIX port. It’s closest neighbor is BSD. Which means engineering a port is not untrivial. In fact, moving a Java app over to BSD that needs to handle detailed threading the way that app servers do is a lot of work.
    Sure, according to Sun should compile well, but ever notice that every OS linux flavor of any major Java app (say… Eclipse for example) has its own binary set?
    This kind of annoying nonsense is part why I left Java.

  13. Daniel: On the one hand I agree with you totally, which is why the "ColdFusion runs everywhere claim" seems disingenuous. On the other, CFMX7 already ran under OS X on PowerPC.
    But since Apple made the shift to Intel, you can no longer buy PPC systems, including XServes. There is, however, a rather lengthy set of CFMX7 on Intel instructions floating around that basically boils down to installing CF in a certain way and then recompiling the Apache connectors. Do so, and it’s reported that CFMX7 will run under OS X just fine (thought that’s an unsupported configuration).
    Which is the other half of the issue. It already ran under OS X (BSD/Mach) and apparently still does so under the right conditions. But rather than fix the installer and connector (which they’d eventually have to do anyway) and ship an update, they’ve effectively abandoned it until Scorpio (MX8) ships.
    But thanks for the insights.

  14. I have read many comments about CF x OS, but I´d like to consider performance.
    We´ve read several articles about Coldfusion Performance, JVM Tuning and so on. So, if you just change the JVM Garbage Collector, Coldfusion can behaves differently, it´s worth to say that if you swap the Operational System Coldfusion can behave differently, too. Even because different OSs can give you different options to tuning.
    I think there are Operational Systems where performance problems tend to ocurr earlier ou later.
    Personally I´d like to see a Coldfusion´s Performance Benchmark with Linux, Solaris and Windows
    Another interisting thing to think is that few years ago, in the Macromedia´s Age, it´s Coldfusion Servers were Solaris. So, what did make Macromedia choose Solaris?

  15. Michael,
    In our experience, those lengthy CFMX install instructions for Intel Macs work some of the time. I got it working on one machine, and then not on another, even though I thought they had identical configurations. Its a pain to get working, and to me not worth the hassle. Especially since it is unsupported.
    In the meantime, since you are running Intel Mac, might I not just suggest Bootcamp until Scorpio comes out? Thats what I tell co-workers who refuse to just connect to our UNIX and Linux servers which host the dev servers here. That works for me from on-site or off-site.
    Finally, I think ‘abandoned’ is the wrong word. Adobe never ‘supported’ Intel Mac for CF, so how can they abandon it? I can tell you that our PowerPC Mac staff have no problems with running CF. So Adobe has abandoned nothing, just refused to spend a lot of expensive engineering time on a project that would be rendered obsolete when in a short time Scorpio would be released. Makes sense to me.

  16. Daniel: As I said, if they’re going to support OS X with Scorpio, then at some point they would have to spend the "expensive engineering time" needed anyway. Since the changes to Scorpio seem to be mostly new features and additions to support flash and ajax, I doubt that those efforts, especially in things like the Apache connector, would be rendered obsolete.
    And assuming Scorpio is released this summer as rumored, it will have been two years since the Intel announcement. Forgive me, but that’s not exactly a short period of time in anyone’s book.
    Moving on, Boot Camp isn’t really a good development option because of the rebooting and corresponding workflow issues, nor is it suitable for a production environment. But there is another good option for development. Two actually.

  17. For me it is Windows os for coldfusion server.
    Now I use windows 2000/windows 2003.
    I think those os is strong for normal and It’s easy to install and configure with windows servers, intergrates with IIS.
    And DB system i like to use ms sql server.

Leave a Reply to Mark Mazelin Cancel reply