Course WEB101
Apache Web Server - Installation, Configuration and Administration
Apache Web Server - Installation, Configuration and Administration
Intended Audience
This course is aimed at programmers, administrators and support personnel who need to understand the APACHE Web Server, APACHE server installation and configuration, and the integration of Apache with CGI scripting languages such as Perl and Python. Attendees should have some knowledge of Unix/Linux system administration. Some basic knowledge or Perl or Python would be useful. Perl or Python programming skills are not required as Perl and Python example scripts will be provided with associated documentation.
The course will cover the procedures needed to install, configure and manage APACHE Web Server environments. In particular attendees will learn how to
- Install APACHE
- Usage and understanding of APACHE Server Directives
- Use of the ROOT Directive
- Commands and scripts for starting and stopping the APACHE Web Server
- Setting up Linux servers so that the Apache daemon starts up automatically at run time
- Editing the Httpd.conf file and including sub-configuration files
- Setting up CGI
- Setting up server side includes
- Basic Authentication
- Creating and configuring a Proxy server
- Configuring SSL for Apache
- Introduction to rewrite rules
Practical Work
About 40% of the course time will be allocated to practical exercises.
Course Contents
Overview of Apache
- Origins of the Apache project and the Apache Software Foundation
- Installing Apache on Linux using package manager tools - rpm and yum, apt and aptitude
- Building and installing Apache from source
- Configuring the compilation options
- Static vs. dynamic module compilation
- Programmer's Interfaces
- Applying patches and re-compiling
Starting and Stopping Apache
- Invoking the Apache executable
- Using the apachectl script
- Understanding Linux run levels and the Linux boot process
- Using the run-level scripts to stop and start Apache
Apache Configuration Files
- The /conf directory and the files within it
- The httpd.conf file
- Directives - syntax and uses
- The Include Directive
- Including sub-configuration files in httpd.conf
- The Options Directive
- Specifying the Installed Directories
Apache Modules
- Overview of available Apache modules
- Loading and installing modules
Directory specific configuraion using htaccess Files
- Purpose and principles of use of .htaccess files
- Configuraing .htaccess files
- The AllowOveride directive
- Configuring directory level authentication
- Allowing CGI scripts
- Performance effects of extensive use of .htaccess file in a web site
Virtual Hosting
- How Virtual Hosting Works
- IP address based vs. name based virtual hosting
- Port based virtual hosting
URL Mapping
- Configuring Aliases and Redirects
- Rotations, Matrices and Transformations
- The DocumentRoot directive
- Error documents - uses and customisation
- Rewriting URLs - rewrite rules and mod_rewrite
Index files and Indexing
- Understanding the DirectoryIndex directive
- Fancy indexing
- Searching and sorting files
- Ignoring Files
- Headers and Footers
File types and MIME
- What are MIME types
- MIME type configuration
- Character sets, languages and file encoding
Server Side Includes (SSI)
- Understanding SSI
- SSI Directives and SSI Configuration
Apache Multi-Processing in Linux/Unix
- Multi-tasking vs. Multi-threading in Server Applications
- How tasks and threads are created in Linux
- The Apache MPM architecture
- worker vs. pre-fork MPM configuration
- Coming up with suitable worker and pre-fork configuration parameters
- Monitoring tasks and threads associated with an Apache server
Apache and Scripting Languages
- How Apache handles scripting languages
- Server side scripting vs. CGI and FastCGI scripting
- mod-perl - setup and configuration
- mod-python - setup and configuration
- mod-php - setup and configuration
Apache Security
- Key concepts - Authentication, Authorisation and Access Control
- Apache user and Apache group directives
- Linux/Unix file and directory permissions
- chroot jail
- Security aspects of scripts and databases
- Apache and SSL
- Introduction to SSL/TLS
- Installing mod-ssl
- Requesting and installing SSL Certificates
- SSL Configuration
- mod-php - setup and configuration
Rewriting and mod-rewrite
- Regular expressions- pattern matching and substitution
- Overview and applications of rewriting
- Ruleset processing mechanisms
- Mastering the RewriteRule directive
- Mastering the RewriteCond directive
- Mastering the RewriteOptions, RewriteBase and Rewrite Lock directives
- Mastering the RewriteLock directive
Logging and Apache Log files
- Overview of the Apache logging mechanisms
- Customising and configuring logfiles
- Administering - rotating and archiving log files
- Using logfiles to troubleshoot Apache problems
Monitoring Apache Web Server Behaviour
- Configuring Apache to provide Status and FullStatus information
- Testing and load testing web servers using JMeter
- Linux commands, scripts and utilities for monitoring processor and network loads, disk and file system usage
