Follow the instructions below to install Bugzilla on Microsoft Windows. Bugzilla is an open-source project management and issue tracking program, commonly called a “bugtracker”.
UPDATE 2016/03/29: Someone asked a question on Stack Overflow that referenced these instructions, saying that it wasn’t possible to file a bug with an attachment after installation. Evidently this problem was fixed by creating a directory named “tmp” within the xampp directory.
UPDATE 2017/01/27: I ran the old instructions against a fresh Windows 7 machine, and they no longer worked correctly. Most of these problems seemed to be related to the package management system of the version of Perl bundled with XAMPP. This problem can be worked around by installing a different version of Perl separately. I have amended the steps accordingly.
1. Download XAMPP. XAMPP is a convenient bundle of software packages(sometimes known as a “solution stack”) that are frequently used to run web applications, including the Apache web server, the MySQL/MariaDB database, and the PHP programming language. As of this writing, the latest version is available for download at the URL “https://www.apachefriends.org/index.html“.
2. Install XAMPP. Follow the prompts. When prompted with a list of components to be installed, deactivate the checkbox for Perl to specify that it should not be installed. Otherwise, accept the defaults. During the installation process, take note of the locations to which its various components are installed, as well as any other information specified during the install process, such as database names, users, and passwords.
2A. Download ActivePerl Community Edition from “https://www.activestate.com/activeperl/downloads“, install it, and add its “bin” subdirectory to the system’s PATH environment variable. (Review the license terms carefully to make sure that the use of ActivePerl is permitted under the circumstances. Installing Perl separately from XAMPP is unfortunately necessary because the package manager for the version of Perl bundled with XAMPP depends on the Gnu Compiler Collection’s “make” program in a way that is seemingly impossible to get working on Windows. ActivePerl reportedly gets around this problem by maintaining precompiled versions of various packages.)
3. Disable any web server programs other than Apache that might already be running. Specifically, you might need to stop the “World Wide Web Publishing Service” (IIS) via the Services control panel (which can be accessed by running “services.msc”).
4. Start the XAMPP Control Panel application. Start the Apache and MySQL applications by clicking the corresponding Start buttons.
5. Verify that Apache is running by opening a web browser and navigating to “http://localhost“. The XAMPP demo page should be displayed.
6. Locate the directory containing the executable program for the Perl programming language (perhaps at “C:\Perl64\bin\”) and add it to the PATH environment variable.
7. Download Bugzilla. As of this writing, the latest version is available for download as archive files at the URL “https://www.bugzilla.org/download/“. Extract the contents of the archive file to a convenient location. For Windows, it is recommended that Bugzilla be extracted to “C:\Bugzilla\”.
8. Navigate to Apache’s “httpd.conf” file (perhaps at “C:\xampp\apache\conf\”), locate the element starting with the line “IfModule alias_module”, add the following text within that element, and save the changes.
Alias "/bugzilla/" "C:/bugzilla/" <Directory "C:/bugzilla"> ScriptInterpreterSource Registry-Strict Options +ExecCGI +FollowSymLinks DirectoryIndex index.cgi index.html AllowOverride Limit FileInfo Indexes Options Require all granted </Directory>
9. Locate the three files named “.htaccess” for Bugzilla in its root directory (perhaps “C:\bugzilla”), in the “data” subdirectory of the root directory, and in the “assets” subdirectory of the “data” directory. Open each file in a text editor. Change any lines starting with “Require all denied” to “Deny from All”, and change any lines starting with “Require all granted” to “Allow from all”. Save the changes. (Presumably this nasty hack could be avoided by changing the configuration somehow, but as of this writing I don’t know how.)
10. Open the Windows Registry Editory (perhaps by running “regedit”) and create a new key at “HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command” whose value is the complete path of the Perl executable followed by the “-T” parameter (for example, “C:\Perl64\bin\perl.exe -T”). (Note that he first three levels of the key will be created with by selecting “Edit – New – Key” from the main menu bar, while the lowest level, “Command”, will instead be created with the “Edit – New – String Value” item.)
11. Still on the XAMPP Control Panel, click the Admin button for MySQL. The PHPMyAdmin page for the database will be loaded in a web browser window.
12. On the PHPMyAdmin page for the MySQL server, click the “User accounts” tab, then click the “Add user account” link. On the “Add user” page, in the “User name” field, enter the value “bugs”, select the value “Local” in the
“Host” select box, enter a password in the next two fields, and then activate the “Create database with same name and grant all privileges” checkbox. Click the Go button at the bottom of the page to create the new user and database named “bugs”.
13. Open a command prompt, navigate to the Bugzilla directory (perhaps at “C:\bugzilla\”), and run the command “checksetup.pl” or “perl checksetup.pl”. The program will run, and eventually display a list of Perl modules that must be installed. Install the missing modules by entering each of the “ppm install” commands listed. You should also run “ppm install Chart”, “ppm install Template-GD”, and “ppm install DBD-mysql”.
14. Once all the missing Perl modules have been installed, run “checksetup.pl” again. This time, a message will be displayed saying that the file “./localconfig” should be edited. Open the localconfig file in a text editor, locate the line starting with “$db_pass”, substitute the password for the “bugs” user specified in the previous step between the quotes, and save the changes.
15. Run “checksetup.pl” once again. This time, the Bugzilla application and database will be initialized. Enter an email address, name, and password for the administrator user when prompted.
16. Within the Bugzilla directory, open the file “index.cgi” in a text editor and change the first line to reference the path of the actual Perl installation, perhaps “#!/Perl64/bin/perl.exe -T”.
17. Back on the XAMPP Control Panel, restart Apache by clicking the Stop button, then the Start button.
18. Back at the command prompt, run “testserver.pl http://localhost/bugzilla/” or “perl testserver.pl http://localhost/bugzilla/. Several tests will be run. Verify that they all complete with a “TEST-OK” status.
19. Open a web browser and navigate to “http://localhost/bugzilla/“. Verify that the Bugzilla page appears as expected.
20. Create a subdirectory named “tmp” within the XAMPP directory, perhaps at “C:\xampp”. Without this step, it will reportedly not be possible to attach files to bugs.
21. It might also be wise to better secure the installed MySQL service at this time, but that is left as an exercise for the reader.