Running a web site
January 19, 2006 10:13 AM   Subscribe

I would like to run a web server and more. Any assistance or advice out there?

I've done some research and can follow web tutorials and step-by-step instructions, but would also like to hear from this knowledgeable group.

I would like to develop web page(s) and have forms to collect data and other fancy web design features. What do I need to do? I know I need something like MySQL, to be able to write scripting languages...what else? Bonus: I need to do this free of cost. :)

You can email me privately, too. My email is in my profile. Thanks!
posted by mic stand to Computers & Internet (17 answers total)
It's a big question. I'll just make a few notes...

You don't need mysql to write scripting languages -- mysql is a database, just a program for managing stored data.

For webservers I recommend apache. It's ubiquitous, free, very common, supports all kinds of stuff.

For data base server (if you really need one) either mysql or postgres are common, decent, free databases.

To write scripts you need a scripting language. There are way too many to mention them all, but apache supports perl, python, php, tcl, ruby and probably many, many more. The scripting language is usually something that works together with your web server. For apache, for example, you would either load the scripting language as a "module" or have the web server execute the script shell via plain CGI.

There are probably some decent books out there. I would even guess that there are probably books that are specific to a particular database/webserver/scripting language combo, like "How to write web apps using mysql, php and apache". It's been a long time since I've looked at books like these so I don't have a particular recommendation. O'Reilly books are well thought of and usually worth the money.
posted by RustyBrooks at 10:29 AM on January 19, 2006

First off, don't. Managing servers is a full-time profession for a reason. You're going to be much better off using a hosting provider of some sort.

If you insist on going at this on your own, here's what you need:

1. You want this to be free, which means the server is going to need to run Linux. So you'd better start reading up on everything Linux - installing, configuring, securing, etc. The time frame to learn what you need in order to run and manage your own web server will be judged in months, by the way.
2. You will need to run the Apache server, so once you're a Linux expert, you will need to learn all about Apache - set up, configuration, security, etc. Again, plan on a few months at least for this part.
3. Keeping everything free means that yes, you will need to learn MySQL and PHP. Compared to becoming a Linux expert, these are much lower learning curves. (I'm assuming that you already have the HTML/CSS background for the design side of things...)

One more note, here. In order to run your own server, you will need a static IP address from your ISP, and of course lots of bandwidth. Neither of those things are going to make your ISP happy - many actually have clauses in their TOS that prohibit you from running a server unless you have a business account, so you should definitely check that out, too.
posted by robhuddles at 10:31 AM on January 19, 2006

You should run IIS.
posted by cellphone at 10:35 AM on January 19, 2006

The security woes you're going to get are probably going to make you feel that it's not worth it. Everyone and their dog will have hacked your server within a couple of hours and will be using it to run spambots, etc. If you really want to do this instead of going to a hosting provider, add security to the list of things you're going to have to learn about. Or at least learn how to monitor your server so you can see when the breaches start to happen. (I had to work on rephrasing this answer so it wasn't just "by god, don't do it!")
posted by matildaben at 10:38 AM on January 19, 2006

I have a felling cellphone is trolling.

There are several good hosting howtos out there. My recommendation is Debian. It's solid as a rock and apt makes life so much easier.

Here's a good tutorial for a Linux/Hosting newbie.

Perfect Setup: Debian - Sarge
posted by blueplasticfish at 10:40 AM on January 19, 2006

Your best bet is to learn by doing -- since you're not planning on doing this professionally (afaik) you don't need to learn *everything*, just the stuff you need in order to get the functionality you want. If you already have DSL or the like, here's the steps I would take ...

