<HTML
><HEAD
><TITLE
>Win32 Installation Notes</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Installation"
HREF="installation.html"><LINK
REL="PREVIOUS"
TITLE="Installation General Notes"
HREF="geninstall.html"><LINK
REL="NEXT"
TITLE="Administering Bugzilla"
HREF="administration.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="geninstall.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. Installation</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="administration.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="win32"
>3.6. Win32 Installation Notes</A
></H1
><P
>This section covers installation on Microsoft Windows 95,
      98, ME, NT, and 2000.  Bugzilla works fine on Win32 platforms,
      but please remember that the Bugzilla team and the author of the
      Guide neither endorse nor support installation on Microsoft
      Windows.  Bugzilla installs and runs <EM
>best</EM
>
      and <EM
>easiest</EM
> on UNIX-like operating systems,
      and that is the way it will stay for the foreseeable future. The
      Bugzilla team is considering supporting Win32 for the 2.16
      release and later.</P
><P
>The easiest way to install Bugzilla on Intel-archiecture
      machines is to install some variant of GNU/Linux, then follow
      the UNIX installation instructions in this Guide.  If you have
      any influence in the platform choice for running this system,
      please choose GNU/Linux instead of Microsoft Windows.</P
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="wininstall"
>3.6.1. Win32 Installation: Step-by-step</A
></H2
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;	  You should be familiar with, and cross-reference, the rest
	  of the  
	  <A
HREF="installation.html"
>Bugzilla Installation</A
> section while performing your
	  Win32 installation.
	</P
><P
>  Making Bugzilla work on Microsoft Windows is no
	  picnic.  Support for Win32 has improved dramatically in the
	  last few releases, but, if you choose to proceed, you should
	  be a <EM
>very</EM
> skilled Windows Systems
	  Administrator with strong troubleshooting abilities, a high
	  tolerance for pain, and moderate perl skills. Bugzilla on NT
	  requires hacking source code and implementing some advanced
	  utilities.  What follows is the recommended installation
	  procedure for Win32; additional suggestions are provided in
	  <A
HREF="faq.html"
>Appendix A</A
>.
	</P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="procedure"
><OL
TYPE="1"
><LI
><P
>&#13;	    Install <A
HREF="http://www.apache.org/"
TARGET="_top"
>Apache Web
	      Server</A
> for Windows, and copy the Bugzilla files
	    somewhere Apache can serve them.  Please follow all the
	    instructions referenced in <A
HREF="installation.html"
>Bugzilla Installation</A
>
	    regarding your Apache configuration, particularly
	    instructions regarding the <SPAN
CLASS="QUOTE"
>"AddHandler"</SPAN
>
	    parameter and <SPAN
CLASS="QUOTE"
>"ExecCGI"</SPAN
>.
	  </P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;	      You may also use Internet Information Server or Personal
	      Web Server for this purpose.  However, setup is quite
	      different.  If ActivePerl doesn't seem to handle your
	      file associations correctly (for .cgi and .pl files),
	      please consult <A
HREF="faq.html"
>Appendix A</A
>.
	    </P
><P
>&#13;	      If you are going to use IIS, if on Windows NT you must
	      be updated to at least Service Pack 4.  Windows 2000
	      ships with a sufficient version of IIS.
	    </P
></TD
></TR
></TABLE
></DIV
></LI
><LI
><P
>&#13;	    Install <A
HREF="http://www.activestate.com/"
TARGET="_top"
>ActivePerl</A
> for Windows.  Check <A
HREF="http://aspn.activestate.com/ASPN/Downloads/ActivePerl/"
TARGET="_top"
>http://aspn.activestate.com/ASPN/Downloads/ActivePerl</A
> for a current compiled binary.
	  </P
><P
>&#13;	    Please also check the following links to fully understand the status
	    of ActivePerl on Win32:
	    <A
HREF="http://language.perl.com/newdocs/pod/perlport.html"
TARGET="_top"
>&#13;	      Perl Porting</A
>, and
	    <A
HREF="http://ftp.univie.ac.at/packages/perl/ports/nt/FAQ/perlwin32faq5.html"
TARGET="_top"
>&#13;	      Perl on Win32 FAQ</A
>
	  </P
