Back to the main page

Bugzilla ver5 installation

Prerequisites are Perl, Apache (or some other web server), MySQL (or other database), Sendmail (or others like postfix), so install them all.
For Sendmail, for example, setup smart/relay host, do it by having line in the file /etc/mail/sendmail.mc
define(`SMART_HOST', `hostname.domain.com')dnl

Once MySQL is installed and started for the first time, it asks you to setup root password.
# /usr/bin/mysqladmin -u root password 'zdpasswd'

Get Bugzilla and untar in the /var/www/html/ directory
# tar -zxvf bugzilla-5.0.tar.gz -C /var/www/html/

Check for needed Perl modules by running the script ...
# /var/www/html/bugzilla-5.0/checksetup.pl

... most likely will be some errors, since you need many perl modules, etc, so try this one:
# yum install gcc perl* mod_perl-devel

Here is output after first run
# ./checksetup.pl
* This is Bugzilla 5.0 on perl 5.10.1
* Running on Linux 3.8.13-44.1.4.el6uek.x86_64 #2 SMP Wed Oct 29 23:58:06 PDT 2014
Checking perl modules...
Checking for               CGI.pm (v3.51)     ok: found v3.51
Checking for           Digest-SHA (any)       ok: found v5.47
Checking for             TimeDate (v2.23)     found v2.22
Checking for             DateTime (v0.75)     found v0.53
Checking for    DateTime-TimeZone (v1.64)     found v1.08
Checking for                  DBI (v1.54)     ok: found v1.609
Checking for     Template-Toolkit (v2.24)     found v2.22
Checking for         Email-Sender (v1.300011) not found
Checking for           Email-MIME (v1.904)    not found
Checking for                  URI (v1.55)     found v1.40
Checking for       List-MoreUtils (v0.32)     found v0.22
Checking for    Math-Random-ISAAC (v1.0.1)    not found
Checking for           File-Slurp (v9999.13)  ok: found v9999.13
Checking for              JSON-XS (v2.01)     not found
Checking available perl DBD modules...
Checking for               DBD-Pg (v2.7.0)    ok: found v2.15.1
Checking for            DBD-mysql (v4.001)    ok: found v4.013
Checking for           DBD-SQLite (v1.29)     found v1.27
Checking for           DBD-Oracle (v1.19)     not found
The following Perl modules are optional:
Checking for                   GD (v1.20)     ok: found v2.44
Checking for                Chart (v2.4.1)    not found
Checking for          Template-GD (any)       not found
Checking for           GDTextUtil (any)       ok: found v0.86
Checking for              GDGraph (any)       ok: found v1.44
Checking for           MIME-tools (v5.406)    ok: found v5.427
Checking for          libwww-perl (any)       ok: found v5.833
Checking for             XML-Twig (any)       ok: found v3.34
Checking for          PatchReader (v0.9.6)    not found
Checking for            perl-ldap (any)       ok: found v0.40
Checking for          Authen-SASL (any)       ok: found v2.13
Checking for         Net-SMTP-SSL (v1.01)     ok: found v1.01
Checking for           RadiusPerl (any)       not found
Checking for            SOAP-Lite (v0.712)    found v0.710.10
Checking for          XMLRPC-Lite (v0.712)    found v0.710.10
Checking for             JSON-RPC (any)       not found
Checking for           Test-Taint (v1.06)     found v1.04
Checking for          HTML-Parser (v3.40)     ok: found v3.64
Checking for        HTML-Scrubber (any)       not found
Checking for               Encode (v2.21)     ok: found v2.35
Checking for        Encode-Detect (any)       ok: found v1.01
Checking for          Email-Reply (any)       not found
Checking for HTML-FormatText-WithLinks (v0.13)     not found
Checking for          TheSchwartz (v1.07)     not found
Checking for       Daemon-Generic (any)       not found
Checking for             mod_perl (v1.999022) ok: found v2.000004
Checking for     Apache-SizeLimit (v0.96)     not found
Checking for        File-MimeInfo (any)       not found
Checking for           IO-stringy (any)       ok: found v2.110
Checking for      Cache-Memcached (any)       ok: found v1.28
Checking for  File-Copy-Recursive (any)       ok: found v0.38
Checking for              mod_env (any)       ok
Checking for          mod_expires (any)       ok
Checking for          mod_headers (any)       ok
Checking for          mod_rewrite (any)       ok
Checking for          mod_version (any)       ok
***********************************************************************
* REQUIRED MODULES                                                    *
***********************************************************************
* Bugzilla requires you to install some Perl modules which are either *
* missing from your system, or the version on your system is too old. *
* See below for commands to install these modules.                    *
***********************************************************************
* OPTIONAL MODULES                                                    *
***********************************************************************
* Certain Perl modules are not required by Bugzilla, but by           *
* installing the latest version you gain access to additional         *
* features.                                                           *
*                                                                     *
* The optional modules you do not have installed are listed below,    *
* with the name of the feature they enable. Below that table are the  *
* commands to install each module.                                    *
***********************************************************************
*               MODULE NAME * ENABLES FEATURE(S)                      *
***********************************************************************
*                     Chart * New Charts, Old Charts                  *
*               Template-GD * Graphical Reports                       *
*               PatchReader * Patch Viewer                            *
*                RadiusPerl * RADIUS Authentication                   *
*                 SOAP-Lite * XML-RPC Interface                       *
*               XMLRPC-Lite * XML-RPC Interface                       *
*                  JSON-RPC * JSON-RPC Interface, REST Interface      *
*                Test-Taint * JSON-RPC Interface, XML-RPC Interface, REST Interface *
*             HTML-Scrubber * More HTML in Product/Group Descriptions *
*               Email-Reply * Inbound Email                           *
* HTML-FormatText-WithLinks * Inbound Email                           *
*               TheSchwartz * Mail Queueing                           *
*            Daemon-Generic * Mail Queueing                           *
*          Apache-SizeLimit * mod_perl                                *
*             File-MimeInfo * Sniff MIME type of attachments          *
***********************************************************************
COMMANDS TO INSTALL OPTIONAL MODULES:

          Chart: /usr/bin/perl install-module.pl Chart::Lines
    Template-GD: /usr/bin/perl install-module.pl Template::Plugin::GD::Image
    PatchReader: /usr/bin/perl install-module.pl PatchReader
     RadiusPerl: /usr/bin/perl install-module.pl Authen::Radius
      SOAP-Lite: /usr/bin/perl install-module.pl SOAP::Lite
    XMLRPC-Lite: /usr/bin/perl install-module.pl XMLRPC::Lite
       JSON-RPC: /usr/bin/perl install-module.pl JSON::RPC
     Test-Taint: /usr/bin/perl install-module.pl Test::Taint
  HTML-Scrubber: /usr/bin/perl install-module.pl HTML::Scrubber
    Email-Reply: /usr/bin/perl install-module.pl Email::Reply
HTML-FormatText-WithLinks: /usr/bin/perl install-module.pl HTML::FormatText::WithLinks
    TheSchwartz: /usr/bin/perl install-module.pl TheSchwartz
 Daemon-Generic: /usr/bin/perl install-module.pl Daemon::Generic
Apache-SizeLimit: /usr/bin/perl install-module.pl Apache2::SizeLimit
  File-MimeInfo: /usr/bin/perl install-module.pl File::MimeInfo::Magic

COMMANDS TO INSTALL REQUIRED MODULES (You *must* run all these commands
and then re-run checksetup.pl):
    /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
*** Installation aborted. Read the messages above. ***

So run this command
# /usr/bin/perl install-module.pl --all

And second setup check gives this:
# ./checksetup.pl
* This is Bugzilla 5.0 on perl 5.10.1
* Running on Linux 3.8.13-44.1.4.el6uek.x86_64 #2 SMP Wed Oct 29 23:58:06 PDT 2014
Checking perl modules...
Checking for               CGI.pm (v3.51)     ok: found v3.51
Checking for           Digest-SHA (any)       ok: found v5.47
Checking for             TimeDate (v2.23)     ok: found v2.24
Checking for             DateTime (v0.75)     ok: found v1.20
Checking for    DateTime-TimeZone (v1.64)     ok: found v1.92
Checking for                  DBI (v1.54)     ok: found v1.609
Checking for     Template-Toolkit (v2.24)     ok: found v2.26
Checking for         Email-Sender (v1.300011) ok: found v1.300018
Checking for           Email-MIME (v1.904)    ok: found v1.934
Checking for                  URI (v1.55)     ok: found v1.69
Checking for       List-MoreUtils (v0.32)     ok: found v0.413
Checking for    Math-Random-ISAAC (v1.0.1)    ok: found v1.004
Checking for           File-Slurp (v9999.13)  ok: found v9999.13
Checking for              JSON-XS (v2.01)     ok: found v3.01

Checking available perl DBD modules...
Checking for               DBD-Pg (v2.7.0)    ok: found v2.15.1
Checking for            DBD-mysql (v4.001)    ok: found v4.013
Checking for           DBD-SQLite (v1.29)     ok: found v1.48
Checking for           DBD-Oracle (v1.19)     not found

The following Perl modules are optional:
Checking for                   GD (v1.20)     ok: found v2.44
Checking for                Chart (v2.4.1)    ok: found v2.4.10
Checking for          Template-GD (any)       ok: found v1.56
Checking for           GDTextUtil (any)       ok: found v0.86
Checking for              GDGraph (any)       ok: found v1.44
Checking for           MIME-tools (v5.406)    ok: found v5.427
Checking for          libwww-perl (any)       ok: found v5.833
Checking for             XML-Twig (any)       ok: found v3.34
Checking for          PatchReader (v0.9.6)    ok: found v0.9.6
Checking for            perl-ldap (any)       ok: found v0.40
Checking for          Authen-SASL (any)       ok: found v2.13
Checking for         Net-SMTP-SSL (v1.01)     ok: found v1.01
Checking for           RadiusPerl (any)       ok: found v0.24
Checking for            SOAP-Lite (v0.712)    ok: found v1.17
Checking for          XMLRPC-Lite (v0.712)    ok: found v0.717
Checking for             JSON-RPC (any)       ok: found v1.06
Checking for           Test-Taint (v1.06)     ok: found v1.06
Checking for          HTML-Parser (v3.40)     ok: found v3.64
Checking for        HTML-Scrubber (any)       ok: found v0.14
Checking for               Encode (v2.21)     ok: found v2.35
Checking for        Encode-Detect (any)       ok: found v1.01
Checking for          Email-Reply (any)       ok: found v1.203
Checking for HTML-FormatText-WithLinks (v0.13)     ok: found v0.15
Checking for          TheSchwartz (v1.07)     ok: found v1.12
Checking for       Daemon-Generic (any)       ok: found v0.84
Checking for             mod_perl (v1.999022) ok: found v2.000004
Checking for     Apache-SizeLimit (v0.96)     ok: found v0.96
Checking for        File-MimeInfo (any)       ok: found v0.27
Checking for           IO-stringy (any)       ok: found v2.110
Checking for      Cache-Memcached (any)       ok: found v1.28
Checking for  File-Copy-Recursive (any)       ok: found v0.38
Checking for              mod_env (any)       ok
Checking for          mod_expires (any)       ok
Checking for          mod_headers (any)       ok
Checking for          mod_rewrite (any)       ok
Checking for          mod_version (any)       ok
Reading ./localconfig...

OPTIONAL NOTE: If you want to be able to use the 'difference between two
patches' feature of Bugzilla (which requires the PatchReader Perl module
as well), you should install patchutils from:
    http://cyberelk.net/tim/software/patchutils/
