Install Bugzilla on Centos 7
In this guide, we will show you how to install Bugzilla bug tracking system on CentOS 7 hosted on DigitalOcean or Alibaba Cloud or any other cloud engine.
Upgrade your yum packages
sudo yum -y update
If this is successful, the last few lines of the output would look like below.
Cleanup : bash-4.2.46-31.el7.x86_64 435/441 Cleanup : nspr-4.19.0-1.el7_5.x86_64 436/441 Cleanup : nss-util-3.36.0-1.el7_5.x86_64 437/441 Cleanup : nss-softokn-freebl-3.36.0-5.el7_5.x86_64 438/441 Cleanup : glibc-2.17-260.el7_6.6.x86_64 439/441 Cleanup : tzdata-2018i-1.el7.noarch 440/441 Cleanup : libgcc-4.8.5-36.el7_6.2.x86_64 441/441
Install EPEL repository
sudo yum -y install epel-release
In my case EPEL was already installed.
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.trouble-free.net * epel: fedora-epel.mirrors.tds.net * extras: mirror.trouble-free.net * updates: mirror.trouble-free.net Package epel-release-7-12.noarch already installed and latest version Nothing to do
Install Perl and its modules
Bugzilla needs Perl 5.x and Perl modules like CPAN and MySQL.
sudo yum -y install perl perl-CPAN perl-DBD-MySQL
It worked.
Installed: perl-CPAN.noarch 0:1.9800-294.el7_6 perl-DBD-MySQL.x86_64 0:4.023-6.el7 Dependency Installed: gdbm-devel.x86_64 0:1.10-8.el7 libdb-devel.x86_64 0:5.3.21-25.el7 perl-ExtUtils-Install.noarch 0:1.58-294.el7_6 perl-ExtUtils-MakeMaker.noarch 0:6.68-3.el7 perl-ExtUtils-Manifest.noarch 0:1.61-244.el7 perl-ExtUtils-ParseXS.noarch 1:3.18-3.el7 perl-Test-Harness.noarch 0:3.28-3.el7 perl-devel.x86_64 4:5.16.3-294.el7_6 perl-local-lib.noarch 0:1.008010-4.el7 pyparsing.noarch 0:1.5.6-9.el7 systemtap-sdt-devel.x86_64 0:4.0-10.el7_7 Complete!
Verify Perl installation
perl -v
It would display the Perl version and the license information.
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi (with 39 registered patches, see perl -V for more detail) Copyright 1987-2012, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.
Install Perl dependencies
We need a few dependencies for Bugzilla to work with Perl.They are gcc, gd, gd-devel, graphviz, patchutils, rst2pdf.
sudo yum -y install gcc gd gd-devel rst2pdf graphviz patchutils
You will see a message like the one below when the dependencies are installed.
Installed: gd-devel.x86_64 0:2.0.35-26.el7 graphviz.x86_64 0:2.30.1-21.el7 patchutils.x86_64 0:0.3.3-4.el7 rst2pdf.noarch 0:0.93-8.el7 Dependency Installed: adobe-mappings-cmap.noarch 0:20171205-3.el7 adobe-mappings-cmap-deprecated.noarch 0:20171205-3.el7 adobe-mappings-pdf.noarch 0:20180407-1.el7 expat-devel.x86_64 0:2.1.0-10.el7_3 fontconfig-devel.x86_64 0:2.13.0-4.3.el7 freetype-devel.x86_64 0:2.8-14.el7 libX11-devel.x86_64 0:1.6.7-2.el7 libXau-devel.x86_64 0:1.0.8-2.1.el7 libXaw.x86_64 0:1.0.13-4.el7 libXpm-devel.x86_64 0:3.5.12-1.el7 libgs.x86_64 0:9.25-2.el7_7.3 libjpeg-turbo-devel.x86_64 0:1.2.90-8.el7 libpaper.x86_64 0:1.1.24-8.el7 libpng-devel.x86_64 2:1.5.13-7.el7_2 librsvg2.x86_64 0:2.40.20-1.el7 libtool-ltdl.x86_64 0:2.4.2-22.el7_3 libuuid-devel.x86_64 0:2.23.2-61.el7_7.1 libwebp.x86_64 0:0.3.0-7.el7 libxcb-devel.x86_64 0:1.13-1.el7 openjpeg2.x86_64 0:2.3.1-1.el7 python-docutils.noarch 0:0.11-0.3.20130715svn7687.el7 python-pdfrw.noarch 0:0.2-5.el7 python-pillow.x86_64 0:2.0.0-19.gitd1c6db8.el7 python-pygments.noarch 0:1.4-10.el7 python-reportlab.x86_64 0:2.5-9.el7 python2-simplejson.x86_64 0:3.10.0-2.el7 urw-base35-bookman-fonts.noarch 0:20170801-10.el7 urw-base35-c059-fonts.noarch 0:20170801-10.el7 urw-base35-d050000l-fonts.noarch 0:20170801-10.el7 urw-base35-fonts.noarch 0:20170801-10.el7 urw-base35-fonts-common.noarch 0:20170801-10.el7 urw-base35-gothic-fonts.noarch 0:20170801-10.el7 urw-base35-nimbus-mono-ps-fonts.noarch 0:20170801-10.el7 urw-base35-nimbus-roman-fonts.noarch 0:20170801-10.el7 urw-base35-nimbus-sans-fonts.noarch 0:20170801-10.el7 urw-base35-p052-fonts.noarch 0:20170801-10.el7 urw-base35-standard-symbols-ps-fonts.noarch 0:20170801-10.el7 urw-base35-z003-fonts.noarch 0:20170801-10.el7 xorg-x11-font-utils.x86_64 1:7.5-21.el7 xorg-x11-proto-devel.noarch 0:2018.4-1.el7 zlib-devel.x86_64 0:1.2.7-18.el7 Complete!
Install Apache Server
Please follow this post to install Apache Server on Centos 7.
Install MariaDB
Please follow this post to install MariaDB on Centos 7.
Download Bugzilla package
wget https://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-5.0.4.tar.gz
wget https://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-STABLE.tar.gz --2019-12-25 01:59:21-- https://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-STABLE.tar.gz Resolving ftp.mozilla.org (ftp.mozilla.org)... 99.84.181.113, 99.84.181.108, 99.84.181.126, ... Connecting to ftp.mozilla.org (ftp.mozilla.org)|99.84.181.113|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 5736607 (5.5M) [application/x-tar] Saving to: ‘bugzilla-STABLE.tar.gz’ 100%[===================================================================================================================================================================>] 57,36,607 7.58MB/s in 0.7s 2019-12-25 01:59:22 (7.58 MB/s) - ‘bugzilla-STABLE.tar.gz’ saved [5736607/5736607]
Unarchive bugzilla package
sudo tar -C /opt -zxvf bugzilla-STABLE.tar.gz
Create a soft link to ensure future updates
sudo ln -s /opt/bugzilla-5.0.6 /var/www/html/bugzilla
Check for missing Perl modules
sudo /var/www/html/bugzilla/checksetup.pl
You will see a list of all missing modules and the command to install them all.
COMMANDS TO INSTALL REQUIRED MODULES (You *must* run all these commands and then re-run checksetup.pl): /usr/bin/perl install-module.pl CGI /usr/bin/perl install-module.pl Date::Format /usr/bin/perl install-module.pl DateTime /usr/bin/perl install-module.pl DateTime::TimeZone /usr/bin/perl install-module.pl Template /usr/bin/perl install-module.pl Email::Sender /usr/bin/perl install-module.pl Email::MIME /usr/bin/perl install-module.pl URI /usr/bin/perl install-module.pl List::MoreUtils /usr/bin/perl install-module.pl Math::Random::ISAAC /usr/bin/perl install-module.pl JSON::XS To attempt an automatic install of every required and optional module with one command, do: /usr/bin/perl install-module.pl --all
Running the install-module.pl –all didnt work for me. So I had to install the modules one by one. After running all the commands, I ran the checksetup.pl command.
I got this error.
Can't locate autodie.pm in @INC (@INC contains: . lib/x86_64-linux-thread-multi lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at Bugzilla/Config.pm line 1
I opened Config.pm and commented the line that had autodie import.
After running ./checksetup.pl I got this message..
Reading ./localconfig... This version of Bugzilla contains some variables that you may want to change and adapt to your local settings. The following variables are new to ./localconfig since you last ran checksetup.pl: create_htaccess, webservergroup, use_suexec, db_driver, db_host, db_name, db_user, db_pass, db_port, db_sock, db_check, db_mysql_ssl_ca_file, db_mysql_ssl_ca_path, db_mysql_ssl_client_cert, db_mysql_ssl_client_key, index_html, interdiffbin, diffpath, site_wide_secret Please edit the file ./localconfig and then re-run checksetup.pl to complete your installation.
We need to edit localconfig file and update our database details.
Edit localconfig file
Open the file.
sudo vi /var/www/html/bugzilla/localconfig
Update your MariaDB bugzilla database details.
$webservergroup = 'apache'; $db_driver = 'mysql'; $db_host = 'localhost'; $db_name = 'bugzilla'; // Make sure you enter the correct name $db_user = 'ubugzilla'; $db_pass = 'your_password';
Rerun checksetup
sudo /var/www/html/bugzilla/checksetup.pl
Now you need to setup administrator for Bugzilla. Enter those details and you setup is done.
Reading ./localconfig... Checking for DBD-mysql (v4.001) ok: found v4.023 Checking for MySQL (v5.0.15) ok: found v5.5.5-10.4.11-MariaDB Adding new table bz_schema... Initializing bz_schema... Creating tables... Converting attach_data maximum size to 100G... Setting up choices for standard drop-down fields: priority bug_status rep_platform resolution bug_severity op_sys Creating ./data directory... Creating ./data/assets directory... Creating ./data/attachments directory... Creating ./data/db directory... Creating ./data/extensions directory... Creating ./data/mining directory... Creating ./data/webdot directory... Creating ./graphs directory... Creating ./skins/custom directory... Creating ./data/extensions/additional... Creating ./data/mailer.testfile... Creating ./Bugzilla/.htaccess... Creating ./data/.htaccess... Creating ./data/assets/.htaccess... Creating ./data/attachments/.htaccess... Creating ./data/webdot/.htaccess... Creating ./graphs/.htaccess... Creating ./lib/.htaccess... Creating ./template/.htaccess... Creating contrib/.htaccess... Creating t/.htaccess... Creating xt/.htaccess... Precompiling templates...done. Fixing file permissions... Initializing "Dependency Tree Changes" email_setting ... Initializing "Product/Component Changes" email_setting ... Marking closed bug statuses as such... Creating default classification 'Unclassified'... Setting up foreign keys... Setting up the default status workflow... Creating default groups... Setting up user preferences... Looks like we don't have an administrator set up yet. Either this is your first time using Bugzilla, or your administrator's privileges might have accidentally been deleted. Enter the e-mail address of the administrator: anand@poopcode.com Enter the real name of the administrator: Anand Chandran Enter a password for the administrator account: Please retype the password to verify: anand@poopcode.com is now set up as an administrator. Creating initial dummy product 'TestProduct'... Now that you have installed Bugzilla, you should visit the 'Parameters' page (linked in the footer of the Administrator account) to ensure it is set up as you wish - this includes setting the 'urlbase' option to the correct URL. checksetup.pl complete.
Give access for Apache server to Bugzilla
sudo chown -R apache:apache /opt/bugzilla-5.0.6
Create a virtual host
Open Bugzilla configuration.
sudo vi /etc/httpd/conf.d/bugzilla.conf
Add these lines.
<VirtualHost *:80> ServerAdmin anand@poopcode.com DocumentRoot /var/www/html/bugzilla/ ServerName bugzilla.poopcode.com ServerAlias www.bugzilla.poopcode.com <Directory /var/www/html/bugzilla/> AddHandler cgi-script .cgi Options +Indexes +ExecCGI DirectoryIndex index.cgi AllowOverride Limit FileInfo Indexes Options AuthConfig </Directory> ErrorLog /var/log/httpd/bugzilla.poopcode.com-error_log CustomLog /var/log/httpd/bugzilla.poopcode.com-access_log common </VirtualHost>
By default, Apache Server redirects to the default :80 port when you access Bugzilla. When you want to assign a different port for bugzilla, you need to change Apache Server configuration and provide the port number in Bugzilla configuration.
Restart Apache server
sudo systemctl restart httpd.service
Test Bugzilla
You should see Bugzilla screen when you visit root URL (IP Address of the server, 127.0.01 if local system) of your server.

By default, apache httpd runs at the port 80. If you want to change it, you can check this post. Please change the port in the Bugzilla configuration too.