1. Set up DyDNS to point to your computer.
2. Set up a small webserver (of any sort! start with something easy. You want to get to apache, but it's going to frustrate you if you jump in).
3. Make a small "Hello World" web page.
4. Set up a FTP server on your computer and get it working.
5. Not sure that DyDNS allows for MX records, but if it does, set up a mail server on your computer and get it working.

6. Not crazy yet? Ok, now get another box and install linux on it. If you're not already familar with linux, i'd choose Ubuntu, because its install process is fairly simple. Other, more experienced linux admins might recommend something else.
7. Ubuntu will have an option that should install most of the services you need for a webserver automatically. Install these and get them working.
8. Linux will let you start installing services that would otherwise be slightly more complex to set up on a workstation. Set up PHP and MySQL, and start learning how to work with them.
9. At this point you should know just enough to be dangerous, and be able to muddle your way through a lot of stuff. Google absolutely everything -- cut and paste error messages, whatever. learn to use google well, because it should answer 95% of your questions. Don't forget about google groups!
posted by fishfucker at 10:41 AM on January 19, 2006

Also, I should say that my advice is based upon the idea that you want to learn and do this as a hobby. If you just want webspace, then yes, as others are saying, it's much easier to just pay someone else to host you.

however, it's more fun to DIY, if you like that kind of thing.
posted by fishfucker at 10:43 AM on January 19, 2006

Response by poster: Thank you all, thusfar. It is in fact a hobby-related interest. I would imagine you may be right, robhuddles, my ISP provides dynamic IP. I will study up based on all of your recommendations and see what really seems to fit the direction I wish to go.
posted by mic stand at 10:50 AM on January 19, 2006

Why do you want to do this? If this isn't for public use (i.e. you just want to learn how stuff works) and you're using Windows then you can get something like easyphp and have Apache (web host) PHP (scripting) and MySQL (database) setup right away. If you're intending to make this generally accessible, you're going to need an open-to-the-internet web server, and unless you've already got experience with this sort of thing, you are not going to be able to make it secure. Just get hosting from somewhere else. It's $10/mo. for php/mysql hosting and you won't have to worry about any of the setup.

As for building web applications, which is what it sounds like you eventually want to do, RustyBrooks is right -- get a(n O'Reilly) book that focuses on building web applications with the tools you decide to use (php/mysql, ruby, whatever). I learned from this one, which is now pretty outdated, but helped me a lot. Then make lots and lots of things. Practice is the only way to develop a real familiarity.
posted by fidelity at 10:55 AM on January 19, 2006

This is a great tutorial (very detailed) on setting up a web server using Apache and Ubuntu Linux. I may even try this.
posted by KevinSkomsvold at 11:47 AM on January 19, 2006

Correction on the Ubuntu Linux. It's FreeBSD.
posted by KevinSkomsvold at 11:49 AM on January 19, 2006

You don't mention what operating system you might have already used (Windows, Mac OS, Linux) and be most comfortable with. This will have a significant influence on how fast you get up to speed with a web server and building sites. You also don't mention what your ultimate goal might be (securely serving a public website, just a learning exercise for your own gratification, required skills for a job you want)? This, too, is an important consideration.

As a first stab at it:
If you're a Mac person, OS X already comes with Apache on board. There's lots of tutorials online about getting it running and configured how you want, specific to the Mac OS environment, so that's a place to start.
If Linux is your thing, again, your distro of choice probably already has Apache waiting in the wings. Again, lots of info available online, but finding what you want specific to your own goals might involve slightly more complex searches and tutorials might require a deeper knoledge of Linux from the outset.
If you're a Windows sort, there's nothing wrong with IIS (some will say there is and to avoid it like the plague, but that's a discussion for elsewhere - you thought the OS wars were tribal?). Unfortunately, Microsoft don't include IIS with XP Home, you need XP Pro or 2003 server. If you've only got XP Home, you can get a free version of Apache for it, instead

That's just the environment. Building a site for the environment is another huge subject. Your question sounds like you want to do it all. Very few folks can or do, to any professionally acceptable level, anyhow. I'd suggest starting slower and deciding what interests you the most. If you want to build rather than serve and maintain sites, paying a host to present them to the outside world is cheaper and a lot less time consuming in the long run.
posted by normy at 1:40 PM on January 19, 2006

If you're on windows, google for 'WAMP' to get 1-click installers for Apache, MySQL, PHP. You could also look into Ruby (including Ruby-on-rails, a web framework), Python (including many frameworks), etc. There's good tutorials for both of them, which should have you up and running in a few hours.
posted by signal at 1:47 PM on January 19, 2006

MAMP is the Mac equivalent. It doesn't interfere with OS X.
posted by kirkaracha at 1:55 PM on January 19, 2006

If you are a Mac person I can recommend "Nerd Vittles"

It started last February and walks you through Apache, PHP, Dynamic Web addresses, and a bout fifty other things. Step by step hands on projects that will get you all the way up to a voip sytem with all of the bells and whistles.

He isn't really selling anything so you will not get huckstered. Easy to do and very rewarding.

If you are not a Mac person, good luck.
posted by leafwoman at 3:14 PM on January 19, 2006

DSLWebServer saved me a lot of headaches. Detailed, basic, no-nonsense, quite unlike the headaches I'm experiencing now setting up Drupal (and PHP, and MySQL...). So if there's any PHP experts out there :)
posted by goodnewsfortheinsane at 4:19 PM on January 19, 2006

If you end up interested in Ruby on Rails at all, it's hell to install by hand on the mac. I've had good luck with Locomotive, though. Like MAMP, but for Rails.
posted by heresiarch at 5:39 PM on January 19, 2006

« Older Need recommendations on buying a parrot   |   Internet connection monitor Newer »
This thread is closed to new comments.