Closed Bug 297568 Opened 19 years ago Closed 10 years ago

Update documentation to cover additional configuration steps required for IIS6

Categories

(Bugzilla :: Documentation, enhancement, P1)

x86
Windows 2000
enhancement

Tracking

()

RESOLVED WONTFIX

People

(Reporter: brian, Unassigned)

Details

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0

I've created a virtual directory and in my script mappings I've tried every
command line combination for calling perl that I can find or think of.

If I use the follwoing (exactly as shown)

"c:\perl\bin\perl.exe" "%s" %s

I can get a page that reads:

"CGI Error ... The specified CGI application misbehaved by not returning a
complete set of HTTP headers."

ANY other combination of perl command lines (and I've tried hundreds so far)
yeilds me a 404 error when accessing http://server/bugzilla

-brian

Reproducible: Always
please try

  c:\perl\bin\perl.exe -xc:\bugzilla -wT "%s" %s


Using that command line I get a 404 error when accessing http://server/bugzilla
... If I use anything other than the command I referenced I get a 404.  The
referenced command gives a CGI error.

-brian
what version of bugzilla, and what exact version of activestate perl?
i now have a 2003 server install and i can reproduce.

this is very strange, iis isn't even trying to run perl before throwing a 404.
Assignee: installation → bugzilla
Status: UNCONFIRMED → NEW
Component: Installation & Upgrading → Documentation
Ever confirmed: true
here's the trace..

OPEN  C:\bugzilla\  SUCCESS Options: Open NoBuffer Access: All  
QUERY C:\bugzilla\  SUCCESS FileFsVolumeInformation 
QUERY C:\bugzilla\  BUFFER OVERFLOW FileAllInformation  
CLOSE C:\bugzilla\  SUCCESS   
OPEN  C:\bugzilla\index.cgi  SUCCESS Options: Open  Access: All  
QUERY C:\bugzilla\index.cgi  SUCCESS FileFsVolumeInformation 
QUERY C:\bugzilla\index.cgi  BUFFER OVERFLOW FileAllInformation  
CLOSE C:\bugzilla\index.cgi  SUCCESS   
OPEN  C:\WINDOWS\help\iisHelp\common\404b.htm SUCCESS

there's no actual errors there, and no attempt to start perl.exe
(the buffer overflows are normal)
ok, what's happening is IIS6 disables CGI by default, and when you try to hit a
disabled service extension it returns 404.

in the iis management console, go to the 'web service extension' section and
allow 'all unknown cgi extensions'.

ideally you should be able to add your own web service extension for just cgi,
however it looks like a bug in the msc is blocking this from working.  you need
to add a filename that matches the mappping exactly.. ie
  c:\perl\bin\perl.exe -xc:\bugzilla -wT "%s" %s
however the msc complains that this isn't a valid filename.

explaining a few things:

when you install activestate perl, it adds a service extension for
  c:\perl\bin\perl.exe "%s" %s
which is why when you use this one you're not getting blocked / 404'ed

however bugzilla uses taint mode, which on windows must be specified on the
command line, so the default mapping won't work.


we need to add the following to our install docs:

If you are running IIS6 you need to allow access to all unknown CGI extensions
via the Web Service Extensions sections of the IIS Management Console.  If
access for CGIs hasn't been enabled, IIS6 will return 404 errors.

Severity: critical → normal
Summary: Cant run bugzilla under Win2K3 with IIS6 and Activestate Perl 5.8 → Update documentation to cover additional configuration steps required for IIS6
i just tried adding a mapping using
  c:\perl\bin\perl.exe -xc:\bugzilla -wT "%s" %s

and it worked - i suspect the iis management console bug has been fixed.
My installation of IIS6 would not allow me to add the mapping, but here is a workaround.  Create a mapping to c:\perl\bin\perl.exe -xbugzilla -wT "%s" %s, then stop the IISAdmin service.  Edit the metabase directly (c:\windows\system32\inetsvr\metabase.xml, and replace -xbugzilla with -xC:\bugzilla.

Restart the IISAdmin and World Wide Web Publishing services, and voila -- Bugzilla works without having to enable all unknown CGI extensions.
I've written a step by step guide for my own use regarding how to configure IIS to allow the Bugzilla cgi extensions. I thought it might as well go into the bugzilla documentation if it is acceptable to others. There might be other quicker ways to get this working, but this is the only way I could manage.

Regarding comment #7 from byron jones, I could NOT get this to work using the IIS mmc (it doesn't like ":" in the parameter list). We are running Windows Server 2003 with all the latest bug fixes installed.

I can add this to the documentation if others find this text ok.

Regards,
Robin.

===================================
Note for IIS 6:

In order for Bugzilla to work at all under IIS 6, you must enable the 
Bugzilla cgi extension. The quick (but very unsecure) way of doing this 
is to open up IIS Manager and click on "Web Service Extensions". Then 
select "All unknown CGI Extensions" and click on the "Allow" button. 
This is NOT recommended for production use, but can be used to make sure the 
Bugzilla is working correctly before enabling the extension using the 
secure method below.

The secure way to add the Bugzilla extension is as follows:

Note: this assumes you have installed bugzilla to the following 
directory: "C:\Bugzilla" . And perl to "C:\Perl" Change accordingly if 
neccessary.

1. Open IIS MMC and select on "Web Service Extensions". Then click "Add a new web service extension..."
2. For the required file, enter the following:

c:\perl\bin\perl.exe -xbugzilla -wT "%s" %s

3. Now you have to edit the metabase.xml file manually, since the above 
path is incorrect, but the correct one cannot be added via the 
MMC.  So open the metabase.xml file (found in 
"c:\windows\system32\inetsrv") in Notepad and find the following entry 
for Bugzilla:

1,c:\perl\bin\perl.exe -xbugzilla -wT "%s" %s,1,Bugzilla,Bugzilla

This entry needs to be changed to (note that the quotes will have been converted to " by the MMC):

1,C:\perl\bin\perl.exe -xc:\Bugzilla -wT "%s" %s,1,Bugzilla,Bugzilla

In effect the path specified here should be the same as the one 
specified in Application mappings of your bugzilla web site and can 
actually be copied from the appropriate entry for this mapping in the 
metabase.xml file (or compare it to ensure they are pointing to the 
same file and parameters).

4. Now save the file.  If you have "Enable Direct Metabase Edit" 
checked in the properties for IIS on your server, you should now see an entry 
called Bugzilla under the Web Service Extensions in IIS. If you do not 
have this checked, you will have to restart IIS (NET STOP /y IISADMIN, 
NET START W3SVC).

5. To disable this extension in the future simply select "Prohibit" on 
the Bugzilla extension in "Web Service Extensions". Obvioulsy this will 
disable Bugzilla.
Assignee: bugzilla → documentation
This is pretty important and should be added to the docs. Probably the best thing to do would be to take things from Byron's win32install guide and make sure that they're all in the IIS section of Configuration.
Priority: -- → P2
Severity: normal → enhancement
Priority: P2 → P1
  FWIW, I just used the above instructions, and unfortunately they aren't very workable, because IIS keeps resetting the argument to -xbugzilla whenever you make a configuration change. So for now I'd recommend that people just allow all unknown CGI extensions.
glob, do you have working steps to follow? Or said more explicitly, would you be willing to assign this bug to you? :-D
i have to see if i still have access to an iis6 box first.
IIS6 shipped with XP (now EOLed) and Server 2003 (EOLed in July 2015). I don't think it's worth updating the docs with IIS6-specific stuff these days. When we get the Windows docs in order, we will no doubt document whatever versions are current.

Gerv
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.