|Learning Linux basics|
I am currently on shared hosting but at some point want to upgrade to a dedicated Linux server. However, I have NO idea how to manage a sever and wouldn't know where to start?!?
Therefore, I was wondering, where should I start if I want to learn about server management and all the associated jargon? I have tried looking for courses / books but can't find anything.
Managing a linux server is so complex, there's no one way to learn it all. Apache alone is full of complexities that being really good at it is easily a full time job. Knowing how to ad domains and restart it could be enough to get you going, but what if you want to ad gzip'ed output? then there's mail. and security, which involves running process, and updates, and patching, and monitoring, and so on.
Try switching your desktop over to linux and force yourself to run on it for a while. That'll definitely give you a low risk but very hot entry into linux management. Install a dual boot system, but generally try to stick to linux instead of MS. Then you'll have to figure out what's going on when your numlock key doesn't go on, or your sound doesn't work, or how to set up your network connection, etc.
You can then setup apache et al right on your desktop. Again, low risk way to figure out how to do it.
From there, you can likely start admining your own server - but....find a linux consultant you can count on. I admin my own servers, but have a local company that I still use about once a year.
Short answer is, there's no easy answer and no one place. It's just too complex and too many things involved in a 'linux server'. Jump in and figure it out via hands on experience. Also, make backups and don't do anything you don't know how to undo :).
|Try switching your desktop over to linux and force yourself to run on it for a while. |
I concur. Trying to learn on your web host is a formula for disaster.
|Install a dual boot system |
Computers are cheap. Or you have have an old one laying around that may be suitable. If you also have an extra monitor, it can be useful to run Windows and Linux side-by-side. I do that, and use a free program called Synergy for seemless keyboard/mouse integration.
I learnt on a virtual server where most functions could be performed through a control panel.
More complex tasks had to be performed through telnet or ssh.
This situation gives a more realistic impression of a linux server but with patching dealt with by tech support.
Linux on a home computer with a desktop is not the same as a server with no screen on the end of a network.
|Linux on a home computer with a desktop is not the same as a server with no screen on the end of a network |
True, but of course there's nothing stopping you from working on a local Linux system in a terminal window in the GUI, or over a telnet or SSH connection from your PC. No, you won't experience network lag, but that's a good thing. :)
It's useful to also learn to use a Linux GUI, and learn to use Linux locally to control your remote site. A local Linux system provides you with a GREAT DEAL more functionality for working with a remote Linux system than does Windows. It is a much more seamless integration.
My biggest problems have been with configuring the web server software (especially Apache, lighttpd is somewhat simpler), rather than with configuring Linux.
I think starting with a Linux desktop AND forcing yourself to do admin tasks in a terminal window is a good idea.
After that, you could consider getting a Linux virtual server. They are cheap enough to have one to practice on. I am currently paying £15/month for a user mode linux virtual server. It gives me the same level of control as with a dedicated server, apart from over the initial install of the OS.
Finally you have to pick a Linux distro. I would suggest Ubuntu on the desktop and Debian on the server. They are very similar (Ubuntu is a variant of Debian).
My biggest problems have been with configuring the web server software (especially Apache, lighttpd is somewhat simpler), rather than with configuring Linux.
This is a very pertinent point, and therein lies the root of most people's problems. I can't remember the last time I actually touched anything to actually do with 'linux' as an operating system on my servers. The problem is administering apache. or some library function. Or mail. or the firewall. or some other random server application. General linux admin doesn't come into play, and seems to only involve things like checking disk space and watching processes occassionally.
That's also why it's difficult to get a decent answer to the OP's question.
Try debian, or better still, Ubuntu - installing, upgrading, and maintaining the system are all much easier. There are a bunch of online docs, blogs and resources too.
For general server admin such as mail or Apache config or even spam assasin I find webmin hard to beat along with ssh of course.
You can also use ISPConfig it is quite good and easy to use free CP :)
Don't take a leaf out of my book by just going ahead and ordering a server, thinking 'how hard can it really be'!
I don't know whether to just laugh or cry at the moment lol. I've spent a week messing around and have got no where for my efforts, it's sodding impossible to setup.
I'm running CP+ interface, so if anybody has any good resources that I should check out I'd appreciate it forever - this is the other thing, what little help you can find on the web requires a level of knowledge of Linux far far above my head.
I'm back off to a dark corner now to sit in a ball and cry like a baby lol.
I remeber that "in over your head" feeling very well. You get access to your brand new server and it rapidly dawns on you how much work you have to do and how little you really know about server setup and management.
It took over a month before I was happy to move any live sites off my virtual server to my new dedicated.
I don't regret the move at all though as being in full control is very rewarding.
One thing is sure it takes time - but anything takes time - the reward of full control is a BLESS!
Depending on your project of course I'd say 5 work days playing around with your dedicated machine at home (preferably a used old computer) would be enough untill you can move on to your own dedicated server hosted somewhere.
|don't do anything you don't know how to undo |
The trouble is you don't always know in advance. I was applying some performance tweaks to a few configuration files on my last Kubuntu install and wound up with a totally unusable system due to a "Read-only filesystem" error of some kind. Result is that I can't edit the config files to be the way they were before. Nobody seems to know how to help me so I think I'm going to have to start clean...
Why not get managed hosting instead of a dedicated server? You'll pay more, but if your website is worth anything then it will be more than worth it. I can work my way around Linux, even install and configure Apache, but there's no amount of money worth being the guy that gets the call at 6am saying "the site's down" and trying to figure out something like I've seen sys admins figure out (e.g. not enough file descriptors). There's a reason sys admins get paid a real salary. And a good managed hosting company will offer support that you can learn from. If you find it's a peice of cake in a few months then get yourself a dedicated server at that time.
If you need a dedicated server, and you aren't already a qualified Linux admin, then get a fully managed dedicated server.
Knowing how to manage Apache, or MySQL, or PHP, or the other major server apps on Linux is only a very small part of managing a live, production level server (and the easiest part). Heck, a good control panel will do that part for you. There are third-party Linux server management companies around the net... just Google for 'em, and see what kinds of things they do, and then ask yourself if you're ready to do all of those things yourself, 24/7. If you aren't (and if you don't already know all of those things, then you really aren't), then you need to either find a managed server, or hire a third-party service.
Heck, I just went through this myself. I've owned and managed colo servers since 1999, but since they were always Windows server boxes, I did the management myself (except hands-on things I had to use the datacenter for). But I recently decided to switch to Linux, and even though I've managed servers for 8 years, I didn't hesitate to hire fully-managed service to go along with my colo box.
You should still learn all you can about Linux server management (I'm doing that myself), but don't trust your business security and uptime to how fast you can look something up in a book and fix it.
My $.02 :)
<add/> Oh, and to answer your actual question (rather than just give my all-knowing, wise advice ;) there is a good thread on another forum where the topic is "Which book for an admin class?" You could Google for it, but here are some of the suggested books:
Linux in a Nutshell
Linux Administration Handbook, Second Edition
Linux Server Hacks
Linux Server Hacks, Volume Two
The Practice of System and Network Administration
I'm off to check into those myself! :)
[edited by: Bluesplinter at 6:07 pm (utc) on May 11, 2007]
Get your dedicated server from a NOC that offers Linux server management software. CPanel/WHM is easily the most comprehensive and user friendly.
You will then be able to control virtually everything you need to control without knowing anything about Linux.
I recommend getting a managed server - one where you're the only person using it, but the hosting service will install updates and upgrades and generally look after things for you.
This may restrict what you can do a bit - they will probably only support certain distributions and configurations - but unless you want real bleeding-edge stuff it shouldn't constrain you much at all.
I'm a professional Linux system administrator myself, but if my web sites were big enough to warrant a dedicated server I'd probably still get someone else to manage it for me. What happens if there's a major security bug found while I'm away for two months, for example?
I was in your position. My websites were getting so popular that I needed to move to a dedicated server, but not popular enough that I could afford a managed server.
I found a dedicated host that had a nice control panel that let me add users, domain names, etc, so I could do routine tasks.
Then you just learn the rest through Google. If you know how to connect through SSH, you'll be able to stumble your way through completing various tasks. Each task you complete adds a little more to your skill level.
There are terrifying times when you do something and Apache won't restart, but a good control panel will have scripts you run to rebuild Apache and get it working again.
The problem with books, or installing a local Linux environment is that you don't know where to start. There are just too many options, too many configurations, too much to learn. You feel like you're spinning your wheels.
What you might want to do is find a good host that will provide services on an hourly basis. If you bork your server, they can help you get it back running.
But there's nothing like a hangin' at dawn to focus a man's mind. Start down this road, and you'll learn Linux... and there's no greater power than knowledge and self reliance.
I operate almost half a dozen Linux server. My advice would be to get Redhat/Cpanel/WHM combo. Start off with a virtual server and move to a real one eventually. Don't go with ubuntu and other disto, as they can easily break other softwares. Pay the money for Redhat/Cpanel/WHM, it saves you money on the long run. Even after all these years, I still have to ask other people when things goes wrong. But there is lot of flexibly in Linux server so its worth it.
I would concur with the general feeling, that if you know nothing to start, don't try to run a linux production box by yourself.
Start with a managed service and go from there.
Even though I have good linux understanding and can do a lot from the command line, there are still some things that I need the hosting company to do (kernel upgrades, trouble shooting difficult issues).
Also consider that it takes a lot of time and what is your time worth vrs doing other things for your business.
i am in the same boat as many of the above: the time came one day when i had to learn and we couldn't afford managed services (back then managed services weren't as cheap).
to learn, the most important thing imo is to set up a home pc (any old box) with exactly the same distro and version that you want to use online. after you have installed this distro take away the monitor and only connect via ssh (i use putty) - this puts you in exactly the same mode as when remotely connecting to the server.
the rest is playing and practice - it won't take long before you get confident enough to move to a live server. blue splinter gave some excellent book tips - nearly all those books are within arm's length of my desk (especially the server hacks ones).
just take the plunge! (and learn vim ;)
From what i've seen this thread mostly talks about software. However, don't forget that with most dedicated servers, you're responsible for "lower level" hardware issues as well. If a disk breaks, most service providers will just exchange the broken disk with a new (empty) one. You are responsible for monitoring the box, doing file system backups, checking for signs of disc failure, etc.
So, switching from (whatever kind of) managed service to a dedicated server involves not just software, but also planning for hardware outages, file backup infrastructure, disaster recovery (complete data loss), etc..
It gets even worse when you just rent rack space, and build your own servers. Think about spare components, insurance (imagine your servers power supply blows up, and breaks the server below your box, too), etc.
[i'm managing 4 servers, and currently trying to remotely fix a b0rken disc in a RAID 5 array.. ]
you nees serveral server to manage a linux server apache, mysql ... the hardest server will be the mailserver, like postfix or sendmail. i setup server since 8 years and still i am learning new servers like qmail... if you need a server for "normal" websites,use plesk or webmin. you need to learn shell to, if you have your own configured linux server, for your personal setup.
if you realy wants to laern linux do it like i did.
take a old pc, search a howto and install the server. setup an apache(its really simple),setup mysql (even simpler) and proftpd ,now you have a working webserver!
next setup would be a mailserver. postfix,sendmail or qmail. all are very COMPLEX (mailfilter, smap filter open relay...)
Unless the latest version is an astronomic improvement over previous versions, stay FAR away from Plesk.
I use a well known host on a dedicated server (which is really a managed account on a dedicated server) for our website.
For sending out our monthly newsletter I needed an SMTP I could trust - our primary web host will not relay 2,000 emails and I do not trust our local ISP as they get blacklisted. I set up a VPS which uses Centos/Cpanel/WHM primarily to be a dedicated SMTP server. This VPS has let me explore alternate provider as a backup (you never know).
The host I selected for the VPS has options for upgrades for increased memory or disk space and includes options for sharing the managed server with one other account or going solo.
This type of option lets you start exploring managing a server using CPanel for $50 a month and moving to an account with more resources or their dedicated server when you are confident and more experienced.
Setting up a home server I think is great advice. See if you can locate an extra computer that is lying around either in a family members home or office. You may even have one of your own extra machines available.
I picked up an older AMD system with a 60 GB hard drive in it from a family member. I had some memory lying around as well is an additional network card. I downloaded Ubuntu and Fedora core 6 to try them both out. I ended up going with Fedora core 6 with an installation of Webmin. I put the machine in my closet and tried to only access it either via SSH, FTP, or Webmin. I still wouldn't set up my own dedicated server in a place I didn't have physical access to it but I'm a much more comfortable Linux user today and have a much greater understanding as to what the NOCs are doing when my managed servers require upgrades or patches.
I can tell you one thing not to do and that is to set up your machine using the username "root" and the password "123456". I did that lazily when doing my first install along with the box hooked up to the Internet. Within 24 hours the server was hacked, someone had changed passwords, and new user accounts were being installed on the machine. I know some people will find it funny but it was a great lesson for me as to how quickly security can be breached.
I faced the same problem a few years ago. I installed Webmin and it allowed me to manage my websites effectively whilst I picked up Linux. Webmin is free, Plesk and Cpanel have hefty charges.
I guess I will be the voice of dissent here. I as in that position a few years ago. I had done SOME work on my site, some basic Perl and such, and, "Oh would you install this module for me" to the ISP. Other than that, NO LINUX or Apache experience at all.
So when my ISP said I needed to move to a Dedicated, they said they would be there for me. And they were, and have been. I listened to their recommendations, and installed FreeBSD and Apache, because that is what they ran. But I installed it. I screwed it up, they showed me where I screwed up, and I reinstalled it. Basically, I learned by doing, but with their supervision. I pretty much copied therir configuration when I started... as I learned more of what I needed, I went my own way. As I wanted more, I learned more and more how to do it on my own (Well, my own, with Googles help!) Now, it has been 6 months or more since I even had to talk to a tech there.
Got a couple Unix/FreeBSD books along the way, and that helps, too.
But I would just find a good, friendly and helpful local ISP that will help you along. It is possible to learn.... but you have to experience some before you even know what you want or need.
BTW, I have found Webmin to be very helpful... but it is very powerful, too. LOCK THAT PUPPY DOWN HARD!