|
Since many servers are configured differently it's not really possible to follow any specific order when learning about server administration.
Learning system administration takes hundreds of hours of hands on experience; it is not a "quick read". There is no fast track to becoming a system administrator, and there is no "reading list" that I'm aware of. You can take classes (brick & mortar or online), read many books & articles, etc but you still need hands on experience. Always learn from your mistakes (there will be many; we've all made them), and always make backups of your system and even any config file you're going to mess with. No exceptions.
The very first thing you need to do is determine what you want/need your server to do and learn a general overview of how that process works. If you don't understand the flow/path of how things work then you can't figure out what will or won't work for you at one of the many stops along the way.
Below are some of the important items you need to consider; this list in not complete by any means: - if you're going to use control panel software then you need to pick one (too many to paid & free options to list), learn how to use it and learn basic Linux command line management. Remember that it's almost impossible to remove control panel software after you've installed it. You'll need to start with a clean installation to try another one or to run your server without one. - if you're not going to use control panel software you need to learn basic & intermediate Linux command line management.
- if you're going to be running one of the popular CMS packages, frameworks, forums, etc then you need to determine what the requirements are for your package(s) of choice and learn about them.
- if you're using Apache, nginx, lighttpd or something else as your web server software then you need to learn basic management & configuration for Apache, nginx, lighttpd or something else. - if you're using a database like MySQL, MarinaDB, Postgres, Mongo, etc then you need to learn basic management & configuration for MySQL, MarinaDB, Postgres, Mongo, etc. - if your website(s) use Ruby, PHP, Python, Go or something else then you need to learn how your platform of choice interacts with your web server software (eg, Apache, nginx, lighttpd, etc).
- if you're hosting email then you need to pick an MTA (eg, Postfix, qmail, Exim, sendmail, etc) and a delivery agent (Dovecot, Courier, etc). You may even need to pick webmail software (Roundcube, Squirrel Mail, Horde, ATMail, etc).
- if you use one of the hundreds of other Linux utilities or packages then you need to learn how they work, how they interact with your configuration and how to manage & configure them.
Some of these choices are made for you if you choose a CMS, framework, forum, etc. That just removes the complexity of making choices and does not remove the necessity to learn about what it takes to manage one of those options. Remember, you're not "running a website." You're "running a server that you website(s) run on." There is a difference if you actually intend to be a system administrator.
|