Checking for            DBD-mysql (v4.001)    ok: found v4.013
Checking for                MySQL (v5.0.15)   ok: found v5.1.73
Creating database bugs...
The 'bugs' database could not be created. The error returned was:
    Access denied for user ''@'localhost' to database 'bugs'
This might have several reasons:
* MySQL is not running.
* MySQL is running, but there is a problem either in the
  server configuration or the database access rights. Read the Bugzilla
  Guide in the doc directory. The section about database configuration
  should help.
* Your password for the 'bugs' user, specified in $db_pass, is
  incorrect, in './localconfig'.
* There is a subtle problem with Perl, DBI, or MySQL. Make
  sure all settings in './localconfig' are correct. If all else fails, set
  '$db_check' to 0.

The file localconfig is created.
# cat localconfig | grep -v ^# | grep -v ^$
$create_htaccess = 1;
$webservergroup = 'apache';
$use_suexec = 0;
$db_driver = 'mysql';
$db_host = 'localhost';
$db_name = 'bugs';
$db_user = 'bugs';
$db_pass = 'mybugs';
$db_port = 0;
$db_sock = '';
$db_check = 1;
$db_mysql_ssl_ca_file = '';
$db_mysql_ssl_ca_path = '';
$db_mysql_ssl_client_cert = '';
$db_mysql_ssl_client_key = '';
$index_html = 0;
$interdiffbin = '';
$diffpath = '/usr/bin';
$site_wide_secret = '8VwefOelinXgBKUolrA5GoRYRdxopaYYm7STYyrK3rALIZaTmZia4QQNv0iakQXQ';

