Installing Bugzilla on Windows with XAMPP

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.

UPDATE 2018/01/18 – In response to frequent, frequently accurate, and frequently irate complaints that these instructions don’t work, I have run through them again, this time on a Windows 10 machine. Some changes were again necessary, but I was ultimately able to get Bugzilla installed and working. Nothing lasts forever, friends!


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 “

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.

3. Download Strawberry Perl from “” and install it. (Strawberry Perl must be installed separately from XAMPP because the version installed through XAMPP doesn’t seem to be configured quite correctly.)

4. Locate the directory containing the executable program for the Perl (perhaps at “C:\Strawberry\perl\bin\”) and add it to the PATH environment variable.

5. Download MinGW-W64, available as of this writing from ““, and install it. Locate its “bin” directory and add it to the PATH environment variable. Within the “bin” directory, locate the file “mingw32-make.exe”, make a copy of it, and rename that copy to “make.exe”. Just in case, make another copy and name this one “dmake.exe”. (This is necessary because the Perl package installer needs to use the “make” build utility, a staple of the Linux programming environment but a major sticking point for cross-platform compatibility.)

6. 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”).

7. Start the XAMPP Control Panel application. Start the Apache and MySQL applications by clicking the corresponding Start buttons.

8. Verify that Apache is running by opening a web browser and navigating to “http://localhost“. The XAMPP demo page should be displayed.

9. Download Bugzilla. As of this writing, the latest version is available for download as archive files at the URL ““. Extract the contents of the archive file to a convenient location. For Windows, it is recommended that Bugzilla be extracted to “C:\bugzilla\”.

10. Navigate to Apache’s “httpd.conf” file (perhaps at “C:\xampp\apache\conf\”), open it in a text editor, locate the element starting with the line “IfModule alias_module” within it, add the following text within that element, and save the changes.

Alias "/bugzilla/" "C:/bugzilla/"
    ScriptInterpreterSource Registry-Strict
    Options +ExecCGI +FollowSymLinks
    DirectoryIndex index.cgi index.html
    AllowOverride Limit FileInfo Indexes Options
    Require all granted

11. 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.)

12. 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.

13. 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”.

14. Open a command prompt, navigate to the Bugzilla directory (perhaps at “C:\bugzilla\”), and run the command “perl”. 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 install commands listed. You should also install the packages “Chart”, “Template-GD”, and “DBD-mysql”. Alternatively, you can run
“perl.exe –all”, but this may take a very long time to complete.

15. Once all the missing Perl modules have been installed, run “” 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.

16. Run “” 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.

17. 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 “#!/Strawberry/perl/bin/perl.exe -T”.

18. For every other .cgi file in the Bugzilla directory (and perhaps its subdirectories), repeat the previous step to change the path to Perl. For sanity’s sake, it is recommended that an automated tool (for example, Notepad++) be used to do this task.

19. Back on the XAMPP Control Panel, restart Apache by clicking the Stop button, then the Start button.

20. Back at the command prompt, run “perl http://localhost/bugzilla/. Several tests will be run. Verify that they all complete with a “TEST-OK” status.

21. Open a web browser and navigate to “http://localhost/bugzilla/index.cgi“. Verify that the Bugzilla page appears as expected.

22. If desired, log in to Bugzilla as the administrator, submit a test bug report, search for it, and verify that it shows up. 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.

23. (Previous versions of these instructions included the following step. I’m not sure if it’s still necessary, but I’d hate to throw it away in case I need it later.) 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:\Strawberry\perl\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.)

This entry was posted in Uncategorized and tagged , , , , , , , . Bookmark the permalink.

16 Responses to Installing Bugzilla on Windows with XAMPP

  1. hi… i get this error when i the test…. how do i fix it please?

    C:\Bugzilla> http://localhost/bugzilla/
    sysread() is deprecated on :utf8 handles at C:/Perl64/site/lib/File/ line 225.
    TEST-OK Got padlock picture.
    Use of uninitialized value $response in pattern match (m//) at C:\Bugzilla\ line 104.
    Use of uninitialized value $response in pattern match (m//) at C:\Bugzilla\ line 106.
    TEST-FAILED Webserver is not executing CGI files.
    TEST-OK Webserver is preventing fetch of http://localhost/bugzilla/localconfig.
    TEST-OK GD library generated a good PNG image.
    TEST-OK Chart library generated a good PNG image.
    TEST-OK Template::Plugin::GD is installed.

    • I recently re-ran these steps, and I encountered the same problem (though only after working around a bunch of other problems that required installing a separate version of Perl). I have updated the instructions accordingly. You may need to edit the file “index.cgi” so that it references the actual path of your Perl.exe, as described in step 16 of the updated instructions. Good luck!

  2. Donald says:

    GEt same error as Chukwuma, no one has a solution to this been at it, for couple of days

    • Please see my reply to Chukwuma’s comment above. In summary, you might need to change the first line of “index.cgi” to point at a different instance of Perl.

  3. Shruthi says:

    I have followed the same steps and installed Bugzilla successfully. Thank you so much.

  4. XAMPP_User says:

    You should update or remove this manual, because it does not fit to the current Version of XAMPP. Named config files do not exist, plugins have changed, …

    • XAMPP_User says:

      On Item 11. If C:\xampp\mysql\lib\plugin does not exist, create them manually.

    • XAMPP_User says:

      Item 14 creates the Folder c:\bugzilla\data and c:\bugzilla\data\assets including the files htaccess. So move Item 9 after Item 14. You would avoid confusing users because fistly only one file htaccess was found instead of three and later you would not remember to edit also the other two new htaccess file created in item 14.

    • XAMPP_User says:

      If in item 18 CGI’s are not executed try in item 16, corresponding path to your perl Installation path, the shebang #!c:\Perl64\bin\perl -T

    • XAMPP_User says:

      It seems to be a good idea to change the shebang of all cgi files according your perl Installation. It could look like #!c:\Perl64\bin\perl -T.

  5. XAMPP_User says:

    It is necessary to change the variable max_allowed_packet to 3275776 from XAMPP home page in phpMyAdmin / Variables

    • XAMPP_User says:

      If you have done item 12, dont follow with item 13 if you want to import an existing bugzilla database. Immediately after creating the user bugs with its corresponding “empty” database, run
      mysql.exe -u bugs -p bugs < your_bugzilla_database_dump.sql
      Then continue with item 13.

  6. Ashwin says:

    Hi, I got this error while running this command ” http://localhost/bugzilla/
    Error :- TEST-FAILED Fetch of images/padlock.png failed
    How do i fix it?

  7. It is painful to install Bugzilla on windows doesnt work this

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s