In outline, the installation proceeds as follows:
- Install Perl (5.8.0 or above for non-Windows platforms; 5.8.1 for Windows)
- Perl for Windows can be obtained from ActiveState
- The current installation of Bugzilla uses Perl located at C:\Perl
- Install a Database Engine
- Bugzilla works with MySQL and PostgreSQL database servers.
- You only require one of these systems to make use of Bugzilla.
- The current installation of Bugzilla uses MySql , which is already installed as a service on the machine as part of the XAmpp bundle.
- Install a Webserver
- Any web server that is capable of running CGI scripts will work
- The current installation of Bugzilla uses Apcahe , which is already installed as a service on the machine as part of the XAmpp bundle.
- Install Bugzilla
- Download Bugzilla and place it in a suitable directory, accessible by the default web server user
- The current instalation of bugzilla is placed at D:\compwest\bugzilla-3.0
- Install Perl modules
- Bugzilla's installation process is based on a script called checksetup.pl. The first thing it checks is whether you have appropriate versions of all the required Perl modules
- Run checksetup.pl
- checksetup.pl will print out a list of the required and optional Perl modules, together with the versions (if any) installed on your machine.
- The Perl modules can be installed as follows:
C:\perl> ppm install <module name>
- The best source for the Windows PPM modules needed for Bugzilla is probably the Bugzilla Test Server (aka 'Landfill'), so you should add the Landfill package repository as follows:
ppm repository add landfill http://www.landfill.bugzilla.org/ppm/
- Here is a complete list of modules and their minimum versions
- Required Perl modules:
- CGI 2.93 or CGI 3.11 if using mod_perl
- Date::Format (2.21)
- DBI (1.41)
- DBD::mysql (2.9003) if using MySQL
- DBD::Pg (1.45) if using PostgreSQL
- File::Spec (0.84)
- Template (2.12)
- Email::Send (2.00)
- Email::MIME::Modifier (any)
- Optional Perl modules:
- GD (1.20) for bug charting
- Template::Plugin::GD::Image (1.20) for Graphical Reports
- Chart::Base (1.0) for bug charting
- GD::Graph (any) for bug charting
- GD::Text (any) for bug charting
- XML::Twig (any) for bug import/export
- MIME::Parser (5.406) for bug import/export
- LWP::UserAgent (any) for Automatic Update Notifications
- PatchReader (0.9.4) for pretty HTML view of patches
- Image::Magick (any) for converting BMP image attachments to PNG
- Net::LDAP (any) for LDAP Authentication
- SOAP::Lite (any) for the web service interface
- HTML::Parser (3.40) for More HTML in Product/Group Descriptions
- HTML::Scrubber (any) for More HTML in Product/Group Descriptions
- Email::MIME::Attachment::Stripper (any) for Inbound Email
- Email::Reply (any) for Inbound Email
- mod_perl2 (1.999022) for mod_perl
- CGI (2.93) for mod_perl
- Apache::DBI (0.96) for mod_perl2
- Install a Mail Transfer Agent or a SMTP Server
- Bugzilla uses this to send emails. You have to set it correctly to send emails.
- The current installation of bugzilla uses JAMES, which is installed as a service using default settings
- You should now run checksetup.pl again, this time without the --check-modules switch.
- This time, checksetup.pl should tell you that all the correct modules are installed and will display a message about, and write out a file called, localconfig. This file contains the default settings for a number of Bugzilla parameters.
- Load this file in your editor and modify the parameters accordingly.
- The current instalation of bugzilla is configured as follows
$db_driver = 'mysql'; $db_host = 'localhost'; $db_name = 'bugs'; $db_user = 'bugs'; $db_pass = 'XXXX'; $db_port = 0;
- Configuring Database
- You need to add a new MySQL user for Bugzilla to use
- We use an SQL GRANT command to create a "bugs" user. This also restricts the "bugs"user to operations within a database called "bugs", and only allows the account to connect from "localhost". Modify it to reflect your setup if you will be connecting from another machine or as a different user.
(NOTE : The $db_pass in the query should match the $db_pass in localconfig file)
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES, CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY '$db_pass'; mysql> FLUSH PRIVILEGES;
- Configuring webserver
- Load the apache hhtpd.conf file into a editor.(In this case it can be found at C:\xampp\apache\conf)
- Make apache to listen on a new port by adding LISTEN portnumber
- Uncomment the line Include conf/extra/httpd-vhosts.conf
- Load httpd-vhosts.conf file into a editor.(In this case it can be found at C:\xampp\apache\conf\extra)
- Add a virual host
For the current installation a new virtual host is defined as follows
<VirtualHost *:90> DocumentRoot D:\compwest\bugzilla-3.0 ServerName localhost:90 </VirtualHost>
Bugzilla is configured by changing various parameters, accessed from the "Edit parameters" link in the page footer. For the description of the parameters click on the link ConfiguringBugzilla