Microsoft KB Archive/323948

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

Article ID: 323948

Article Last Modified on 11/1/2006

-

APPLIES TO


 * 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

-



This article was previously published under Q323948



IN THIS TASK
SUMMARY
 * Identifying Individual Sites
 * Identifying Scriptable Elements
 * Identifying Security Requirements
 * Identifying Virtual Host Requirements
 * Identifying Logging Requirements

REFERENCES



SUMMARY
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  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  conf/httpd.conf  www. .com  www. .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  directives:

$ grep  conf/httpd.conf  /export/http/webs/  /export/http/webs/

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

