Table of Contents

Introduction to the webserver Class
Background Info
Course Format & Communication
Reasonable Expectations
Operating System & Platform
Suggestions for the Course

Introduction to the webserver Class Top of Page

Have you ever wondered what's "under the hood" of a working web server? This class takes a "high level" view of the inner workings of a Linux web server from the inside out. Learn how to install, set up, and configure an Apache web server on Linux. Manually configure a publicly accessible web server to serve HTML, Perl, and PHP pages. Manually launch a Rackspace virtual machine, install necessary software, secure the server, configure additional virtual hosts, firewall ports, logs, and other custom elements. Install, configure and use FTP, SSH, and SMTP.

Provided for the course: web accessible notes, exercises, pertinent files and scripts, and references to online documentation. Student requisites: Understanding of HTML, FTP. Linux command line familiarity will be necessary throughout the course. Command line and SSH connection instructions will be provided and may need additional review. A Rackspace account for launching a virtual machine will be necessary. One or more dedicated DNS Hostnames will be necessary for completion of this class.

Background Info Top of Page

This class has been designed to be taken online as well as in a classroom. The information is presented in a sequential manner, with instructions, screenshots, exercises, and Check Points. Once chapter has been completed, an email should be sent to the instructor per the Check Point instructions. Once the requirements stated in the chapter Check Point are met, that section is complete. By completing all the chapters and checkpoints, the student will receive Continuing Education credit for the course.

This class was developed on a Linux platform, and used that platform as the client side machine[1]. Instructions for implementing a Windows desktop as the client side machine are included where applicable. Unfortunately, instructions for using a Mac as the client side machine are not available at this time. Please consider that development of client side Mac alternatives are possible, but are left to the individual at their discretion. In other words, if you want to use a Mac as your desktop, that option is not supported for this class at this time.

Audience Top of Page

The intended target for this class is a person who has been introduced to Linux as well as current web technology. A beginning level of experience - particularly the Linux command line - is assumed. If the student is not familiar with the Linux command line, the Shell, and login, a Linux command line review is provided. In essence, the course will take a novice Linux user and move them toward an intermediate status with the provided instructions and explanations.

If you are familiar with some of the material, and finish it quickly, additional exercises are provided. While these won't be necessary to complete the course, they are provided as an extended set of material if it is desired.

Course Format & Communication Top of Page

This course is presented in a "move at your own pace" format. While it's important to pace yourself such that you can finish in the allotted time, it's important to understand and assimilate the information in each of the sections. Email is the preferred communication medium. I need to receive an initial email from you so we can begin the course. After that, each section will have it's own email thread. PLEASE, keep all communication regarding a particular section within the thread that is dedicated to that section. This helps me keep things straight on my end, as I have many people each at different stages to keep in order.

Reasonable Expectations Top of Page

Upon successful completions of this course, the student will have accomplished the following:

  1. Established a Rackspace account.
  2. Launched a Rackspace virtual machine.
  3. Logged in to the machine via SSH.
  4. Updated, configured, and secured the machine.
  5. Created DNS entries for the machine at the Name Registrar as well as the Rackspace DNS interface.
  6. Installed software on the machine for an Apache web server, FTP access, and other facilities.
  7. Additional exercises are provided for completion by interested students.

Operating System & Platform Top of Page

We will be using CentOS , which is a derivative of the Red Hat operating system. For those familiar with previous versions of these operating systems, there are major changes moving into version 7. These changes include, but are not limited to, a) moving to systemd, b) moving to Grub 2, c) use of firewalld, and d) Apache 2.4 (from Apache 2.2). While these changes will have more impact on programmers and system adminstrators, they have nonetheless forced a completely new approach to this course. The course material that follows incorporates and embraces these changes.

Suggestions for the Course Top of Page

It might be wise to consider how to get the most from this course. Listed below are some suggestions.

  • Begin by looking at the Linux command line review. If you are not familiar with these commands and concepts, take the time to learn them well.
  • Go slow, and read the material and instructions thoroughly.
  • Read and understand the material, the commands given, and well as the screenshots.
  • Work each exercise carefully, and do not move to another exercise or section until completing the current material.
  • Example commands for completing the exercises are given. However, the process will be more thoroughly learned and understood if the student will actually type the commands instead of using "copy and paste".
  • Read the supporting material as indicated.
  • Email the instructor when problems arise.
  • If you finish the course earlier than expected, work the additional exercises.
[Note] Domain Name

Throughout this course you will see the terms <domain-name> & or Do not type these in to your system directly, and do not use them as your actual domain name. You must substitute your own domain name where you see either of these indicators.

[Important] Back up Config Files Before Editing Them

There are a couple of rules that a system administrator must live by. On is that his/her job is only as secure as the most recent backup. Another is that he/she should never get into a position that they can't get out of. That means backing up configuration files before editing them. This command will prove useful more than can be imagined when a configuration goes South and the system fails to behave properly: `cat <config-file> > <config-file.bak>`. Substitute the name of the config file in question for <config-file>.

[1] If you do not understand what this means, it's important to get it clarified. Research (via google) "Linux platform". Send me an email if the meaning of "Linux platform" remains still confusing.