></LI
><LI
><P
>&#13;	    Use ppm from your perl\bin directory to install the following packs: DBI,
	    DBD-Mysql, TimeDate, Chart, Date-Calc, Date-Manip, and GD.  You may need
	    to extract them from .zip format using Winzip or other unzip program first.
	    These additional ppm modules can be downloaded from ActiveState.
	  </P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;	      You can find a list of modules at
	      <A
HREF="http://www.activestate.com/PPMPackages/zips/5xx-builds-only"
TARGET="_top"
>&#13;		http://www.activestate.com/PPMPackages/zips/5xx-builds-only/</A
>
	    </P
></TD
></TR
></TABLE
></DIV
><P
>&#13;	    The syntax for ppm is:
	    <TT
CLASS="computeroutput"
>&#13;	      <TT
CLASS="prompt"
>C:&#62; </TT
><B
CLASS="command"
>ppm &#60;modulename&#62;</B
>
	    </TT
>
	  </P
><DIV
CLASS="example"
><A
NAME="AEN1048"
></A
><P
><B
>Example 3-3. Installing ActivePerl ppd Modules on Microsoft Windows</B
></P
><P
><TT
CLASS="prompt"
>C:&#62;</TT
><B
CLASS="command"
>ppm
		<TT
CLASS="option"
>DBD-Mysql</TT
></B
></P
><P
>Watch your capitalization!</P
></DIV
><P
>&#13;	    You can find ActiveState ppm modules at
	    <A
HREF="http://www.activestate.com/PPMPackages/5.6plus/"
TARGET="_top"
>&#13;	      http://www.activestate.com/PPMPackages/5.6plus</A
>
	  </P
></LI
><LI
><P
>&#13;	    Install MySQL for NT.
	    <DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;		You can download MySQL for Windows NT from <A
HREF="http://www.mysql.com/"
TARGET="_top"
>MySQL.com</A
>.  Some find it helpful to use the WinMySqlAdmin utility, included with the download, to set up the database.
	      </P
></TD
></TR
></TABLE
></DIV
>
	  </P
></LI
><LI
><P
>&#13;	    Setup MySQL
	  </P
><OL
CLASS="SUBSTEPS"
TYPE="a"
><LI
><P
>&#13;		<TT
CLASS="computeroutput"
>&#13;		  <TT
CLASS="prompt"
>C:&#62; </TT
>
		  <B
CLASS="command"
>C:\mysql\bin\mysql -u root mysql</B
>
		</TT
>
	      </P
></LI
><LI
><P
>&#13;		<TT
CLASS="computeroutput"
>&#13;		  <TT
CLASS="prompt"
>mysql&#62;</TT
>
		  <B
CLASS="command"
>DELETE FROM user WHERE Host='localhost' AND User='';</B
>
		</TT
>
	      </P
></LI
><LI
><P
>&#13;		<TT
CLASS="computeroutput"
>&#13;		  <TT
CLASS="prompt"
>mysql&#62;</TT
>
		  <B
CLASS="command"
>UPDATE user SET Password=PASSWORD ('new_password')
		    WHERE user='root';</B
>
		</TT
>
	      </P
><P
><SPAN
CLASS="QUOTE"
>"new_password"</SPAN
>, above, indicates
		whatever password you wish to use for your
		<SPAN
CLASS="QUOTE"
>"root"</SPAN
> user.</P
></LI
><LI
><A
NAME="ntbugs-password"
></A
><P
>&#13;		<TT
CLASS="computeroutput"
>&#13;		  <TT
CLASS="prompt"
>mysql&#62;</TT
>
		  <B
CLASS="command"
>GRANT SELECT, INSERT, UPDATE, DELETE,
		    INDEX, ALTER, CREATE, DROP, REFERENCES
		    ON bugs.* to bugs@localhost
		    IDENTIFIED BY 'bugs_password';</B
>
		</TT
>
	      </P
><P
><SPAN
CLASS="QUOTE"
>"bugs_password"</SPAN
>, above, indicates
		whatever password you wish to use for your
		<SPAN
