Deployment Options

Choosing a method for actually deploying Your Apache to IIS migration is more difficult. The obvious steps to the migration are as follows:

  1. Migrate the basic configuration.

  2. Migrate the static Web files (HTML, graphics).

  3. Migrate the applications and dynamic components.

  4. Migrate authentication/security.

graphics/web_icon.gif WEB RESOURCE

For a tutorial on how to migrate files from Unix to Windows and IIS, go to the Delta Guide series Web site at www.deltaguideseries.com and enter article ID# A020902


After the actual physical migration has completed, you then need to test your installation. Typically, I recommend a period of at least one month testing the new platform followed by a month testing the system in tandem with your existing installation to iron out bugs. For a major Web site, I'd increase those figures to three and three.

During the testing, test the existing site and then test the new site, checking both for missing links and bad components and performance. You should then be able to make suitable comparisons for the new system.

If you want to ease the migration process, two tools can help you. The first is the Apache Migration Tool that comes with the IIS 6 Resource Kit; the second is Services For Unix, which can help to migrate user and authentication information, as well as the data and files.

I've given a brief overview of the main components and facilities of the two systems here.

Apache Migration Tool

The IIS 6 Resource Kit comes with a migration tool, which can perform many of the main functions of a migration for you, including copying the source files, copying certain aspects of the configuration and security, and modifying source HTML to take into account location/server changes.

The migration tool will migrate Linux (Red Hat, Mandrake, and SuSE varieties are the only ones recommended) running Apache 1.3.x only. You can perform the migration either directly from a Windows Server 2003 host, from the Linux host, or through an intermediate host that marshals information from the source to the destination.

The migration should work relatively painlessly with most of the directives and information being transferred without intervention. However, it's not perfect. It doesn't transfer all the directives from Apache?mostly because of differences in the way the two systems operate?and it's translation of files is limited to any name or location changes. Issues with scripts or dynamic elements are not handled, and even if your site is entirely composed of static HTML and graphics, there is no guarantee the site will transfer without problems.

Table 8.2 contains a list of the Apache directives that are translated and migrated to IIS during the process.

Table 8.2. Directives Migrated by the IIS 6 Resource Kit Apache Migration Tool

Directive

Notes (where applicable)

AddEncoding/AddType

Migrates the settings to the MIME Types settings within IIS 6.

Alias

Creates a virtual directory object.

AuthGroupFile

Groups in the file are migrated to the local authentication system for the server (not AD).

AuthName

Adjusts the Realm property for the corresponding directory in the authentication settings.

AuthType

Applies the equivalent authorization type to the directory.

AuthUserFile

Users in the file are migrated to the local authentication system for the server (not AD).

BindAddress

 

DefaultType

 

<Directory>, <DirectoryMatch>

Migrated, but ExpiresDefault and IdentityCheck do not have equivalents in IIS.

DirectoryIndex

 

DocumentRoot

 

ErrorDocument

 

ErrorLog

Not migrated, but errors in IIS are recorded in the main logs.

ExpiresActive

Sets the Enable content expiration property.

ExpiresDefault

There is no equivalent in IIS 6, so instead the Expire immediately property is enabled.

<Files>

All tags except ExpiresDefault and IdentityCheck are migrated.

<FilesMatch>

All tags except ExpiresDefault and IdentityCheck are migrated.

Header

 

HostnameLookups

Only sets hostname lookups on or off?the double property in Apache is not migrated.

IdentityCheck

Enables Extended logging properties for the log for a Web site.

KeepAlive

Sets the Enable HTTP Keep Alives property.

KeepAliveTimeout

Migrated to the Connection timeout property.

Listen

 

ListenBacklog

 

MaxClients

Migrated to the Connections limited to property for the site.

NameVirtualHost

 

Options

Only the ExecCGI and Indexes options are migrated. Other options to this directive are not supported or have no direct equivalent in IIS 6.

Port

Only migrates ports with numbers less than 65,535.

ResourceConfig

File referenced by this directive is parsed for context purposes.

ScriptAlias

 

ServerAlias

Sets the host header information.

ServerName

Sets the name as it appears within IIS manager.

ServerRoot

 

SSLEngine

The information is not migrated, but the migration tool prompts for the information.

TypesConfig

 

UserDir

User directories are migrated to corresponding virtual directories within the default Web space.

<VirtualHost>

 

If your site is in any way more complex than basic HTML, I'd recommend that you migrate the system using a more pragmatic step-by-step process that migrates individual components or areas of the sites and tests them thoroughly. See "Deployment Options," (p. 162) in this chapter for more information.


Services for Unix 3.0

Services for Unix (SFU) is a suite of utilities that allow you to share information and resources between Unix and Windows computers. The main features of SFU of interest during a migration from Apache to IIS are summarized in Table 8.3.

Table 8.3. SFU Features

Feature

Description

Unix environment

Enables you to execute Unix scripts and recompile and deploy Unix applications using standard Unix applications, including make, rcs, yacc, lex, cc, c89, nm, strip, gdb, as well as the gcc, g++, and g77 compilers. You also have access to Unix tools such as awk, grep, sed, tr, cut, tar, cpio.

Script Environment

Executes Perl, Korn, and C shell scripts within Windows.

Security Integration

Enables you to communicate and authenticate with NIS servers.

NFS Client/Server

You can now share Windows directories through NFS and also access NFS resources. This makes exchanging files between Unix and Windows environments much easier.