Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is the best way to start learning Linux/Apache server administration? I am a web developer using LAMP platform.


locked by sysadmin1138 Feb 8 '12 at 20:59

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

You might want to give a rough idea of what you already know. Do you know *nix basics? Command line, directory structure, vim or emacs? Its not clear if you don't know where to start with Apache on Linux or if you don't know where to start with Apache and Linux – Kyle Brandt Jul 17 '09 at 11:34
up vote 3 down vote accepted

Install a linux distro on a real box or a VM and start administering.

I'd either go with Redhat/Centos/Fedora if you want a Redhat based solution or pure Debian (as opposed to say Ubuntu) if you want a Debian based solutions. I believe these are the most common server distros, so are probably the ones to learn on. Make sure you install the apache documentation package regardsless of which distro you go with.

The apache site has a lot of good docco and recipes for common scenarios, e.g. https, name based virtual hosts etc.

Then start installing your php apps and running them.

I suggest that you use revisions control for your config files(I prefer RCS for config files as is is always available no matter what state the box is in regards networking). This makes it really easy to prevent if a change does not do quite what you hoped and gives you an easy way to recall your changes, what you have tired etc.

I'd also suggest you join appropriate mailing lists. I'm not sure what lists apache has, but most projects have something like a user list and an announce or security list. For linux I'd find a local user group and join their mailing list. The idea here is that you will see what other people are doing and how they approach stuff, thereby get an idea of what the capabilities are, and of course you'll be able to ask specific questions when you have problems.

This gives you a forum where you can ask general questions and ususally get replies reasonably quickly.

Also make use of IRC when you have questions.

Whenever people ask about learning linux I give this as part of my answer: Read the man pages. As many of them as possible. I suggest you list /sbin/ /bin /usr/sbin and /usr/bin and read the man page for each command. You don;t have to learn it by heart but by going through the binary directories you get a chance to see what commands are available - some of them you won't be able to guess what they do, but other you'll probably be able to guess what they do, which helps you understand what commands are available on the box. By reading or at least skimming the man pages for those commands you will at least have a vague idea on what they do. Then when you say " I want to add another IP so I can use SSL on a second VirtualServer" you'll know there is a command called ifconfig and it had something to do with configuring networks interfaces.

For books I'd suggest either Linux or unix in a nutshell as the linux/unix ref. I don't have a specific apache ref, I pretty much taught myself what I know about apache using the above techniques.


To do it. :)

This is absolutely true. Setup a LAMP server with whatever you're likely to want in production at home, get it all working, and then play around with adding websites. – Cian Jul 17 '09 at 12:19

I think the best way is to play...Or look for tutorials on what sort of thing you would like to be able to do...for example named or ip based virtual hosts...

It all comes down to what you would like to achieve

There are many guides around for installing a basic lamp server...I, like most people on here, would be able to post you some links for installation and for configuring the parts you require if that would help


I know you asked about linux, but you may also want to wet your feet with BSD - maybe FreeBSD. Remember, a lot of distros have pretty bad security defaults. Before you make your play server publicly accessible, remember setup a firewall and close any security holes.

If you really want a crash course in linux, try Gentoo. I would not use it for a server, but it is great for learning. Actually, I can't recommend this more.


protected by Iain Feb 8 '12 at 20:59

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.