Usually scheduled to meet customer needs or run as a private course. Please email for details
This course is intended for staff who are new to Linux / Unix / Java
and will be responsible for the installation, support and maintenance of Web applications
using those technologies.
The first part of the course gives you an overview of Linux / Unix / OSX operating systems
(they're all similar) as a user, and also the administration functions. It then goes on to
cover the aspects of networks and the web you'll need to know about if you're responsible
for looking after web applications in Java on these platforms.
We have a brief look at the Java language, but this isn't a programming course - we concentrate
on explaining, installing and configuring Java and the various associated technologies. You'll
learn how to troubleshoot Java problems even if you're not deep into the coding itself.
Web applications in Java often run in the Tomcat container, which itself is often accessed from
within Apache. Both Apache and Tomcat are highly configurable pieces of software, and within
them each web application that you deploy can be individually configured. Our course studies
the sourcing, configuration and deployment of both Apache and Tomcat, the linking of them together,
and the deployment of application within them. Administration tasks such as monitoring logs,
and setting up and watching security issues are also covered.
The final part of the course introduces relational databases, and taking MySQL as an example
shows how it is added to the mix of technologies to provide a complete solution. Once again, we
have a brief overview of the language (SQL) and we concentrate on installation, configuration,
security, use in association with other technologies, data backup, and similar topics.
You must be a competent computer user. Further experience is helpful, but this
course is run for small groups and is tailored to fill in gaps in your knowledge.
For each Web Server you run, you'll have hundreds of thousands of visitors browsing your site. The software that these visitors browse through is kept simple - but that's at the cost of a complex array of technologies on the Web Server. If you are responsible for installing or looking after such a web server - running Linux, Apache httpd, Apache Tomcat and perhaps MySQL or another database to handle applications written as Java Servlets or JSPs, using HTML, CSS and perhaps CGI too, this is the course for you - it takes you through the steps of deploying and hen looking after the various technologies.
|The Components of a Web-Based Solution (module A100) Elements of an IT solution under LAMP or Java.
Linux, Unix, Solaris and OS X.
Key features of an operating system.
NCSA server, Apache httpd, Apache Tomcat, IIS.
MySQL, PostGREsql, Oracle, SQL Server, Access.
Perl, PHP, Java and other languages.
Some standard applications.
|Linux -An Introduction For Users (module A101) Logging in and user accounts.
Files and directories.
File name matching and specifying multiple files.
Commands for examining file contents.
Manipulating the file system.
Copying, moving and deleting files and directories.
Changing the contents of a file.
Summary of vi commands.
The most basic.
Second level vi commands.
File permissions and some other useful commands.
Metacharacters in Nix commands.
Other useful commands.
Combining commands with shell programming.
Distribution and archive files and file transfers.
Handling tar and gzip files.
Transferring files using FTP.
Logging in to remote machines.
|Linux Utilities (module A166) Introduction.
Piping and redirection of utilities.
Options and related commands.
Grep, sort, awk, sed cut and Perl.
Find, man and info.
|Shell Programming (bash) (module A167) What is shell programming?
Running a shell program from the command line.
Conditional statements and variables.
Shell comparisons and arithmentic.
Functions and other features.
Bourne Again Shell scripts on a web page.
|Compiler and development tools (module A168) Compiling and development tools for Linux.
The gcc Gnu Compiler Collection.
CVS - the Concurrent Version system.
|Users and Groups (module A161) What are users and groups?.
The root account.
Real and effective id.
Adding and managing user accounts.
Setting up a user account.
Ownership and permissions, files and processes.
Control of processes.
|Backups and File System Management (module A162) Backup schemes and the need to backup.
Dump and restore.
CPIO, dd and other tools.
Mounting file systems and monitoring usage.
Some more useful commands.
|Network Configuration and Security (module A163) IP addressing and DNS naming.
Putting your Linux system on a network.
Testing with ping.
Using outgoing services.
|Services and Regular Jobs (module A164) Provision of services via daemons.
Controlling the startup and shutdown of Daemons.
Run states and init.
Automating daemon controls via chkconfig.
Regular jobs via crontab.
|Installing Software (module A165) Installation via RPM packages.
configure, make, cc and others.
Installation from tar or tgz files.
|Linux Server Admin - Exercise (module A171) Integrating various admin tasks.
|HTTP (module A207) HTTP Headers, Heads and Bodies.
GET, POST and other methods.
MIME Types, Cache Controls and other headers.
Uses of Cookies.
|Web Application Design and Deployment (module A211) Planning your application.
The store front page.
Under the hood.
Adding to the shopping cart.
The final phase.
Complete carter.php4 file.
|Introduction to SQL and MySQL (module S151) Information organisations.
The structure of a typical RDBMS.
Accessing a relational database from the Web.
Database access protocols.
Distributions and licenses.
Component parts of MySQL.
Versions of MySQL.
When should I choose MySQL?.
|SQL Primer as Used in MySQL (module S152) The structure of a database as seen by SQL.
Hello SQL World.
Initial administration and error handling.
Field types and modifiers in MySQL.
Floating point (real) numbers.
Whole (Integer) numbers.
One or more values from a pre-defined list.
Dates and Times.
A note on reserved words.
Commands to enter new rows of data.
The INSERT command.
The REPLACE command.
The LOAD command.
Returning table report information.
Commands to modify existing rows of data.
The UPDATE command.
The DELETE command.
Commands to modify the metadata.
The ALTER Command.
The DROP command.
The SHOW command.
On limiting selection.
Joining tables when selecting rows.
Extra use of SELECT.
Some more advanced SQL.
Loading data from file.
More on joining.
A regular "join".
A left join.
Joining across databases?.
|Sourcing, Running and Configuring MySQL (module S153) Overview.
A potted installation procedure.
For use on our training systems.
Installing MySQL onto your laptop.
Install the Perl DBD and DBI modules.
Testing your Installation.
Running the MySQL daemon.
Programs for the user and administrator.
Using the mysqladmin program.
Using the mysql client program.
Managing user accounts and privileges.
Adding an account.
Adding Additional privileges on a per-database basis.
Additional access on a per-host, per table and per-column basis.
Disk structure of data held in a MySQL database.
The data directory.
Setting up security and levels of access.
O/S level and web-level access.
Log in access to MySQL.
Four levels of access within MySQL.
Backing up your database.
Dumping by table.
Accessing mysqld from around your network.
|XML, DTD, XSLT, XHTML and More (module A301) What is XML?.
The structure of an XML document.
Examples of XML documents.
Alternatives to XML.
When to choose XML and when to use a database.
Defining data types with DTD and XML schema.
Parsing XML - SAX and DOM.
SAX code example.
DOM code example.
Formatting XML data with XSLT descriptors.
Accessing XSLT from programs.
|Structured Code and Object Orientation (module A401) Programming??.
Program design and structured programming.
The limitations of structured programming and the need for objects.
Extensions to object inheritance.
Inheritance models, and interfaces.
|Object Orientation: Design Techniques (module Q907) OO Design - some basics.
Start with a good understanding of OO.
And also a good understanding of the buzz words and design cycle..
Micro or Macro?.
Specifying classes and methods.
Specifying extended classes.
Clusters of classes.
Generalise it out.
Programming and method standards.
Unified Modelling Language (UML).
Project management and design issues.
|Review of Java Basics (module J801) Basic structure of Java.
Classes and objects.
Arrays and Strings; Vectors and StringBuffers.
|Java - Sourcing, Installing, Initial Testing (module A503) Selecting which download you need.
For Linux / Unix.
For Linux / Unix.
Initial Testing - the SDK.
For Linux / Unix.
Sourcing and installing documentation.
Downloading the Enterprise edition and server.
Initial Testing - J2EE.
Setting up a permanent CLASSPATH.
|Java Roadmap - Beyond the Fundamentals (module J606) Java releases.
Java Runtime Environments.
"Stand Alone" Java programs.
Java Server Pages.
Application Programmer Interfaces (APIs).
Useful "basic" classes.
The Java foundation classes.
The Threads API.
and also ....
Serializable and transient.
|Java - Servlets and JSPs (module A507) Of Java Containers.
The Java stand-alone container.
|Jakarta and Struts (module A508) What is the Jakarta project?.
Should I use Struts?.
|Threads (module J804) Introduction to parallel processing.
Threading via an extension to the Thread class.
The runnable interface.
Synchronization - avoiding conflicts.
|JDBC - Relational Database Access (module J811) Interfacing MySQL to Java.
Using JDBC to access other databases.
Using JDBC on the Web.
Example: Managing a table of information about a population.
Example: A more general table management Servlet.
Enhancing our examples.
|Combined Java Web Example: Servlets, JDBC and Graphics (module J953) Introduction to the requirement.
Planning the application.
Generating the image file.
Getting data to graph from an SQL database.
Making the graphic available dynamically via the web.
Completing our sample web application.
Extending the application.
|Java Application - Deployment on the Web (module A099) Server System Components.
User activated components.
Development and installation components.
Data management and other components.
Responsibilities that must be assigned.
Software and versions used in these notes.
Files you might need to download (Windows XP).
Browsers that we have tested with.
|HTML - An Overview (module Q624) Tags.
Structure of a page.
Special characters and new lines.
Some common tags.
Lists, tables, etc..
Which HTML standard?.
Validating your page.
|Commercial and Legal Aspects (module A213) Why discuss this on a technical course?.
Data Protection Act, 1998.
Freedom of Information Act, 2000.
Privacy and credit card security.
Unsolicited commercial emailing and mailing lists.
Other content issues.
Who is the publisher?.
Registration agencies - the shady dealers.
Backups and security.
Ease of use.
Marketing and visibility.
Elements of Java for Deployment
|Java - Basic Tools (module A502) Compiling and running Java programs.
Applications with multiple classes.
Examining Java files and classes.
Reference: Options to the Java utility commands.
|Introduction to Ant (module J910) Downloading and Installing Ant.
A first use of Ant.
The build file.
Further aspects of Ant.
The Apache httpd web server
|Apache httpd - an overview (module A601) What is Apache?.
Apache httpd capabilities.
Authentication and secure service.
Other Web Servers.
|Apache httpd - Sourcing, Installation, Testing (module A602) Sourcing Apache httpd.
The user account under which to run the web server.
The address of the web site administrator.
Changing the location of files on the web site.
Allowing more than just serving files!.
Allowing individual users their own web sites.
Configuring log files.
Setting up a separate cgi-bin directory.
Changing your error report pages.
Getting server status reports through the web.
Installing and Configuring httpd on Windows.
Testing your installation.
Testing the basic web directory and home page location.
Testing the userŐs home directory web sites are working.
Testing the server status and server info pages.
Testing your error page.
Testing for the presence and operation of a PHP script.
Testing for the presence and operation of server side includes.
Testing the operation of a .cgi program (written in Perl).
Testing the cgi-bin directory.
Testing wider services.
|Further httpd Configuration (module A603) Automatic Start-up.
Name-based Virtual Hosts.
IP-based virtual hosts.
|Apache httpd - virtual hosts (module A604) Virtual Hosts.
Setting up so the browser can see multiple hosts.
Configuring virtual hosts.
|Apache httpd - log files and log tools (module A606) Configuring the access and error logs.
making logs available to the web site owner.
Tools to analyse log files.
The Apache Tomcat web server
|Tomcat Overview (module A651)
What is Tomcat?.
The structure of Tomcat.
|Tomcat -Sourcing, Installing and Initial Testing (module A652) Sources of Tomcat.
Prerequisite - Java Software Development Kit.
Download and install (of Tomcat) from jakarta.apache.org, binary.
Download and install from jakarta.apache.org, source.
Pre-requisite - Ant.
Starting and initial testing of Tomcat from jakarta.apache.org.
Under Linux and Unix.
Using SunŐs Web Server DeveloperŐs Pack.
Installing Tomcat when downloaded from java.sun.com.
Initial testing of Tomcat.
|Tomcat - Configuring Web Applications (module A653) Installing a flat files example in /webapps/.
A more complex application in a /webapps/ folder.
Installing a Java Server Page in /webapps/.
An example that reads from a form.
An example with error checking, and with the form within the JSP.
Deploying a Servlet in /webapps/.
A Servlet with form data.
Using a JSP to access a class.
Installing via a WAR file.
Installing Servlets from the server.xml file.
|Configuring and Controlling Tomcat (module A654) Switching Tomcat to another (OS) user account.
Automatic start-up and shutdown.
The server.xml configuration file.
Running Tomcat as your only (or main) web server.
The Manager and Admin application.
The Manager Application.
The Admin Application.
Changing TomcatŐs home page.
|Using Tomcat and Apache httpd Together (module A655) Do I run both Apache httpd and Apache Tomcat?.
Using two separate server daemons on a single host.
Connecting via a proxy from Apache to Tomcat.
Setting up httpd to act as a proxy.
Setting up Tomcat to handle proxied requests from httpd.
Running Tomcat from httpd with jk2 with AJP.
Installing and configuring mod_jk2 in httpd.
Other deprecated connectors.
|More Tomcat Configuration (module A656) Configuration files in the conf directory.
Modifying your Jasper configuration.
Logging Tomcat Activity.
Adding and tailoring access logs.
Applications that log.
|Using httpd to front Tomcat (module A657) The Tomcat connector story.
Apache, Apache httpd and Apache Tomcat.
Do I need both servers?
How are the tasks divided?
jk connector and configuring jk.
A practical complete installation.
|Tomcat - Extra Features (module A900) Running a secure service through https.
Changes to server.xml.
A note on https.
Server testing through wget.
Clustering and load balancing.
Setting up a cluster.
The current state of clustering.
Load balancing - an alternative.
, England. A taxi transfer can be arranged if you'll be
- our own
purpose fitted training centre and business hotel / conference centre in
|| 2 students
|| 3 students
|| For 4 or more students
from the same company,
please consider a private course.
| With hotel room
($3360.00 inc VAT) or
(£1980.00 inc VAT)
($2820.00 inc VAT) or
(£1620.00 inc VAT)
| With hotel rooms
($6600.00 inc VAT) or
(£3840.00 inc VAT)
($5520.00 inc VAT) or
(£3120.00 inc VAT)
| With hotel rooms
($9840.00 inc VAT) or
(£5700.00 inc VAT)
($8220.00 inc VAT) or
(£4620.00 inc VAT)
• Multiple discount applies to bookings for second and subsequent delegates on the same running of a course, and on same order.
• Hotel rooms are available for arrival the night before the course starts, for departure after the end of the course on the last day.
course will take you through from "first base" to the coding of Web Applications.
Upon completion of your course, you'll have online access to the source code of
all the examples from the course, and you'll have access to the
"Ask the Tutor" forum
where you can raise questions. We also encourage you to email the tutor, and
to visit us again to use our library as appropriate.
For more information about our public courses in general, such as class size, course times, materials provided, special requests, accommodation list, finding our centre, etc.
Covering topics such as delegate substitution, payment, cancellation policy and other matters.