Intro to Apache Web Server Administration — A 2 day course
We have recently made significant changes to the layout and presentation of course outlines. If you have any comments or spot any errors please tell us your thoughts
Synopsis
An Apache webserver training course which provides a technical introduction to installing, configuring and managing the Apache web server and to supporting CGI programming on the Apache server.
This Apache course is delivered over two days in our public schedule, but a selected subset of the course can be delivered to experienced development teams on an in-house basis.
It is common for such in-house apache training courses to select particular families of Apache modules and application servers to focus on. For example, Java oriented development teams will typically create a Tomcat training course focusing on the tomcat servlet container, excluding less relevant topics like mod_perl and including material from our Java programming courses.
Perl programmers will typically ignore tomcat and may want to add Perl programming topics from elsewhere. Something similar may apply for PHP shops.
This is an instructor-led, hands-on Apache webserver course, organised around practical tasks in web server configuration and administration.
Suitable For
Software developers
Webmasters
Technical and support staff in electronic commerce
Internet Service Providers (ISPs)
Web-based Application Service Providers (ASPs)
This Apache webserver course was originally devised to meet the needs of developers and technical support staff at the UK's largest business ISP. The design of the hands-on exercises in this Apache course and in our other Apache courses draws heavily on their experience and that of our own ecommerce consultants.
Prerequisites
Awareness of the basic principles behind the exchange of information between the webserver and web clients (browsers) using HTTP requests and responses
A basic understanding of TCP/IP protocols
Competent use of a text editor
Knowledge of programming or shell scripting techniques is required, although a high level of practical programming competence is not
Publicly scheduled dates, locations, and prices
A schedule of dates for this subject is not currently available. Please call 0333 210 0140 or use our contact form to enquire about places and availability.
Contents
Getting started
- Apache
- Webservers
- Apache features
- Apache versions
- Installing Apache
- Installing XAMPP
- Compiling Apache
- Running Apache
- Running Apache automatically: Unix/Linux & MS Windows
- Checking Apache is running
- Serving webpages
- Location of the apache configuration file
- Setting the document root
- Applying configuration changes after testing
- A little HTTP: GET, POST & status codes
- Accessing a Web Server with the Telnet Program
- HTTP 1.1: persistent connections, chuncked transfers, byte serving, ETags, modified dates & conditional transfers, HTTP Pipelineing
- Googles SPDY — HTTP on Steroids, how it works & implementations
Basic configuration
- Configuring Apache
- Directives
- Modules
- Enabling/disabling modules in Debian
- Checking configurations
- Logging
- Configuring log-file contents
- Specifying log-files
- Logging errors
- Browser error messages
- Custom error pages
- Server and directory index pages
- Custom index pages
- Forbidding index pages
- Trailing slashes in directory paths
- Directory paths without trailing slashes
- Per-directory configuration
<Location>example - Other directives affecting where settings apply
- Wildcards & Regular expressions in container specifications
- Containers & Case insensitive file systems
- Order of merging of containers
- Context for container directives
- Accessing files from the network
- Per-directory configuration outside
httpd.conf.htaccessfile configuration - Protecting files with passwords
- Creating a password file
- Maintaining an ht-password file
- Password authentication example
- Password authentication details
- When authentication fails — generating errors
- Authentication Information in Databases
- Restricting access by IP address
- Listening only on specific IP addresses
- Restricting access by IP address
- allow,deny and deny,allow
- Address and password authentication
- Character Sets and Human Languages
- Character Set
- Setting Content MIME Type
- Content Expirey
- Directory Options
- The different MPMs (Multi Processing Modules) available
- Tunable Parameters for Performance
- Enabling KeepAlive
Serving multiple sites with virtual hosts
- Multiple sites on a server
- Setting up virtual host names
- Testing host names
- Enabling virtual hosts
- Defining virtual hosts
- Configuring vitual hosts
- Using virtual hosts
- Host aliases
- Managing many hosts
Dynamic pages with CGI, Perl and PHP
- Dynamic pages
- CGI
- CGI programs
- Sample Unix shell CGI script
- Sample Perl CGI script
- Running CGI programs with Apache
- CGI parameters
- Perl CGI parameter example
- CGI issues
- PHP scripts
- Using
mod_php - PHP configuration
- PHP compiled code caching, persistent database connections
- Sample PHP scripts
mod_perl - Installing and using
mod_perl - Using
ModPerl::RegistryandModPerl::PerlRunModPerl::Registryv CGI Perl, speedup comparison - Perl persistent database connections
- Other
mod_perlfeatures
Using modules
- Modules
- Loading modules
mod_speling - Which Modules Got Loaded ?
mod_rewrite - Why use
mod_rewrite? - Rewrite Flags
- Rewrite Flags Flow Control
- Rewrite Flags Affect What is Sent to the Browser
- Rewrite Flags Affect Processing on the Server
- Internal Rewriting v Redirection
- Forcing Redirection
- Transforming URLs
- Conditional Rewrites
RewriteCondFile Tests - When
RewriteCondis doneRewriteCondBrowser-Dependent PagesRewriteCondCanonical URLS - Preventing hot/deep linking
- Force use of SSL
- Time based access
RewriteMapRewriteMapExample - When Container tests and Rewrites are performed
- Deploying
mod_rewrite - Redirecting:
mod_alias - Per User Directories:
mod_userdir - Per User Directories: Better Security
- Directory Listings:
mod_autoindex - Directory Listings:
IndexOptions - Monitor Apache Performance with
mod_status
Web Proxy with mod_proxy
mod_proxy
- Forward Proxy
- Reverse Proxy / Gateway
- mod_proxy Support
- Proxy Modules And Other Related Modules
- Configuring a Forward Proxy
- Storage of Cached Pages
- Conguring What to Proxy Where
- Configuring a Reverse Proxy
- Basic Reverse Proxy Config
- Load Balancing with
mod_proxy_balancer, worked examplemod_proxy_balancercluster manager - Proxying by Rewriting
- Backend Optimisations
- Access to the Proxy Server
Tomcat with mod_jk connector
- Tomcat overview
- J2EE platform overview
- Apache JServ Protocol (Ajp)
- Installing Tomcat with Apache
- Testing Tomcat, Welcome Page
- Connecting Apache and Tomcat
- Using the Proxy connector
- Using the mod_jk connector
- Dynamic pages, servlets and JSP
- Java Servlets
- Servlet/JSP Containers
- Servlets v CGI
- Sample JSP
Serving pages using HTTPS with mod_ssl
- HTTP security
- HTTPS
- Installing
mod_ssl - Getting a certificate
- Configuring
mod_ssl - HTTP and HTTPS sites cohabiting
- HTTP and HTTPS virtual hosts
