Hi HN,<p>I was building this app the other day and because I'm a complete cloud server noob I deploy all my apps onto phpfog.com but there really lacking some features essential to my web app so I was really hoping to take the time to learn linux servers.<p>I've used rackspace in the past but nothing more than copying and pasting commands from a tutorial so when it comes to anything beyond the scope of what's in it I become stumped so I really need to learn how to fish in this case.<p>I want to become more acquainted with servers like Centos so does anybody know where I should get started?<p>Thanks a lot
While there are several books to teach you basics of Linux, the best way to learn is to do hands on.<p>- Install Virtual box ( or any other free VM hosts).<p>- Download CentOS.<p>- Set yourself a goal on what you need to achieve - e.g I need to run php version x with apache configured to do x y z tasks.<p>- Install CentOS as a VM ( you could skip these steps and run a cheap VPS as others have suggested) .<p>- Understand the various steps in the installation - Disk partition, Software selection etc. Don't just blindly select anything unless you understand what you are doing.<p>- Figure out what software you need to install to achieve your goal and install it one by one.<p>- Ever time you get struck, if you find some command to fix the issue, don't blindly copy paste it - understand what the issue is and figure out what the command you are trying to run is doing to fix the issue.<p>Once you have everything up and running, destroy the machine and start over with a slightly different goal.<p>Google is your friend! Good luck.
<a href="http://vagrantup.com" rel="nofollow">http://vagrantup.com</a> is a good way to get started on your local machine (without paying a VPS provider). You can install a minimal operating system and build up your stack from there. Because it is completely free, you can recreate your server and really experiment with different operating systems until you feel comfortable to go live.<p>Once you get the hang of running on a virtual machine, use Puppet or Chef to learn how to automatically configure your servers when starting a new VM. This will save you a lot of time setting up your public VPS later.<p>An important difference between your local virtual machine and a VPS is that you will have to take some steps to secure a publically accessible server. Points to take into consideration here are: key vs password based SSH authentication, iptables firewall.<p>I've found the Linode library to be a good source of introductory documentation about setting up a VPS: <a href="http://library.linode.com" rel="nofollow">http://library.linode.com</a>
The Linode Library has a ton of great tutorials that are mostly not Linode-specific, and don't require you to have an account there. They even have LAMP setup guides for both CentOS 5 and 6: <a href="http://library.linode.com/" rel="nofollow">http://library.linode.com/</a>
I don't know what kind of answers are you hoping to get here, but from the way you address the issue, I would say that there is no easy way to this.<p>If you want to learn linux server administration, IMHO the easiest (or at least the one which will <i>make</i> you learn) way is to try and use linux as a desktop for several months.<p>And don't go for something "easy" like ubuntu. Try Slackware, Arch Linux or Gentoo.
This will force you to see what kind of knowledge you need, what kind of problems are common. Things like kernel tweaking, dependency resolving, filesystems, shells, etc.<p>Of course, you can continue to copy/paste from tutorials. It will probably work... to some degree... until things go wrong...
The Slicehost articles are quite good - <a href="http://articles.slicehost.com/" rel="nofollow">http://articles.slicehost.com/</a><p>Linode also has a library - <a href="http://library.linode.com/" rel="nofollow">http://library.linode.com/</a>
Solving a problem is the easiest to learn and retain that knowledge. Get an account in development EC2 which I think is free, or something cheap in the cloud like prgmr.com and build a linux server and learn. Deploy your application manually and solve all the issues you face. Linux is so wide spread these days, there are very little that you can't an answer on the web.<p>I say CentOS or Ubuntu (w/out UI) is a good way to start. Those 2 distributions have many step by step solutions scattered on the web such as stackoveflow and forums posts. Slackware, Arch Linux or Gentoo are great for their target audience. IMHO they provides very little out of box for a noob and it's very easy to get lost in what you can set, break and/or fix. There is nothing more demoralizing that spending 2 days digging around the web for a problem that has numerous answers and you've no idea what everyone is on about.<p>Books are very useful guidelines, but getting your hands dirty is how you'll really learn.
Hi! I teach Linux server administration basics in college, on Centos. I've been thinking about writing an ebook or some sort of guide for other developers to get started with Linux/Centos. Would you care to share what kind of things you'd like to learn? Are you talking about real linux basics, maintaining software, setting up Apache, ... ?
HOWTOs. <a href="http://www.tldp.org/HOWTO/HOWTO-INDEX/index.html" rel="nofollow">http://www.tldp.org/HOWTO/HOWTO-INDEX/index.html</a> <a href="http://www.tldp.org/guides.html" rel="nofollow">http://www.tldp.org/guides.html</a><p>This treasure trove of quick-start guides for newbies enables you to learn a wide variety of software and ways to use the Linux operating system. There are several docs on using Linux, common command line tools, server/network administration, Bash programming guides, set up instructions for server software, and tons more. You will become a Linux ninja by reading and following through with these HOWTOs.
Start with the shell/command line and study its infinite capability. A good place to start would be Zed's site.
<a href="http://cli.learncodethehardway.org" rel="nofollow">http://cli.learncodethehardway.org</a><p>After that follow the advice of kcvv - take notes, rebuild VM's again and again building on your new knowledge.
10 years old now (and that's the 3rd edition), but still a good tome: Essential System Administration from ORA
<a href="http://shop.oreilly.com/product/9780596003432.do" rel="nofollow">http://shop.oreilly.com/product/9780596003432.do</a>
I'd love a modern guide on how to secure a modern webstack.<p>What do I really need to do to secure an EC2 image, or an AppEngine application or a Heroku application?