First, get Administrative access to the machine on which you want to install Bugzilla. It should be a simple step. Usually, Users are given Administrative rights on Windows machine. However, if you dont have, contact your Administrator.
Then download the Bugzilla from http://bugzilla.org/download.html. There are two ways of gettng it - through CVS or direct downloading the tar file. Remember there are no Zip files. However, any zip utility should be able to untar the Bugzilla. I download the tar file and untarred it using WinZip. I placed the untarred 'bugzilla' directory in my c: drive. So, the location of bugzilla is c:\bugzilla.
Get MySQL database. The latest production release is 4.1. Though MySQL 5.x is available under Beta, it is not recommended. Along with MySQL db, download one of the graphical client to connect to the DB Server. There are a couple of options - MySQL Control Center, My SQL Query Browser, Toad for MySQL...
Install and Configure MySQL
Complete the default installation (i.e. Typical) of MySQL db.
Create a User for database. Lets name the created user as bugs_user with password 'bugs_pass'.
Create a database. Lets name the created DB as 'bugsdb'.
Grant all access rights to user 'bugs_user' for the database 'bugsdb'.
If you are running MySQL 4.1, you may encounter the Client does not support authentication protocol requested by server error message. To fix this, once the user has been created you will have to reset the password using OLD_PASSWORD. See this blog entry.
Next, you need to install Perl on the machine. I installed Perl 5.8.7 from ActiveState.
Install Perl in the root directory. Mine is in C:\perl Plz take care that Perl is not installed in Program Files directory as it may break Perl's Template-Toolkit installer.
Create a temp directory in root.(c:\temp). If you find issues in running Bugzilla, plz see that temp is located in c:\ only.
Install Perl Modules
Next we need to install perl modules. Following are the mandatory modules:
Following are the optional modules:
Though these are not required, you may install them for creating report charts.
There are two ways to install these modules.
Go to http://landfill.bugzilla.org/ppm/ and download bugzilla-bundle.zip file and unzip it to a location of your choice. Open a console window, go to the unzipped directory, and run the following commands sequencely
X:\>ppm install AppConfig.ppd
X:\>ppm install TimeDate.ppd
X:\>ppm install DBI.ppd
X:\>ppm install DBD-mysql.ppd
X:\>ppm install Template-Toolkit.ppd
X:\>ppm install GD.ppd
X:\>ppm install Chart.ppd
X:\>ppm install GDGraph.ppd
X:\>ppm install PatchReader.ppd
If you need to uninstall any module, use the following command:
X:\>ppm uninstall PatchReader.ppd
Get a Web Server
We need a Web Server to serve bugzilla pages. I have used Apache Web Server. You may use any other web server also, including IIS. Following steps are required to install Apache and configure it to serve bugzilla.
Download the latest stable Apache release from http://httpd.apache.org/download.cgi.
Installing Apache on Windows is again a smooth process. Just follow the instructions. Make sure you Install it for All Users. Apache always install itself in Apache2 directory. On my machine, apache is in C:\Program Files\Apache Group\Apache2.
Edit C:\Program Files\Apache Group\Apache2\conf\httpd.conf with your favourite text editor.
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
Change the DocumentRoot setting to point to C:\Bugzilla. Note there are two locations in httpd.conf that need to be updated.
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
# This should be changed to whatever you set DocumentRoot to.
Enable CGI support in Apache by uncommenting the AddHandler cgi-script .cgi line.
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
AddHandler cgi-script .cgi
And allow .cgi scripts in the Bugzilla directory by adding the ExecCGI option. We also need to allow Bugzilla's .htaccess file to restrict access to sensitive documents by allowing it to override the defaults. This involves changing AllowOverride None to AllowOverride All.
Apache also needs to know to use Perl to execute .cgi files, via the ScriptInterpreterSource directive.
# This should be changed to whatever you set DocumentRoot to.
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
# The Options directive is both complicated and important. Please see
# for more information.
Options Indexes FollowSymLinks ExecCGI
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
# Controls who can get stuff from this server.
Allow from all
# Tell Apache to use Perl to execute .cgi
You also should add index.cgi to the DirectoryIndex list.
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
# The index.html.var file (a type-map) is used to deliver content-
# negotiated documents. The MultiViews Option can be used for the
# same purpose, but it is much slower.
DirectoryIndex index.html index.html.var index.cgi
In order for ScriptInterpreterSource Registry-Strict to work, you also need to add an entry to the Registry so Apache will use Perl to execute .cgi files.
Create a key HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command with the default value of the full path of perl.exe with a -T parameter. For example C:\Perl\bin\perl.exe -T
C:\>net stop apache2
The Apache2 service is stopping..
The Apache2 service was stopped successfully.
C:\>net start apache2
The Apache2 service is starting.
The Apache2 service was started successfully.
Once all of the above steps are executed successfully, we are ready to test bugzilla installation.
On the console window, go to c:\bugzilla, and execute the following command:
If it runs without error message,then congratulations,otherwise figure out what mighty be wrong according to the error message,it is very obvious.
Now, we are ready to configure bugzilla. Open a file called localconfig in your favourite text editor.
First, update the DB info:
$db_host = "localhost"; # where is the database?
$db_port = 3306; # which port to use
$db_name = "bugsdb"; # name of the MySQL database
$db_user = "bugs_user"; # user to attach to the MySQL database
$db_pass = 'bugs_pass';
Customize following variables according to your needs to initialize mysql database
@severities,the secerity level of the bug to be specified when creating a new bug
@priorities,the priority you can assign to the bug
@opsys,possible operating system of your test environment
@platforms,hardware platform your system is running on.
You can also update these variables any time after the installation and configuration is over.
Then run the above command again,this will initialize database and create required tables.
If things go wrong during database setup,try to make sure you have edited database connect parameters correctly .
If you encounter the following error Client does not support authentication protocol ,that is because the newer version mysql use some new password encryption algorithm.
Now all we require is to configure email service. For this install a SendMail-compliant Mail Transfer Agent.
After all these steps,the bugzilla can be installed and accessed now if nothing goes wrong.
Open your favourite browser and go to http://localhost/ If all steps have had been successful, you would be at bugzilla home.