Skip to content

Latest commit

 

History

History
218 lines (154 loc) · 8.57 KB

linux.rst

File metadata and controls

218 lines (154 loc) · 8.57 KB

Linux

Some Linux distributions include Bugzilla and its dependencies in their package management systems. If you have root access, installing Bugzilla on any Linux system could be as simple as finding the Bugzilla package in the package management application and installing it. There may be a small bit of additional configuration required.

If you are installing your machine from scratch, quick-start may be the best instructions for you.

Install Packages

Use your distribution's package manager to install Perl, your preferred database engine (MySQL if in doubt), and a webserver (Apache if in doubt). Some distributions even have a Bugzilla package, although that will vary in age.

The commands below will install those things and some of Bugzilla's other prerequisites as well. If you find a package doesn't install or the name is not found, just remove it from the list and reissue the command. If you want to use a different database or webserver, substitute the package names as appropriate.

Fedora and Red Hat

The following command will install Red Hat's packaged version of Bugzilla:

yum install bugzilla httpd mysql-server

Then, you can skip to configuring your database <linux-config-database>. It may be useful to know that Fedora stores the Bugzilla files in /usr/share/bugzilla, so that's where you'll run checksetup.pl.

If you want to install a version of Bugzilla from the Bugzilla project, you will instead need:

yum install httpd mysql-server mod_perl mod_perl-devel httpd-devel gd-devel mysql-devel graphviz patchutils gcc 'perl(Apache2::SizeLimit)' 'perl(Authen::Radius)' 'perl(Authen::SASL)' 'perl(Cache::Memcached)' 'perl(CGI)' 'perl(Chart::Lines)' 'perl(Daemon::Generic)' 'perl(Date::Format)' 'perl(DateTime)' 'perl(DateTime::TimeZone)' 'perl(DBI)' 'perl(Digest::SHA)' 'perl(Email::MIME)' 'perl(Email::Reply)' 'perl(Email::Sender)' 'perl(Encode)' 'perl(Encode::Detect)' 'perl(File::MimeInfo::Magic)' 'perl(GD)' 'perl(GD::Graph)' 'perl(GD::Text)' 'perl(HTML::FormatText::WithLinks)' 'perl(HTML::Parser)' 'perl(HTML::Scrubber)' 'perl(IO::Scalar)' 'perl(JSON::RPC)' 'perl(JSON::XS)' 'perl(List::MoreUtils)' 'perl(LWP::UserAgent)' 'perl(Math::Random::ISAAC)' 'perl(MIME::Parser)' 'perl(mod_perl2)' 'perl(Net::LDAP)' 'perl(Net::SMTP::SSL)' 'perl(PatchReader)' 'perl(SOAP::Lite)' 'perl(Template)' 'perl(Template::Plugin::GD::Image)' 'perl(Test::Taint)' 'perl(TheSchwartz)' 'perl(URI)' 'perl(XMLRPC::Lite)' 'perl(XML::Twig)'

If you are running RHEL6, you will have to enable the "RHEL Server Optional" channel in RHN to get some of those packages.

If you plan to use a database other than MySQL, you will need to also install the appropriate packages for that.

Ubuntu and Debian

apt-get install git nano

apt-get install apache2 mysql-server libappconfig-perl libdate-calc-perl libtemplate-perl libmime-perl build-essential libdatetime-timezone-perl libdatetime-perl libemail-sender-perl libemail-mime-perl libemail-mime-modifier-perl libdbi-perl libdbd-mysql-perl libcgi-pm-perl libmath-random-isaac-perl libmath-random-isaac-xs-perl apache2-mpm-prefork libapache2-mod-perl2 libapache2-mod-perl2-dev libchart-perl libxml-perl libxml-twig-perl perlmagick libgd-graph-perl libtemplate-plugin-gd-perl libsoap-lite-perl libhtml-scrubber-perl libjson-rpc-perl libdaemon-generic-perl libtheschwartz-perl libtest-taint-perl libauthen-radius-perl libfile-slurp-perl libencode-detect-perl libmodule-build-perl libnet-ldap-perl libauthen-sasl-perl libtemplate-perl-doc libfile-mimeinfo-perl libhtml-formattext-withlinks-perl libgd-dev libmysqlclient-dev lynx-cur graphviz python-sphinx

