CNIT 271:  Apache Web Server Intro Spring 2012 (CRN 32026)
Hybrid:  meets 3 Wednesday evenings: 6-9 pm, Online in-between.
  First
Meeting Date:  2/01.  Room:  Batmale 413. 

Instructor:  Peter Wood
Contact Info:
      E-mail: pwood@ccsf.edu,   Web: http://fog.ccsf.edu/~pwood, Phone: 415/239-3229
      Office: Science 35B, Office Hours:  Usually the 1/2 hour after class, or by appt.
 
Schedule of Topics & Due Dates:  see  Class Schedule.

Course Description:   Introduction to setting up and configuring the Apache Web Server. The course covers how to download and install Apache, configure CGI scripting to run scripts on the server, protect document directories with authentication, and use virtual hosting to support multiple hostnames on the same server. 

The material is presented through a combination of lecture and hands-on exercises.  Each student will the opportunity to setup Apache on a Linux host.   It is an introduction to Apache, but by the end of the class you will be able to do some basic server administration.   You will be able to:

  1. Describe the Apache Project and Open Source software.
  2. Assess the software and hardware requirements for running Apache.
  3. Find and download Apache source code and installation scripts.
  4. Analyze installation requirements and edit installation scripts.
  5. Explain Apache source code and installed directory structures.
  6. Create and test simple CGI scripts.
  7. Configure authentication for an HTML document directory.
  8. Design & implement Virtual Hosting. 
  9. Install Apache on a Unix/Linux  host.
  10. Start and stop the Web Server daemon.
  11. Perform simple troubleshooting through monitoring process status and log files.

Prerequisites: Introduction to Unix (CS 160A) and an Introduction to Networking course (CNIT 106 or CNIT 201).   You need to know how to get around in Unix/Linux (login, create/edit files [vi or emacs preferred], change directories, make directories, use 'grep', 'less', 'ps', set permissions, etc.).  Knowledge of a programming language and system/network administration is helpful, but not required.   Here is a more detailed CNIT 271 prereq skill list

Required Texts: None
Optional
Texts on Apache:
     Apache Cookbook, 2nd Edition by Bowen & Coar.   O'Reilly 2007.  ISBN: 0-596-52994-5.
     Pro Apache, 3rd Edition by Wainright. Apress 2004. ISBN: 1590593006.  
     Apache: The Definitive Guide, 3rd Edition by Laurie. O'Reilly 2002. ISBN: 0596002033.
     Various handouts will be provided or be available online.    And of course there is lots of Apache documentation at www.apache.org

Some Other Optional Texts:
   Basic text on Unix/Linux.   
The one from your Intro to Unix class will be fine.  Here is one that many like: 
  Linux in a Nutshell, 5th Edition
. By Ellen Siever, Stephen Spainhour, Jessica P. Hekman, & Stephen Figgins. O’reilly Press: 2005. ISBN: 0596009305

   Basic Networking.   It is also helpful to have a basic book in Networking.   Here is one of my favorites:
      Network+ Guide to Networks, 5th Edition, by Tamara Dean.  Course Technology, 2009.  ISBN 1423902459.

Going deeper:   HTTP is just one of many services available on computers running Unix/Linux.   Here are some useful texts if you want to go deeper into Unix/Linux System and Network administration (CCSF also offers classes in each area):

      Unix & Linux System Administration Handbook (4th Edition), by Nemeth & al, Prentice Hall, 2011.  ISBN: 9780131480056.
Essential System Administration (3rd Edition), by Frisch. O'Reilly, 2002. Classic on stand-alone Unix system administration. ISBN: 0596003439 .
TCP/IP Network Administration (3rd Edition)
, by Craig Hunt. O'Reilly, June, 2002. ISBN: 0596002971.   One of the best all around books Unix Network Administration.  Combines theory of  TCP/IP and Unix Network Services with practical instructions for configuring and maintaining them.

 
Special Note: The class focuses on Apache Web Server administration. To do this, students will have special access to a Unix/Linux network on campus. As such you will be trusted users and are expected to behave responsibly. Adherence to CCSF usage policies is required, and abuse of privileges may result in loss of your CCSF computer access and failing the class.

Software Policy: It is the policy of CCSF that here will be no copying of copyrighted software (applications) on computers belonging to CCSF.
 
Grading:  
Component Percentage
Quiz
15%
Class Participation 10%
Labs 60%
Final Exam
15%

There will be a short quiz after the first class, and a final exam after the second class.  These are usually multiple choice, although there may also be a hands-on component to the final exam.    Some participation in an online discussion group is also required.
 
Deadlines & Attendance:  This is a short hybrid class with three in-person meetings and you working remotely in-between.   You need to attend to pass the class.   Some assignments will be finished in-class.  You will also be expected to participate in some online discussion, take a quiz, & do some configuration remotely during the week between classes.   Final Exam is also taken online after the end of the last class.  By the end of the last class, you will have setup the Apache web server several times.  Add/Drop Deadlines:  Last day to Add: 2/12.   Last day to Drop with a Refund:  2/02..  Last day to Drop without a "W": 2/08.  Last day to apply for "pass/no pass" grading (but then the class cannot count towards a certificate):  2/21.  Last day to Drop with a "W":  2/29.
 
Communications:  In class there will be time for discussion as well as lecture and exercises. It is important to me that everyone has a chance to participate. My request to those who talk a lot is:  Do not talk too often or too long. For those who do not talk much: Please speak up. If you have a question, probably several others have the same question. We all have different strengths and weaknesses and respect for each other is important.  I look forward to your contributions, and our learning together.