CLASS="QUOTE"
>"bugs"</SPAN
> user.</P
></LI
><LI
><P
>&#13;		<TT
CLASS="computeroutput"
>&#13;		  <TT
CLASS="prompt"
>mysql&#62;</TT
>
		  <B
CLASS="command"
>FLUSH PRIVILEGES;</B
>
		</TT
>
	      </P
></LI
><LI
><P
>&#13;		<TT
CLASS="computeroutput"
>&#13;		  <TT
CLASS="prompt"
>mysql&#62;</TT
>
		  <B
CLASS="command"
>create database bugs;</B
>
		</TT
>
	      </P
></LI
><LI
><P
>&#13;		<TT
CLASS="computeroutput"
>&#13;		  <TT
CLASS="prompt"
>mysql&#62;</TT
>
		  <B
CLASS="command"
>exit;</B
>
		</TT
>
	      </P
></LI
><LI
><P
>&#13;		<TT
CLASS="computeroutput"
>&#13;		  <TT
CLASS="prompt"
>C:&#62;</TT
>
		  <B
CLASS="command"
>C:\mysql\bin\mysqladmin -u root -p reload</B
>
		</TT
>
	      </P
></LI
></OL
></LI
><LI
><P
>&#13;	    Edit <TT
CLASS="filename"
>checksetup.pl</TT
> in your Bugzilla directory.  Change
	    this line:
	  </P
><P
>&#13;	    <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;my $webservergid = getgrnam($my_webservergroup);
	    </PRE
></FONT
></TD
></TR
></TABLE
>
	  </P
><P
>&#13;	    to
	  </P
><P
>&#13;	    <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;my $webservergid = $my_webservergroup;
	    </PRE
></FONT
></TD
></TR
></TABLE
>
or the name of the group you wish to own the files explicitly:
	    <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;my $webservergid = 'Administrators'
	    </PRE
></FONT
></TD
></TR
></TABLE
>
	  </P
></LI
><LI
><P
>&#13;	    Run <TT
CLASS="filename"
>checksetup.pl</TT
> from the Bugzilla directory.
	  </P
></LI
><LI
><P
>Edit <TT
CLASS="filename"
>localconfig</TT
> to suit your
	    requirements.  Set <TT
CLASS="varname"
>$db_pass</TT
> to your
	    <SPAN
CLASS="QUOTE"
>"bugs_password"</SPAN
> from <A
HREF="win32.html#ntbugs-password"
>step 5.d</A
>, and <TT
CLASS="varname"
>$webservergroup</TT
> to <SPAN
CLASS="QUOTE"
>"8"</SPAN
>.</P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>Not sure on the <SPAN
CLASS="QUOTE"
>"8"</SPAN
> for
	      <TT
CLASS="varname"
>$webservergroup</TT
> above.  If it's
	      wrong, please send corrections.</P
></TD
></TR
></TABLE
></DIV
></LI
><LI
><P
>&#13;	    Edit <TT
CLASS="filename"
>defparams.pl</TT
> to suit your
	    requirements.  Particularly, set
	    <TT
CLASS="varname"
>DefParam("maintainer")</TT
> and
	    <TT
CLASS="varname"
>DefParam("urlbase") to match your
	      install.</TT
>
	  </P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>This is yet another step I'm not sure of, since the
	      maintainer of this documentation does not maintain
	      Bugzilla on NT.  If you can confirm or deny that this
	      step is required, please let me know.</P
></TD
></TR
></TABLE
></DIV
></LI
><LI
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;	      There are several alternatives to Sendmail that will work on Win32.
	      The one mentioned here is a <EM
>suggestion</EM
>, not
	      a requirement.  Some other mail packages that can work include
	      <A
HREF="http://www.blat.net/"
TARGET="_top"
>BLAT</A
>,
	      <A
HREF="http://www.geocel.com/windmail/"
TARGET="_top"
>Windmail</A
>,
	      <A
HREF="http://www.dynamicstate.com/"
TARGET="_top"
>Mercury Sendmail</A
>,
	      and the CPAN Net::SMTP Perl module (available in .ppm).
	      Every option requires some hacking of the Perl scripts for Bugzilla
	      to make it work.  The option here simply requires the least.
	    </P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="procedure"