If you plan to use a database other than MySQL, you will need to also install the appropriate packages for that.

Ubuntu 20.04 with MariaDB and Apache ------------sudo apt install bugzilla-cli apache2

sudo a2enmod rewrite headers expires cgid

systemctl restart apache2

sudo apt install mariadb-server mariadb-client libdate-calc-perl libtemplate-perl libappconfig-perl build-essential libdatetime-timezone-perl libdatetime-perl libemail-sender-perl libemail-mime-perl libdbi-perl libdbd-mysql-perl libcgi-pm-perl libmath-random-isaac-perl libmath-random-isaac-xs-perl libapache2-mod-perl2 libapache2-mod-perl2-dev libchart-perl libxml-perl libxml-twig-perl perlmagick libgd-graph-perl libtemplate-plugin-gd-perl libsoap-lite-perl libhtml-scrubber-perl libjson-rpc-perl libdaemon-generic-perl libtheschwartz-perl libtest-taint-perl libauthen-radius-perl libfile-slurp-perl libencode-detect-perl libmodule-build-perl libnet-ldap-perl libauthen-sasl-perl libtemplate-perl libfile-mimeinfo-perl libhtml-formattext-withlinks-perl libgd-dev libmysqlclient-dev libmariadbclient-dev lynx-common graphviz libmemcached-libmemcached-perli libemail-address-perli libcache-memcached-perl libfile-which-perl libfile-copy-recursive-perl libemail-reply-perl

systemctl restart apache2

There is no Ubuntu package for PatchReader so you will have to install that module outside the package manager if you want it.

Gentoo

emerge -av bugzilla

will install Bugzilla and all its dependencies. If you don't have the vhosts USE flag enabled, Bugzilla will end up in /var/www/localhost/bugzilla.

Then, you can skip to configuring your database <linux-config-database>.

Perl

Test which version of Perl you have installed with: :

$ perl -v

Bugzilla requires at least Perl .

Bugzilla

The best way to get Bugzilla is to check it out from git:

git clone --branch release-X.X-stable https://github.com/bugzilla/bugzilla

Run the above command in your home directory, replacing "X.X" with the 2-digit version number of the stable release of Bugzilla that you want - e.g. "4.4".

If that's not possible, you can download a tarball of Bugzilla.

Place Bugzilla in a suitable directory, accessible by the default web server user (probably apache or www-data). Good locations are either directly in the web server's document directory (often /var/www/html) or in /usr/local, either with a symbolic link to the web server's document directory or an alias in the web server's configuration.

Warning

The default Bugzilla distribution is NOT designed to be placed in a cgi-bin directory. This includes any directory which is configured using the ScriptAlias directive of Apache.

Perl Modules

Bugzilla requires a number of Perl modules. You can install these globally using your system's package manager, or install Bugzilla-only copies. At times, Bugzilla may require a version of a Perl module newer than the one your distribution packages, in which case you will need to install a Bugzilla-only copy of the newer version.

At this point you probably need to become root, e.g. by using su. You should remain as root until the end of the install. This can be avoided in some circumstances if you are a member of your webserver's group, but being root is easier and will always work.

To check whether you have all the required modules, run:

./checksetup.pl --check-modules

You can run this command as many times as necessary.

If you have not already installed the necessary modules, and want to do it system-wide, invoke your package manager appropriately at this point. Alternatively, you can install all missing modules locally (i.e. just for Bugzilla) like this:

./install-module.pl --all

Or, you can pass an individual module name:

./install-module.pl <modulename>

Web Server

Any web server that is capable of running CGI scripts can be made to work. We have specific configuration instructions for the following:

  • apache

Database Engine

Bugzilla supports MySQL, PostgreSQL, Oracle and SQLite as database servers. You only require one of these systems to make use of Bugzilla. MySQL is most commonly used. SQLite is good for trial installations as it requires no setup. Configure your server according to the instructions below:

  • mysql
  • postgresql
  • oracle
  • sqlite

Next, do the essential-post-install-config.