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.
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 httpd.apache.org 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.
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 answers, posting an answer now requires 10 reputation on this site.
Would you like to answer one of these unanswered questions instead?