><OL
TYPE="1"
><LI
><P
>&#13;		Download NTsendmail, available from<A
HREF="http://www.ntsendmail.com/"
TARGET="_top"
> www.ntsendmail.com</A
>. You must have a "real" mail server which allows you to relay off it in your $ENV{"NTsendmail"} (which you should probably place in globals.pl)
	      </P
></LI
><LI
><P
>Put ntsendmail.pm into your .\perl\lib directory.</P
></LI
><LI
><P
>Add to globals.pl:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;# these settings configure the NTsendmail process
use NTsendmail;
$ENV{"NTsendmail"}="your.smtpserver.box";
$ENV{"NTsendmail_debug"}=1;
$ENV{"NTsendmail_max_tries"}=5;
	      </PRE
></FONT
></TD
></TR
></TABLE
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;		  Some mention to also edit
		  <TT
CLASS="varname"
>$db_pass</TT
> in
		  <TT
CLASS="filename"
>globals.pl</TT
> to be your
		  <SPAN
CLASS="QUOTE"
>"bugs_password"</SPAN
>.  Although this may get
		  you around some problem authenticating to your
		  database, since globals.pl is not normally
		  restricted by <TT
CLASS="filename"
>.htaccess</TT
>, your
		  database password is exposed to whoever uses your
		  web server.
		</P
></TD
></TR
></TABLE
></DIV
></LI
><LI
><P
>&#13;		Find and comment out all occurences of
		<SPAN
CLASS="QUOTE"
>"<B
CLASS="command"
>open(SENDMAIL</B
>"</SPAN
> in
		your Bugzilla directory.  Then replace them with:
		<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;# new sendmail functionality
my $mail=new NTsendmail;
my $from="bugzilla\@your.machine.name.tld";
my $to=$login;
my $subject=$urlbase;
$mail-&#62;send($from,$to,$subject,$msg);
		</PRE
></FONT
></TD
></TR
></TABLE
>
	      </P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;		  Some have found success using the commercial product, 
		  <SPAN
CLASS="productname"
>Windmail</SPAN
>.
		  You could try replacing your sendmail calls with:
		  <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;open SENDMAIL, "|\"C:/General/Web/tools/Windmail 4.0 Beta/windmail\" -t &#62; mail.log";
		  </PRE
></FONT
></TD
></TR
></TABLE
>
		or something to that effect.
		</P
></TD
></TR
></TABLE
></DIV
></LI
></OL
></DIV
></LI
><LI
><P
>&#13;	    Change all references in all files from
	    <TT
CLASS="filename"
>processmail</TT
> to
	    <TT
CLASS="filename"
>processmail.pl</TT
>, and
	    rename <TT
CLASS="filename"
>processmail</TT
> to
	    <TT
CLASS="filename"
>processmail.pl</TT
>.
	  </P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;	      Many think this may be a change we want to make for
	      main-tree Bugzilla.  It's painless for the UNIX folks,
	      and will make the Win32 people happier.
	    </P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;	      Some people have suggested using the Net::SMTP Perl module instead of NTsendmail or the other options listed here.  You can change processmail.pl to make this work.
	    <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;

my $smtp = Net::SMTP-&#62;new('&#60;Name of your SMTP server&#62;');   #connect to SMTP server
$smtp-&#62;mail('&#60;your name&#62;@&#60;you smpt server&#62;');# use the sender's adress here
$smtp-&#62;to($tolist); # recipient's address
$smtp-&#62;data();  # Start the mail
$smtp-&#62;datasend($msg);
$smtp-&#62;dataend();   # Finish sending the mail
$smtp-&#62;quit;    # Close the SMTP connection
$logstr = "$logstr; mail sent to $tolist $cclist";
}


</PRE
></FONT
></TD
></TR
></TABLE
>
here is a test mail program for Net::SMTP:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;

use Net::SMTP;
 my $smtp = Net::SMTP-&#62;new('&#60;Name of your SMTP server', Timeout =&#62; 30, Debug
