I was struggling a bit with making Bugzilla 2.2 work on my Windows XAMPP. I kept getting error about child processes not being able to start. The logs said this:

[Mon Jul 05 09:04:38 2010] [error] [client 127.0.0.1] (OS 3)The system cannot find the path specified. : couldn't create child process: 720003: index.cgi

[Mon Jul 05 09:04:38 2010] [error] [client 127.0.0.1] (OS 3)The system cannot find the path specified. : couldn't spawn child process: C:/xampp/htdocs/bugzilla/index.cgi

Ths solution is actually pretty straigt-forward, once you know it.
First, add a registry key:

HKEY_CLASSES_ROOT.cgiShellExecCGICommand

and change it’s default value to:

C:\xampp\perl\bin\perl.exe -T

Adjust to your system’s paths, of course. You can use this .reg file if you have installed into c:\xampp or you can copy and paste from here:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT.cgiShellExecCGICommand]
@="C:\xampp\perl\bin\perl.exe -T"

Then, edit your httpd.conf (e.g. c:\xampp\apache\conf\httpd.conf) and add these lines:

<directory "C:/xampp/htdocs/bugzilla">
  AddHandler cgi-script .cgi
  Options +Indexes +ExecCGI
  DirectoryIndex index.cgi
  AllowOverride Limit

  # To enable the this Windows specific behavior (and therefore -disable- the
  # equivilant Unix behavior), uncomment the following directive:
  #
  ScriptInterpreterSource registry

The important part here is ScriptInterpreterSource registry. It will make Apache pick up the interpreter from the registry rather then from the Shebang in the bugzilla cgi scripts. (see also http://httpd.apache.org/docs/2.0/mod/core.html#scriptinterpretersource).

This is necessary since there is no

#!/usr/bin/perl -wT

on your windows system.

Leave a comment