Bugzilla is a widely adopted, free, and open source bug tracking tool. Many developers and vendors rely on it to systematically refine their software products.
This guide walks you through the installation process of Bugzilla version 5.0.4 on a CentOS 7 server instance.
Prerequisites
- A clean CentOS 7 x64 instance (e.g., IP: 203.0.113.1).
- Access to a user account with sudo privileges.
- The system must be up-to-date using the EPEL YUM repository.
Bugzilla 5.0.4 needs Perl 5.14 or higher, alongside a functioning web server and a database server. In this tutorial, we will set up Perl 5.16.x, Apache 2.4.x, and MariaDB 10.2.x as part of the installation.
Matching infrastructure at centron
No hardware needed to follow along: ccloud³ VMs with full root access start at €3.12 per month, billed by the hour and ready in seconds. Rent a cloud server →
Step 1: Installing Perl 5.16.x and Dependencies
After logging in with sudo rights, install Perl and necessary Perl components via YUM:
sudo yum install perl perl-CPAN perl-DBD-MySQL -yVerify the installed Perl version meets the requirement (should be 5.14 or newer):
perl -vVersion 5.16.3 should be displayed, which is compatible with Bugzilla 5.0.4.
Next, install additional necessary packages:
sudo yum install gcc gd gd-devel rst2pdf graphviz patchutils -yStep 2: Setting Up Apache 2.4.x
Use the following commands to install and configure Apache version 2.4.6:
sudo yum install httpd httpd-devel -y
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
sudo systemctl start httpd.service
sudo systemctl enable httpd.serviceStep 3: Setting Up MariaDB 10.2.x
Start by installing the latest stable MariaDB release:
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
sudo yum install MariaDB-server MariaDB-devel -y
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.serviceSecure the MariaDB setup by executing the following:
sudo /usr/bin/mysql_secure_installationFollow the prompts:
- Enter current password for root (enter for none): Press Enter
- Set root password? [Y/n]: Y
- New password: your-MariaDB-root-password
- Re-enter new password: your-MariaDB-root-password
- Remove anonymous users? [Y/n]: Y
- Disallow root login remotely? [Y/n]: Y
- Remove test database and access to it? [Y/n]: Y
- Reload privilege tables now? [Y/n]: Y
Log into MySQL using root credentials:
mysql -u root -pCreate a database and user for Bugzilla. Be sure to personalize the credentials:
CREATE DATABASE bugzilla;
CREATE USER 'bugzillauser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON bugzilla.* TO 'bugzillauser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;Adjust MariaDB's server configuration to accommodate Bugzilla:
sudo vi /etc/my.cnf.d/server.cnfAdd these entries beneath the [mysqld] section:
# Bugzilla
# Allow packets up to 16M
max_allowed_packet=16M
# Allow small words in full-text indexes
ft_min_word_len=2Exit and save:
:wq!Restart MariaDB to apply changes:
sudo systemctl restart mariadb.serviceStep 4: Download and Set Up Bugzilla 5.0.4
First, grab the Bugzilla 5.0.4 archive from the official Mozilla servers:
cd
wget https://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-5.0.4.tar.gzExtract the contents to your preferred directory:
sudo tar -C /opt -zxvf bugzilla-5.0.4.tar.gzCreate a symbolic link to the Bugzilla folder to make future upgrades easier:
sudo ln -s /opt/bugzilla-5.0.4 /var/www/html/bugzillaRun the setup script to identify missing Perl modules:
sudo /var/www/html/bugzilla/checksetup.plYou can either install modules individually:
sudo /usr/bin/perl /var/www/html/bugzilla/install-module.pl CGIOr install all required and optional modules at once:
sudo /usr/bin/perl /var/www/html/bugzilla/install-module.pl --allOnce the installation completes, rerun the setup script to ensure all necessary modules, including DBD::mysql, are in place:
sudo /var/www/html/bugzilla/checksetup.plEdit the localconfig file to configure the database settings:
sudo vi /var/www/html/bugzilla/localconfigUpdate the values to match your setup:
$webservergroup = 'apache';
$db_driver = 'mysql';
$db_host = 'localhost';
$db_name = 'bugzilla';
$db_user = 'bugzillauser';
$db_pass = 'yourpassword';Save the file and rerun the setup script to complete the installation:
sudo /var/www/html/bugzilla/checksetup.plYou’ll be prompted to enter admin details such as:
- Email address: admin@example.com
- Name: John Doe
- Password: your-admin-password
Make sure Apache has ownership of Bugzilla files:
sudo chown -R apache:apache /opt/bugzilla-5.0.4Create an Apache virtual host file for Bugzilla:
sudo vi /etc/httpd/conf.d/bugzilla.confAdd the following configuration:
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/html/bugzilla/
ServerName bugzilla.example.com
ServerAlias www.bugzilla.example.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.example.com-error_log
CustomLog /var/log/httpd/bugzilla.example.com-access_log common
</VirtualHost>Save the file and restart Apache:
sudo systemctl restart httpd.serviceStep 5: Configure the Firewall
Update your firewall to permit HTTP traffic:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reloadStep 6: Verify and Access Bugzilla
Use the test script to validate the Bugzilla installation:
sudo /var/www/html/bugzilla/testserver.pl http://203.0.113.1Expected output includes:
- TEST-OK Webserver is running under group id in $webservergroup.
- TEST-OK Got padlock picture.
- TEST-OK Webserver is executing CGIs via mod_cgi.
- TEST-OK Webserver is preventing fetch of /localconfig.
- TEST-OK GD version and libgd version match.
- 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.
Now visit http://203.0.113.1/ in your browser. Click “Log In” and enter the admin credentials to access and manage Bugzilla.
Step 7: (Optional) Enable Apache mod_perl for Performance
Install mod_perl and its development package to enhance Apache’s handling of Perl:
sudo yum install mod_perl mod_perl-devel -yCheck if it’s loaded:
apachectl -M | grep perlThe output should include:
- perl_module (shared)
Edit the mod_perl configuration file:
sudo vi /etc/httpd/conf.d/perl.confDisplay line numbers and uncomment these:
:set nuUncomment lines 15 and 24, and add the following at the end:
PerlSwitches -w
PerlSwitches -T
PerlConfigRequire /var/www/html/bugzilla/mod_perl.plRestart Apache to apply the configuration:
sudo systemctl restart httpd.serviceConclusion
By following these detailed steps, you've successfully set up Bugzilla 5.0.4 on a CentOS 7 instance. From installing the necessary software stack (Perl, Apache, MariaDB) to configuring the web interface and database, your system is now ready to manage bug tracking effectively. You can further enhance performance using Apache’s mod_perl module. Access the Bugzilla dashboard via your server IP and start organizing your software development process with this powerful tool.
Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.