What is the best way to start learning Linux/Apache server administration?
I am a web developer using LAMP platform.
Answer
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.
No comments:
Post a Comment