-1

For the past 6 or 8 months I've been working a lot with .NET. I've learned about web services (though I'm no expert) and recently I've developed a strong interest in web servers and I really want to set up my own. I have an old desktop computer with Windows Server 2008 running, but I live in a dorm and don't have a static IP. I know there are solutions for that, but I want to better understand what it is I am doing first. What I would like to set up is a multi-purpose server that I can use to host websites/android-apps.

I've heard that LAMP servers are more customizable(hence, usually more efficient) than Windows/IIS servers. Is this true? Since Apache is so ubiquitous, I really would like to learn more about how it works, and really learn how to use it. The only thing that makes me nervous about taking the LAMP route is the command-line(I'm 19 and was raised on GUIs). I've worked with the unix command-line before, and I'm comfortable with basic commands/filesystem navigation, but configuring something like a web server from a command-line makes me go all deer-in-headlightsy. I can get free copies of almost any piece of Microsoft software(gotta love being a student), but I don't want to sacrifice my understanding of my web server solely in exchange for a GUI.

Any suggestions on what route to take? My concern with going Windows is that I would never really understand web servers because everything would always be encapsulated and simplified for me. I also want to know what goes into an awesome and efficient server. Any suggestions/books/resource recommendations?

Jcox92
  • 11
  • 1
  • I just realized that this is pretty vague and scatter-brained. This should probably get closed, but if you have any thoughts or personal experiences I'd love to hear them! – Jcox92 Nov 24 '11 at 21:26
  • You should improve you question via edits to better fit with the [scope](http://serverfault.com/faq) of this site so it isn't closed... –  Nov 24 '11 at 22:20

4 Answers4

2

You want to setup a webserver? Do it. It doesn't have to be a year long study, you can have IIS running in a few minutes, and a Linux install with Apache config in a virtual machine in an hour or two.

Configuring Apache from command line roughly means "yum install apache" followed by "use a text editor to edit /etc/httpd/httpd.conf" (Linux distribution specific). It's not a huge chain of console commands to make lots of settings changes.

I've heard that LAMP servers are more customizable (hence, usually more efficient)

That doesn't follow. More customizable, yes, more efficient, completely depends on what you mean by "efficient". The P in LAMP normally refers to "PHP, Perl, Python, (Ruby)" and you'll be up against some arguing if you claim they are more efficient than IIS/ASP.Net.

If you want a lightweight (fast. "efficient"?) webserver, nginx would be more worth a look.

Any suggestions on what route to take? My concern with going Windows is that I would never really understand web servers because everything would always be encapsulated and simplified for me.

What, nobody knows how IIS works?

I also want to know what goes into an awesome and efficient server.

StackOverflow (Serverfault.com and friends) runs on Windows/ASP.Net/SQL Server, and there have been interesting posts on how they do it around the web (e.g. http://highscalability.com/blog/2009/8/5/stack-overflow-architecture.html )

TessellatingHeckler
  • 5,676
  • 3
  • 25
  • 44
  • Thanks for the tips. Yea I listened to the podcast that Jeff and Joel did a couple months back on that. Cool stuff! – Jcox92 Nov 25 '11 at 06:15
2

Your choice of platform (Windows IIS, or Linux and Apache) is largely dictated by your requirements. Right now, your requirements are basically non-existent as you're just setting up a web server to play around with. Pick the technology stack that will be most relevant to your long term goals (and since you've done work with .NET it is probably going Windows IIS) and use it, dig into it and learn it.

There's nothing about using a LAMP stack that will inherently turn you into a super-admin (maybe a super-admin with regards to LAMP...), nor is there any thing inherent about using a IIS that will make you "never really understand web servers because everything would always be encapsulated and simplified for me".

How much you want to learn and how well you want to understand a given technology is largely dictated by your interest and motivation, not by the technology itself.

  • Yea the more I think about it, I think IIS will be a good place to start. Thanks for the advice. I appreciate it! – Jcox92 Nov 25 '11 at 06:13
0

Depending on the level of understanding you are looking for there are several ways around this.

  • For fully in-depth understanding, dig through the code. You obviously need some serious skills to be able to do such thing.

  • Otherwise, the best way to learn is to read and play around. Set up webistes in different configurations. Offer to host some friend's web site for free (just make sure they know it's experimental), host some of your own sites. Try different features. Reads the online docs. Grab a random book at the library on the topic to read on the commute.

Also, Windows web server also have some pretty advanced features. Thinking that LAMP is necessarily more customizable by a large margin is not always true. I'm a Linux person myself but I have seen Windows people do pretty advanced things with IIS. Having a GUI kills the 1337-command-line-mad-skills impression but remember that it may only be an impression.

Just as an example, AFAIK the Stack Exchange network (so this site included) is run on Windows web servers. That goes to show that you can do great things with Windows.

Antoine Benkemoun
  • 7,314
  • 3
  • 41
  • 60
-2

If you learn and use LAMP, you will understand various technologies better than that of learning Windows + IIS.

Sachin Divekar
  • 2,445
  • 2
  • 20
  • 23
  • -1. "Extraordinary claims require extraordinary evidence"... Sources? Justification? –  Nov 24 '11 at 22:02
  • IMHO this is not any extraordinary claim. I can justify it. LAMP is stack of Free and Open Source Softwares. So there are some benefits over proprietary softwares in context of understanding technologies. The major one is **no black box**, one can learn internals and better community. I am sorry I can not present any proof for this. I have learnt it from experience. – Sachin Divekar Nov 24 '11 at 22:27