I (as this title implies) am very new to this server configuration stuff. I have recently been pushed to learn how to configure developing/production environments. My history with actual server/network configuration is limited to programming. I am proficient with PHP/MySQL/JavaScript.
I am picking up on server-related stuff at a fast pace and jumping into some rather complicated stuff.
I executed my first LAMP install (on Ubuntu) about a month ago and I have...
- successfully installed/configured Apache. This includes setting up virtual hosting, setting up folder permissions. My understanding of Apache is decent. I'd still like to get into mod_rewrite more...
- Successfully installed/configured Postfix. I had a bit of help with this one from my partner - who is also not all that experienced in this realm. I followed this tutorial pretty much exactly. I have elaborated on this tutorial a bit, in that I am utilizing an SMTP relay through Gmail.
- Successfully installed/configured OpenSSL. (via the Ubuntu community wiki tutorial). This was a bit less challenging and more brief than Postfix... But my server can now generate and validate certificates for itself, in addition to using a third party authority to validate certificates.
- A decent base of using the command-line. SSH'ing, vi, pico, some directory/file making junk. and other little odds and ends. (perhaps a nice cheat sheet would help?)
Any other server-admin-related processes are slipping my mind right now, but they are probably very minor.
I should mention that I will be specializing in Linux based (likely Ubuntu) servers via Amazon EC2. This will not be my career path - just a temporary utility. I will personally be focusing on the web-based application end of development. I figure I can't go wrong learning how to configure my environment... right?
I am a bit concerned though, as I have no "formal" education in this subject matter (or really in any web-related subject). I rely heavily on forums or Q&A sites such as this one, to ensure my education is complete.
Large or small. It makes no difference to me. It's my understanding that everyone has those 'holy crap, I wish I knew about this a while ago!' moments.
The problem I'm facing is I lack a base. I am confident that I can learn how to do most of the moderate and some advanced stuff.
Short of repetition and just immersing myself in material. What do I need to know?
Which concepts do I need to know in-and-out?
For example: security essentials, how to set up a decent system to securely FTP (file transfer, whatever), filesystem organization, which Linux distribution should I use.
Thanks - any input or direction given is greatly appreciated!
Sorry if this is a bit general and vague.
EDIT: I will be focusing on Internet-based applications that will most definitely be using some kind of SQL database.