MySQL config

Since MySQL by default allows to insert things into database of max size 1M, let's change that, because attachments can be bigger. Add lines to /etc/my.cnf file unde [mysqld]
#allow packets up to 4mb
max_allowed_packet=4M

By default MySQL indexes word with 4 characters min, so for example ftp is missed. Hence add lines to /etc/my.cnf file unde [mysqld]
# allow indexing small words
ft_min_word_len=2

And create 'bugs' user in mysql
# mysql -u root -p
Enter password:

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES, CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY 'mybugs';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

Now again run checksetup.pl script, it sees new localconfig file, so it connects to MySQL and creats database bugs and its tables.
# ./checksetup.pl
* This is Bugzilla 5.0 on perl 5.10.1
* Running on Linux 3.8.13-44.1.4.el6uek.x86_64 #2 SMP Wed Oct 29 23:58:06 PDT 2014

-- shortened ---

Creating database bugs...

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: z----@---.com
Enter the real name of the administrator: ZD
Enter a password for the administrator account:
Please retype the password to verify:
zarko.---@---.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.

The script checksetup.pl can be run any time to check health of your bugzilla! See what has been created in MySQL ...
mysql> use bugs;
Database changed

mysql> show tables;
+-----------------------------+
| Tables_in_bugs              |
+-----------------------------+
| attach_data                 |
| attachments                 |
| audit_log                   |
| bug_group_map               |
| bug_see_also                |
| bug_severity                |
| bug_status                  |
| bug_tag                     |
| bug_user_last_visit         |
| bugs                        |
| bugs_activity               |
| bugs_aliases                |
| bugs_fulltext               |
| bz_schema                   |
| category_group_map          |
| cc                          |
| classifications             |
| component_cc                |
| components                  |
| dependencies                |
| duplicates                  |
| email_bug_ignore            |
| email_setting               |
| field_visibility            |
| fielddefs                   |
| flagexclusions              |
| flaginclusions              |
| flags                       |
| flagtypes                   |
| group_control_map           |
| group_group_map             |
| groups                      |
| keyworddefs                 |
| keywords                    |
| login_failure               |
| logincookies                |
| longdescs                   |
| longdescs_tags              |
| longdescs_tags_activity     |
| longdescs_tags_weights      |
| mail_staging                |
| milestones                  |
| namedqueries                |
| namedqueries_link_in_footer |
| namedquery_group_map        |
| op_sys                      |
| priority                    |
| products                    |
| profile_search              |
| profile_setting             |
| profiles                    |
| profiles_activity           |
| quips                       |
| rep_platform                |
| reports                     |
| resolution                  |
| series                      |
| series_categories           |
| series_data                 |
| setting                     |
| setting_value               |
| status_workflow             |
| tag                         |
| tokens                      |
| ts_error                    |
| ts_exitstatus               |
| ts_funcmap                  |
| ts_job                      |
| ts_note                     |
| user_api_keys               |
| user_group_map              |
| versions                    |
| watch                       |
| whine_events                |
| whine_queries               |
| whine_schedules             |
+-----------------------------+

The mysql limit table's size to 4GB, and we need table attachments to be say 20G
mysql> alter table attachments avg_row_length=100000, max_rows=20000;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

Apache config

By default Bugzilla runs under Apache by using mod_cgi hence have this in /etc/httpd/conf/httpd.conf
# bugzilla
<Directory /var/www/html/bugzilla-5.0>
    AddHandler cgi-script .cgi
    Options +Indexes +ExecCGI
    DirectoryIndex index.cgi
    AllowOverride Limit FileInfo Indexes
</Directory>

Then test the web server
# /var/www/html/bugzilla-5.0/testserver.pl  http://hostname/bugzilla-5.0
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 http://hostname/bugzilla-5.0/localconfig.
TEST-WARNING Failed to run gdlib-config; can't compare GD versions.
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.

And login to http://hostname/bugzilla-5.0 and setup some of core parametres as per the page you see.



Back to the main page