=&#62; 1, ); # connect to SMTP server
                 $smtp-&#62;auth;
                $smtp-&#62;mail('you@yourcompany.com');# use the sender's adress
here
                $smtp-&#62;to('someotherAddress@someotherdomain.com'); #
recipient's address
                $smtp-&#62;data();  # Start the mail
                $smtp-&#62;datasend('test');
                $smtp-&#62;dataend();   # Finish sending the mail
                $smtp-&#62;quit;    # Close the SMTP connection
exit;


</PRE
></FONT
></TD
></TR
></TABLE
>
	    </P
></TD
></TR
></TABLE
></DIV
></LI
><LI
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;	      This step is optional if you are using IIS or another
	      web server which only decides on an interpreter based
	      upon the file extension (.pl), rather than the
	      <SPAN
CLASS="QUOTE"
>"shebang"</SPAN
> line (#/usr/bonsaitools/bin/perl)
	    </P
></TD
></TR
></TABLE
></DIV
><P
>&#13;	    Modify the path to perl on the first line (#!) of all
	    files to point to your Perl installation, and add
	    <SPAN
CLASS="QUOTE"
>"perl"</SPAN
> to the beginning of all Perl system
	    calls that use a perl script as an argument.  This may
	    take you a while. There is a <SPAN
CLASS="QUOTE"
>"setperl.csh"</SPAN
>
	    utility to speed part of this procedure, available in the
	    <A
HREF="patches.html"
>Useful Patches and Utilities for Bugzilla</A
> section of The Bugzilla Guide.
	    However, it requires the Cygwin GNU-compatible environment
	    for Win32 be set up in order to work.  See <A
HREF="http://www.cygwin.com/"
TARGET="_top"
>http://www.cygwin.com/</A
> for details on obtaining Cygwin.
	  </P
></LI
><LI
><P
>&#13;	    Modify the invocation of all system() calls in all perl
	    scripts in your Bugzilla directory.  You should specify the
	    full path to perl for each system() call.  For instance, change
	    this line in processmail: 
	    <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
> 
system ("./processmail",@ARGLIST); 
	    &#60;/programlisting&#62; to
	    &#60;programlisting&#62; 
system ("C:\\perl\\bin\\perl", "processmail", @ARGLIST);
	    </PRE
></FONT
></TD
></TR
></TABLE
>
	  </P
></LI
><LI
><P
>&#13;            Add <TT
CLASS="function"
>binmode()</TT
> calls so attachments
	    will work (<A
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=62000"
TARGET="_top"
>bug 62000</A
>).
          </P
><P
>&#13;            Because Microsoft Windows based systems handle binary
	    files different than Unix based systems, you need to add
	    the following lines to
	    <TT
CLASS="filename"
>createattachment.cgi</TT
>  and
	    <TT
CLASS="filename"
>showattachment.cgi</TT
> before the
	    <TT
CLASS="function"
>require 'CGI.pl';</TT
> line.
</P
><P
>&#13;<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;
binmode(STDIN);
binmode(STDOUT);

</PRE
></FONT
></TD
></TR
></TABLE
>
          </P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;              According to <A
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=62000"
TARGET="_top"
>bug 62000</A
>, the perl documentation says that you should always use <TT
CLASS="function"
>binmode()</TT
> when dealing with binary files, but never when dealing with text files.  That seems to suggest that rather than arbitrarily putting <TT
CLASS="function"
>binmode()</TT
> at the beginning of the attachment files, there should be logic to determine if <TT
CLASS="function"
>binmode()</TT
> is needed or not.
            </P
></TD
></TR
></TABLE
></DIV
></LI
></OL
></DIV
><DIV
CLASS="tip"
><P
></P
><TABLE
CLASS="tip"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/tip.gif"
HSPACE="5"
ALT="Tip"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;	  If you are using IIS or Personal Web Server, you must add cgi
	  relationships to Properties -&#62; Home directory (tab) -&#62;
	  Application Settings (section) -&#62; Configuration (button),
	  such as: 
	</P
><P
>&#13;	  <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
> 
.cgi to: &#60;perl install directory&#62;\perl.exe %s %s
.pl to: &#60;perl install directory&#62;\perl.exe %s %s
GET,HEAD,POST
	  </PRE
></FONT
></TD
></TR
></TABLE
> 
	  Change the path to Perl to match your
	  install, of course.
	</P
></TD
></TR
></TABLE
></DIV
></DIV
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="addlwintips"
>3.6.2. Additional Windows Tips</A
></H2
><DIV
CLASS="tip"
><P
></P
><TABLE
CLASS="tip"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/tip.gif"
HSPACE="5"
ALT="Tip"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;	  From Andrew Pearson:
	  <A
NAME="AEN1221"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>&#13;	      You can make Bugzilla work with Personal Web Server for
	      Windows 98 and higher, as well as for IIS 4.0.
	      Microsoft has information available at <A
HREF="            http://support.microsoft.com/support/kb/articles/Q231/9/98.ASP"
TARGET="_top"
> http://support.microsoft.com/support/kb/articles/Q231/9/98.ASP</A
>
	    </P
><P
>&#13;	      Basically you need to add two String Keys in the
	      registry at the following location:
	    </P
><P
>&#13;	      <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ScriptMap
	      </PRE
></FONT
></TD
></TR
></TABLE
>
	    </P
><P
>&#13;	      The keys should be called ".pl" and ".cgi", and both
	      should have a value something like:
	      <B
CLASS="command"
>c:/perl/bin/perl.exe "%s" "%s"</B
>
	    </P
><P
>&#13;	      The KB article only talks about .pl, but it goes into
	      more detail and provides a perl test script.
	    </P
></BLOCKQUOTE
>
	</P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="tip"
><P
></P
><TABLE
CLASS="tip"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/tip.gif"
HSPACE="5"
ALT="Tip"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;	  If attempting to run Bugzilla 2.12 or older, you will need
	  to remove encrypt() calls from the Perl source. This is
	  <EM
>not necessary</EM
> for Bugzilla 2.13 and
	  later, which includes the current release, Bugzilla
	  2.14.
	  <DIV
CLASS="example"
><A
NAME="AEN1233"
></A
><P
><B
>Example 3-4. Removing encrypt() for Windows NT Bugzilla version
	      2.12 or earlier</B
></P
><P
>&#13;	      Replace this:   
	      <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>  
SendSQL("SELECT encrypt(" . SqlQuote($enteredpwd) . ", " . SQLQuote(substr($realcryptpwd, 0, 2)) . ")");
my $enteredcryptpwd = FetchOneColumn();
	      </PRE
></FONT
></TD
></TR
></TABLE
> 
with this:   
	      <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>  
my $enteredcryptpwd = $enteredpwd   
	      </PRE
></FONT
></TD
></TR
></TABLE
> 
	      in cgi.pl.
	    </P
></DIV
>
	</P
></TD
></TR
></TABLE
></DIV
></DIV
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="bzldap"
>3.6.3. Bugzilla LDAP Integration</A
></H2
><P
>&#13;	What follows is some late-breaking information on using the
	LDAP authentication options with Bugzilla.  The author has not
	tested these (nor even formatted this section!) so please
	contribute feedback to the newsgroup.
      </P
><P
CLASS="literallayout"
><br>
Mozilla::LDAP&nbsp;module<br>
<br>
The&nbsp;Mozilla::LDAP&nbsp;module&nbsp;allows&nbsp;you&nbsp;to&nbsp;use&nbsp;LDAP&nbsp;for&nbsp;authentication&nbsp;to<br>
the&nbsp;Bugzilla&nbsp;system.&nbsp;&nbsp;This&nbsp;module&nbsp;is&nbsp;not&nbsp;required&nbsp;if&nbsp;you&nbsp;are&nbsp;not&nbsp;using<br>
LDAP.<br>
<br>
Mozilla::LDAP&nbsp;(aka&nbsp;PerLDAP)&nbsp;is&nbsp;available&nbsp;for&nbsp;download&nbsp;from<br>
http://www.mozilla.org/directory.<br>
<br>
NOTE:&nbsp;The&nbsp;Mozilla::LDAP&nbsp;module&nbsp;requires&nbsp;Netscape's&nbsp;Directory&nbsp;SDK.<br>
Follow&nbsp;the&nbsp;link&nbsp;for&nbsp;"Directory&nbsp;SDK&nbsp;for&nbsp;C"&nbsp;on&nbsp;that&nbsp;same&nbsp;page&nbsp;to<br>
download&nbsp;the&nbsp;SDK&nbsp;first.&nbsp;&nbsp;After&nbsp;you&nbsp;have&nbsp;installed&nbsp;this&nbsp;SDK,&nbsp;then<br>
install&nbsp;the&nbsp;PerLDAP&nbsp;module.<br>
----------------------------------------------------------------------<br>
<br>
Post-Installation&nbsp;Checklist<br>
----------------------------------------------------------------------<br>
Set&nbsp;useLDAP&nbsp;to&nbsp;"On"&nbsp;**only**&nbsp;if&nbsp;you&nbsp;will&nbsp;be&nbsp;using&nbsp;an&nbsp;LDAP&nbsp;directory<br>
for&nbsp;authentication.&nbsp;&nbsp;Be&nbsp;very&nbsp;careful&nbsp;when&nbsp;setting&nbsp;up&nbsp;this&nbsp;parameter;<br>
if&nbsp;you&nbsp;set&nbsp;LDAP&nbsp;authentication,&nbsp;but&nbsp;do&nbsp;not&nbsp;have&nbsp;a&nbsp;valid&nbsp;LDAP&nbsp;directory<br>
set&nbsp;up,&nbsp;you&nbsp;will&nbsp;not&nbsp;be&nbsp;able&nbsp;to&nbsp;log&nbsp;back&nbsp;in&nbsp;to&nbsp;Bugzilla&nbsp;once&nbsp;you&nbsp;log<br>
out.&nbsp;&nbsp;(If&nbsp;this&nbsp;happens,&nbsp;you&nbsp;can&nbsp;get&nbsp;back&nbsp;in&nbsp;by&nbsp;manually&nbsp;editing&nbsp;the<br>
data/params&nbsp;file,&nbsp;and&nbsp;setting&nbsp;useLDAP&nbsp;back&nbsp;to&nbsp;0.)<br>
<br>
If&nbsp;using&nbsp;LDAP,&nbsp;you&nbsp;must&nbsp;set&nbsp;the&nbsp;three&nbsp;additional&nbsp;parameters:<br>
<br>
Set&nbsp;LDAPserver&nbsp;to&nbsp;the&nbsp;name&nbsp;(and&nbsp;optionally&nbsp;port)&nbsp;of&nbsp;your&nbsp;LDAP&nbsp;server.<br>
If&nbsp;no&nbsp;port&nbsp;is&nbsp;specified,&nbsp;it&nbsp;defaults&nbsp;to&nbsp;the&nbsp;default&nbsp;port&nbsp;of&nbsp;389.&nbsp;&nbsp;(e.g<br>
"ldap.mycompany.com"&nbsp;or&nbsp;"ldap.mycompany.com:1234")<br>
<br>
Set&nbsp;LDAPBaseDN&nbsp;to&nbsp;the&nbsp;base&nbsp;DN&nbsp;for&nbsp;searching&nbsp;for&nbsp;users&nbsp;in&nbsp;your&nbsp;LDAP<br>
directory.&nbsp;&nbsp;(e.g.&nbsp;"ou=People,o=MyCompany")&nbsp;&nbsp;uids&nbsp;must&nbsp;be&nbsp;unique&nbsp;under<br>
the&nbsp;DN&nbsp;specified&nbsp;here.<br>
<br>
Set&nbsp;LDAPmailattribute&nbsp;to&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;attribute&nbsp;in&nbsp;your&nbsp;LDAP<br>
directory&nbsp;which&nbsp;contains&nbsp;the&nbsp;primary&nbsp;email&nbsp;address.&nbsp;&nbsp;On&nbsp;most&nbsp;directory<br>
servers&nbsp;available,&nbsp;this&nbsp;is&nbsp;"mail",&nbsp;but&nbsp;you&nbsp;may&nbsp;need&nbsp;to&nbsp;change&nbsp;this.<br>
----------------------------------------------------------------------<br>
<br>
(Not&nbsp;sure&nbsp;where&nbsp;this&nbsp;bit&nbsp;should&nbsp;go,&nbsp;but&nbsp;it's&nbsp;important&nbsp;that&nbsp;it&nbsp;be&nbsp;in<br>
there&nbsp;somewhere...)<br>
----------------------------------------------------------------------<br>
Using&nbsp;LDAP&nbsp;authentication&nbsp;for&nbsp;Bugzilla:<br>
<br>
The&nbsp;existing&nbsp;authentication&nbsp;scheme&nbsp;for&nbsp;Bugzilla&nbsp;uses&nbsp;email&nbsp;addresses<br>
as&nbsp;the&nbsp;primary&nbsp;user&nbsp;ID,&nbsp;and&nbsp;a&nbsp;password&nbsp;to&nbsp;authenticate&nbsp;that&nbsp;user.&nbsp;&nbsp;All<br>
places&nbsp;within&nbsp;Bugzilla&nbsp;where&nbsp;you&nbsp;need&nbsp;to&nbsp;deal&nbsp;with&nbsp;user&nbsp;ID&nbsp;(e.g<br>
assigning&nbsp;a&nbsp;bug)&nbsp;use&nbsp;the&nbsp;email&nbsp;address.<br>
<br>
The&nbsp;LDAP&nbsp;authentication&nbsp;builds&nbsp;on&nbsp;top&nbsp;of&nbsp;this&nbsp;scheme,&nbsp;rather&nbsp;than<br>
replacing&nbsp;it.&nbsp;&nbsp;The&nbsp;initial&nbsp;log&nbsp;in&nbsp;is&nbsp;done&nbsp;with&nbsp;a&nbsp;username&nbsp;and&nbsp;password<br>
for&nbsp;the&nbsp;LDAP&nbsp;directory.&nbsp;&nbsp;This&nbsp;then&nbsp;fetches&nbsp;the&nbsp;email&nbsp;address&nbsp;from&nbsp;LDAP<br>
and&nbsp;authenticates&nbsp;seamlessly&nbsp;in&nbsp;the&nbsp;standard&nbsp;Bugzilla&nbsp;authentication<br>
scheme&nbsp;using&nbsp;this&nbsp;email&nbsp;address.&nbsp;&nbsp;If&nbsp;an&nbsp;account&nbsp;for&nbsp;this&nbsp;address<br>
already&nbsp;exists&nbsp;in&nbsp;your&nbsp;Bugzilla&nbsp;system,&nbsp;it&nbsp;will&nbsp;log&nbsp;in&nbsp;to&nbsp;that<br>
account.&nbsp;&nbsp;If&nbsp;no&nbsp;account&nbsp;for&nbsp;that&nbsp;email&nbsp;address&nbsp;exists,&nbsp;one&nbsp;is&nbsp;created<br>
at&nbsp;the&nbsp;time&nbsp;of&nbsp;login.&nbsp;&nbsp;(In&nbsp;this&nbsp;case,&nbsp;Bugzilla&nbsp;will&nbsp;attempt&nbsp;to&nbsp;use&nbsp;the<br>
"displayName"&nbsp;or&nbsp;"cn"&nbsp;attribute&nbsp;to&nbsp;determine&nbsp;the&nbsp;user's&nbsp;full&nbsp;name.)<br>
<br>
After&nbsp;authentication,&nbsp;all&nbsp;other&nbsp;user-related&nbsp;tasks&nbsp;are&nbsp;still&nbsp;handled<br>
by&nbsp;email&nbsp;address,&nbsp;not&nbsp;LDAP&nbsp;username.&nbsp;&nbsp;You&nbsp;still&nbsp;assign&nbsp;bugs&nbsp;by&nbsp;email<br>
address,&nbsp;query&nbsp;on&nbsp;users&nbsp;by&nbsp;email&nbsp;address,&nbsp;etc.<br>
----------------------------------------------------------------------<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="geninstall.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="administration.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Installation General Notes</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="installation.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Administering Bugzilla</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>