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 best and easiest 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.
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.
You should be familiar with, and cross-reference, the rest of the Chapter 3 section while performing your Win32 installation. 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 very skilled Windows Systems Administrator with both strong troubleshooting abilities and a high tolerance for pain. 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 The Bugzilla FAQ. |
Install Apache Web Server for Windows.
You may also use Internet Information Server or Personal Web Server for this purpose. However, setup is slightly more difficult. If ActivePerl doesn't seem to handle your file associations correctly (for .cgi and .pl files), please consult The Bugzilla FAQ. 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. |
Install ActivePerl for Windows. Check http://aspn.activestate.com/ASPN/Downloads/ActivePerl for a current compiled binary.
Please also check the following links to fully understand the status of ActivePerl on Win32: Perl Porting, and Perl on Win32 FAQ
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.
You can find a list of modules at http://www.activestate.com/PPMPackages/zips/5xx-builds-only/ |
The syntax for ppm is: C:> ppm <modulename>
Example 3-3. Installing ActivePerl ppd Modules on Microsoft Windows
C:>ppm DBD-Mysql
Watch your capitalization!
You can find ActiveState ppm modules at http://www.activestate.com/PPMPackages/5.6plus
Install MySQL for NT.
You can download MySQL for Windows NT from MySQL.com. Some find it helpful to use the WinMySqlAdmin utility, included with the download, to set up the database. |
Setup MySQL
C:> C:\mysql\bin\mysql -u root mysql
mysql> DELETE FROM user WHERE Host='localhost' AND User='';
mysql> UPDATE user SET Password=PASSWORD ('new_password') WHERE user='root';
"new_password", above, indicates whatever password you wish to use for your "root" user.
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, DROP, REFERENCES ON bugs.* to bugs@localhost IDENTIFIED BY 'bugs_password';
"bugs_password", above, indicates whatever password you wish to use for your "bugs" user.
mysql> FLUSH PRIVILEGES;
mysql> create database bugs;
mysql> exit;
C:> C:\mysql\bin\mysqladmin -u root -p reload
Edit checksetup.pl in your Bugzilla directory. Change this line:
"my $webservergid = getgrnam($my_webservergroup); "
to
"my $webservergid = $my_webservergroup; "
Run checksetup.pl from the Bugzilla directory.
Edit localconfig to suit your requirements. Set $db_pass to your "bugs_password" from step 5.d, and $webservergroup to "8".
Not sure on the "8" for $webservergroup above. If it's wrong, please send corrections. |
Edit defparams.pl to suit your requirements. Particularly, set DefParam("maintainer") and DefParam("urlbase") to match your install.
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. |
There are several alternatives to Sendmail that will work on Win32. The one mentioned here is a suggestion, not a requirement. Some other mail packages that can work include BLAT, Windmail, Mercury Sendmail, 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. |
Download NTsendmail, available from www.ntsendmail.com. 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)
Put ntsendmail.pm into your .\perl\lib directory.
Add to globals.pl:
# these settings configure the NTsendmail process use NTsendmail; $ENV{"NTsendmail"}="your.smtpserver.box"; $ENV{"NTsendmail_debug"}=1; $ENV{"NTsendmail_max_tries"}=5; |
Some mention to also edit $db_pass in globals.pl to be your "bugs_password". Although this may get you around some problem authenticating to your database, since globals.pl is not normally restricted by .htaccess, your database password is exposed to whoever uses your web server. |
Find and comment out all occurences of "open(SENDMAIL" in your Bugzilla directory. Then replace them with:
# new sendmail functionality my $mail=new NTsendmail; my $from="bugzilla\@your.machine.name.tld"; my $to=$login; my $subject=$urlbase; $mail->send($from,$to,$subject,$msg); |
The code above needs testing as well to make sure it is correct. |
Change all references in all files from processmail to processmail.pl, and rename processmail to processmail.pl.
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. |
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.
|
This step is completely 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 "shebang" line (#/usr/bonsaitools/bin/perl) |
Modify the path to perl on the first line (#!) of all files to point to your Perl installation, and add "perl" 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 "setperl.csh" utility to speed part of this procedure, available in the Useful Patches and Utilities for Bugzilla section of The Bugzilla Guide. However, it requires the Cygwin GNU-compatible environment for Win32 be set up in order to work. See http://www.cygwin.com/ for details on obtaining Cygwin.
Modify the invocation of all system() calls in all perl scripts in your Bugzilla directory. For instance, change this line in processmail:
system ("./processmail.pl",@ARGLIST); |
system ("perl processmail.pl",@ARGLIST); |
If you are using IIS 5.0 or higher, you must add cgi relationships to Properties -> Home directory (tab) -> Application Settings (section) -> Configuration (button), such as:
|
|
This was some late breaking information from Jan Evert. Sorry for the lack of formatting. I'm busy installing bugzilla on a WinNT machine and I thought I'd notify you |