You are currently offline, waiting for your internet to reconnect

HOW TO: Determine Site Requirements for a UNIX-to-Windows Migration

This article was previously published under Q323948
This article has been archived. It is offered "as is" and will no longer be updated.
This article describes how to determine site requirements for a UNIX-to-Windows migration. Before you start the migration process, you must identify the elements to be transferred to the new Web server. There are many different elements to consider, and a number of different ways to determine these elements before you make the move.

back to the top

Identifying Individual Sites

To identify the individual sites that are configured on a server, examine the Httpd.conf file and look for <ServerName> directives. There will be at least one directive for the main Web site, and one for each additional virtual host. Use grep to extract this information:
$ grep <ServerName> conf/httpd.conf<ServerName> www.<sitename>.com<ServerName> www.<addsitename>.com					
back to the top

Identifying Static Components

To identify the static components and the location of the files that make up your Web site, examine the Httpd.conf file for Apache, and identify <DocumentRoot> directives:
$ grep <DocumentRoot> conf/httpd.conf<DocumentRoot> /export/http/webs/<sitename><DocumentRoot> /export/http/webs/<addsitename>					
The argument that follows each directive is the folder in which the files are stored.

back to the top

Identifying Scriptable Elements

Determine whether there are any scriptable or dynamic elements in your Web site. To look for CGI-based programs, look for the following directives in your Apache configuration file:
  • ScriptAlias gives the location of the real CGI script files for a specific Web site.
  • AddHandler {cgi-script|server-parsed} adds CGI or Server Side Includes against a particular file name extension.
  • Options {ExecCGI|Includes} adds CGI or SSI features to a particular folder.
Look for the Options directive in .htaccess files in a Web site's directory tree.

Look for the following files, or for files in the following places in the Web site's folder:
  • Perl scripts that end in .pl, .plx.
  • Python scripts (.py).
  • Any file ending with .cgi.
  • PHP Scripts that end in .php.
  • Any file with executable permissions (but not folders) particularly in folders with names like cgi and cgi-bin.
Any CGI element must be ported to Windows/IIS accordingly. Perl, Python, PHP and other scripting languages typically need only minor changes to work under Windows. Native binaries require recompilation under Windows for them to work, which may involve more significant changes to the code and a correct porting process.

back to the top

Identifying Security Requirements

Security in Apache is determined in two places; in the .htaccess files and the main Httpd.conf file. Look for the following directives to determine the sort of security that is required:
  • Order, Allow, Deny uses IP address security to restrict access to a folder.
  • AuthType determines the type of authorization that is required.
  • AuthUserFile defines the location of a single file that contains user names and passwords. You must migrate this file to Active Directory.
  • Require defines whether a valid user, valid group or a combination of both is required to provide access. You must translate these requires to the security permissions of a specific folder.
back to the top

Identifying Virtual Host Requirements

Look for VirtualHost statements in the Httpd.conf file. Each VirtualHost directive describes an individual Web server that is hosted by the main Apache server. Use the following rules to translate these settings to Windows/IIS:
  • If VirtualHost directives are used without a corresponding Listen directive, there are name-based virtual hosts. You must use the HTTP Headers configuration in IIS to identify the Web site under IIS.
  • If VirtualHost directives are used with a Listen directive, the sites are using virtual IP addresses. You must configure each virtual host with its own IP address.
back to the top

Identifying Logging Requirements

Apache can only specify the location and format of the log files for a specific Web site. The location of the error log is handled by the ErrorLog directive. Access logs are generated by creating a custom log format (using the LogFormat directive) and then writing a custom log that contains this information by using the CustomLog directive. Logs are created on a Web site-by-Web site basis, so you must examine both the main Httpd.conf section and the individual VirtualHost directive sections in the configuration file.

back to the top

For additional information about how to prepare for migration from UNIX to Windows, click the article number below to view the article in the Microsoft Knowledge Base:
324215 HOW TO: Prepare for a UNIX-to-Windows Migration
back to the top


Article ID: 323948 - Last Review: 02/27/2014 21:13:43 - Revision: 4.2

Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Professional Edition, Microsoft Small Business Server 2000 Standard Edition, Microsoft Internet Information Services 5.0

  • kbnosurvey kbarchive kbhowto kbhowtomaster KB323948