CNIT 272: Apache Web Server Advanced (CRN#33047)
Hybrid:  Meets some Wednesday evenings & Online in-between.
Class starts with an In-Person Meeting:  4/04. Time: 6-9 pm.  Room: Batmale 413

Instructor: Peter Wood

Contact Info:

      E-mail: pwood@ccsf.edu  (the best way to reach me outside of class)
      Web:
http://fog.ccsf.edu/~pwood (check this for schedule updates),
      Phone:
415/239-3229

      Office: Science 35B, Office Hours:  Usually the 1/2 hour after class, or by appt.

Course Description:   Advanced class on administering the Apache Web Server. Setting up complex virtual hosting, multiple types of authentication and dynamic content, adding modules to support LAMP, optimizing server performance, web server security, including SSL, and troubleshooting.   (This course fulfills one of the requirements for the CCSF LAMP Administration certficate)

Advisories:  Apache Web Server Intro (CNIT 271) and Unix/Linux Network Services (CNIT 270).   You need to have installed Apache or equivalent servers on a Unix/Linux computer, setup virtual hosts, enabled authentication, be able to comfortably edit text files, and know enough network administration to configure other services, like DNS, and troubleshoot problems.

Schedule:  see  Class Schedule (tba).

Required Texts: 
     Apache Cookbook, 2nd Edition by Bowen & Coar.   O'Reilly 2007.  ISBN: 9780596529949  (cookbook, not a theory book)

     Various handouts will be provided or be available online.    And of course there is lots of Apache documentation at www.apache.org

Optional Texts:
     Pro Apache, 3rd Edition by Wainright. Apress 2004. ISBN: 1590593006.   (good on theory, & lots of configuration options.)
    Learning PHP, MySQL, & Javascript by Robin Nixon, O'Reilly 2009.  ISBN: 978-0596157135
    Apache: The Definitive Guide, 3rd Edition by Laurie. O'Reilly 2002. ISBN: 0596002033.(original classic, some find it hard to read)


Course Objectives:
Upon completion of this course the student will be able to:

  1. Explain the history and architecture of Apache

  2. Compare versions of Apache

  3. Describe and perform web server administration tasks.

  4. Install and customize Apache source code and scripts.

  5. Describe Apache configuration directives.

  6. Manage Apache modules.

  7. Design and implement complex virtual hosting.

  8. Design and configure authentication for several users or groups.

  9. Describe procedures for monitoring access and mproving Apache performance.

  10. Describe and configure Apache to efficiently support web applications with dynamic content like CGI, Perl, PHP, and database access.

  11. Analyze and assess how to improve web site security, including SSL.

  12. Install and configure Apache on a MS Windows host.

  13. Describe how to design and evaluate a high availability web site.


Method:  The material is presented in 1/2 semester as a Hybrid class.   The class meets mostly Online, but there some In-Person meetings (usually about every other week).  Online you will learn & discuss the concepts.  The In-Person meetings include mini-lectures, discussion to clarify difficult points, hands-on exercises, and skills assessment.   The labs will be mostly individual, but there may be some group work.   The emphasis is on hands-on learning either in-class or on your own.   See the Class Schedule above for the dates of the in-person meetings.



Grading:

Component

Percentage

Quiz

10%

Class Participation

10%

Labs

60%

Final Exam

20%

 

There will be one quiz about 1/2 way through the class and a comprehensive final exam. They are open book, mostly multiple choice & taken through Insight. The Final Exam may include some oral or hands-on components. There will also be several labs.  These will be posted in Insight, and you turn them in uploading documentation into Insight & by discussing or demonstrating them. They will usually be discussed in-class or online just after the due date. The last lab is a Final Project that you will demonstrate in class & upload documentation into Insight.

 
Quiz and Assignment Deadlines:  It is important you keep up with the work, and the deadlines are intended to help you do that.   If you cannot finish a quiz or lab on time, you can make it up provided you complete it before it is discussed online or in class.   However, it will be penalized 10% a week.  E-mail assignments are due at midnight on the due date.   Paper assignments are due within the first 15 minutes of the start of class.  Quizzes are available until 11:55 p.m. on their last available day.  However, please do not wait until the last minutes in case you have a computer problem.   If there is a problem with the CCSF network and servers, I will adjust the deadlines accordingly.

 
Communications: This class meets mostly Online, and only sometimes In-Person.  Between In-Person classes, E-mail and an Online Discussion Group will be available.  Please use e-mail for personal communications, and use the Discussion Group for questions that you would normally ask in class.  I will check the online discussion group about twice a week. 

I will let you know of any necessary schedule changes through the Insight Homepage for our class.  Please check our class homepage each week to see the reading, lab & quiz assignments.    Also check it before coming to an in-person class.  If Insight is down, I will post a message on my CCSF website.  

In our in-person classes there will be time for discussion as well as lecture and exercises. In our online meetings, there will also be discussions and exercises you can do at home.  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. Also, if something is unclear, please do ask questions. If you have a question, probably several others have the same question. (This request is for both the Online and In-Person meetings.)   We all have different strengths and weaknesses and respect for each other is important.  I look forward to your contributions, and our learning together.

 
Attendance: I value your attendance and participation in class, but do not regularly take role after the second week. However, if you do not come to an in-person class or login to Insight for two consecutive weeks, you may be dropped from the class.   If you miss a class, you are responsible for getting any handouts not available on the Web from your classmates. If you need to miss several classes in a row due to an emergency, please let me know, so that I can try to help you with your class work. If you decide to drop the course, it is your responsibility to do so. Please do not depend on me to drop you.    Here are the deadlines:   Last day to add the class:  4/05.  Last day to drop the class for a refund:  4/05.  Last day to drop the class without a "W": 4/11. 
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":  5/09.


Special Note: The class focuses on Apache Web Server administration. To do this, students will have special access to some Linux networks 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.