<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Installation</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="The Bugzilla Guide - 3.6.4 Release" HREF="index.html"><LINK REL="UP" TITLE="Installing Bugzilla" HREF="installing-bugzilla.html"><LINK REL="PREVIOUS" TITLE="Installing Bugzilla" HREF="installing-bugzilla.html"><LINK REL="NEXT" TITLE="Configuration" HREF="configuration.html"></HEAD ><BODY CLASS="section" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >The Bugzilla Guide - 3.6.4 Release</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="installing-bugzilla.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Chapter 2. Installing Bugzilla</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="configuration.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="installation" >2.1. Installation</A ></H1 ><DIV CLASS="note" ><P ></P ><TABLE CLASS="note" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/note.gif" HSPACE="5" ALT="Note"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P >If you just want to <EM >use</EM > Bugzilla, you do not need to install it. None of this chapter is relevant to you. Ask your Bugzilla administrator for the URL to access it from your web browser. </P ></TD ></TR ></TABLE ></DIV ><P >The Bugzilla server software is usually installed on Linux or Solaris. If you are installing on another OS, check <A HREF="os-specific.html" >Section 2.5</A > before you start your installation to see if there are any special instructions. </P ><P >This guide assumes that you have administrative access to the Bugzilla machine. It not possible to install and run Bugzilla itself without administrative access except in the very unlikely event that every single prerequisite is already installed. </P ><DIV CLASS="warning" ><P ></P ><TABLE CLASS="warning" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/warning.gif" HSPACE="5" ALT="Warning"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P >The installation process may make your machine insecure for short periods of time. Make sure there is a firewall between you and the Internet. </P ></TD ></TR ></TABLE ></DIV ><P > You are strongly recommended to make a backup of your system before installing Bugzilla (and at regular intervals thereafter :-). </P ><P >In outline, the installation proceeds as follows: </P ><DIV CLASS="procedure" ><OL TYPE="1" ><LI CLASS="step" ><P ><A HREF="installation.html#install-perl" >Install Perl</A > (5.8.1 or above) </P ></LI ><LI CLASS="step" ><P ><A HREF="installation.html#install-database" >Install a Database Engine</A > </P ></LI ><LI CLASS="step" ><P ><A HREF="installation.html#install-webserver" >Install a Webserver</A > </P ></LI ><LI CLASS="step" ><P ><A HREF="installation.html#install-bzfiles" >Install Bugzilla</A > </P ></LI ><LI CLASS="step" ><P ><A HREF="installation.html#install-perlmodules" >Install Perl modules</A > </P ></LI ><LI CLASS="step" ><P > <A HREF="installation.html#install-MTA" >Install a Mail Transfer Agent</A > (Sendmail 8.7 or above, or an MTA that is Sendmail-compatible with at least this version) </P ></LI ><LI CLASS="step" ><P >Configure all of the above. </P ></LI ></OL ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="install-perl" >2.1.1. Perl</A ></H2 ><P >Installed Version Test: <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="programlisting" >perl -v</PRE ></FONT ></TD ></TR ></TABLE ></P ><P >Any machine that doesn't have Perl on it is a sad machine indeed. If you don't have it and your OS doesn't provide official packages, visit <A HREF="http://www.perl.org" TARGET="_top" >http://www.perl.org</A >. Although Bugzilla runs with Perl 5.8.1, it's a good idea to be using the latest stable version. </P ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="install-database" >2.1.2. Database Engine</A ></H2 ><P > Bugzilla supports MySQL, PostgreSQL and Oracle as database servers. You only require one of these systems to make use of Bugzilla. </P ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-mysql" >2.1.2.1. MySQL</A ></H3 ><P >Installed Version Test: <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="programlisting" >mysql -V</PRE ></FONT ></TD ></TR ></TABLE ></P ><P > If you don't have it and your OS doesn't provide official packages, visit <A HREF="http://www.mysql.com" TARGET="_top" >http://www.mysql.com</A >. You need MySQL version 4.1.2 or higher. </P ><DIV CLASS="note" ><P ></P ><TABLE CLASS="note" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/note.gif" HSPACE="5" ALT="Note"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > Many of the binary versions of MySQL store their data files in <TT CLASS="filename" >/var</TT >. On some Unix systems, this is part of a smaller root partition, and may not have room for your bug database. To change the data directory, you have to build MySQL from source yourself, and set it as an option to <TT CLASS="filename" >configure</TT >.</P ></TD ></TR ></TABLE ></DIV ><P >If you install from something other than a packaging/installation system, such as .rpm (Redhat Package), .deb (Debian Package), .exe (Windows Executable), or .msi (Microsoft Installer), make sure the MySQL server is started when the machine boots. </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-pg" >2.1.2.2. PostgreSQL</A ></H3 ><P >Installed Version Test: <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="programlisting" >psql -V</PRE ></FONT ></TD ></TR ></TABLE ></P ><P > If you don't have it and your OS doesn't provide official packages, visit <A HREF="http://www.postgresql.org/" TARGET="_top" >http://www.postgresql.org/</A >. You need PostgreSQL version 8.00.0000 or higher. </P ><P >If you install from something other than a packaging/installation system, such as .rpm (Redhat Package), .deb (Debian Package), .exe (Windows Executable), or .msi (Microsoft Installer), make sure the PostgreSQL server is started when the machine boots. </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-oracle" >2.1.2.3. Oracle</A ></H3 ><P > Installed Version Test: <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="programlisting" >select * from v$version</PRE ></FONT ></TD ></TR ></TABLE > (you first have to log in into your DB) </P ><P > If you don't have it and your OS doesn't provide official packages, visit <A HREF="http://www.oracle.com/" TARGET="_top" >http://www.oracle.com/</A >. You need Oracle version 10.02.0 or higher. </P ><P > If you install from something other than a packaging/installation system, such as .rpm (Redhat Package), .deb (Debian Package), .exe (Windows Executable), or .msi (Microsoft Installer), make sure the Oracle server is started when the machine boots. </P ></DIV ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="install-webserver" >2.1.3. Web Server</A ></H2 ><P >Installed Version Test: view the default welcome page at http://<your-machine>/</P ><P >You have freedom of choice here, pretty much any web server that is capable of running <A HREF="glossary.html#gloss-cgi" ><I CLASS="glossterm" >CGI</I ></A > scripts will work. However, we strongly recommend using the Apache web server (either 1.3.x or 2.x), and the installation instructions usually assume you are using it. If you have got Bugzilla working using another web server, please share your experiences with us by filing a bug in <A HREF="https://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla&component=Documentation" TARGET="_top" >Bugzilla Documentation</A >. </P ><P > If you don't have Apache and your OS doesn't provide official packages, visit <A HREF="http://httpd.apache.org/" TARGET="_top" >http://httpd.apache.org/</A >. </P ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="install-bzfiles" >2.1.4. Bugzilla</A ></H2 ><P > <A HREF="http://www.bugzilla.org/download/" TARGET="_top" >Download a Bugzilla tarball</A > (or check it out from CVS) and place it in a suitable directory, accessible by the default web server user (probably <SPAN CLASS="QUOTE" >"apache"</SPAN > or <SPAN CLASS="QUOTE" >"www"</SPAN >). Good locations are either directly in the web server's document directories or in <TT CLASS="filename" >/usr/local</TT > with a symbolic link to the web server's document directories or an alias in the web server's configuration. </P ><DIV CLASS="caution" ><P ></P ><TABLE CLASS="caution" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/caution.gif" HSPACE="5" ALT="Caution"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P >The default Bugzilla distribution is NOT designed to be placed in a <TT CLASS="filename" >cgi-bin</TT > directory. This includes any directory which is configured using the <CODE CLASS="option" >ScriptAlias</CODE > directive of Apache. </P ></TD ></TR ></TABLE ></DIV ><P >Once all the files are in a web accessible directory, make that directory writable by your web server's user. This is a temporary step until you run the <TT CLASS="filename" >checksetup.pl</TT > script, which locks down your installation.</P ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="install-perlmodules" >2.1.5. Perl Modules</A ></H2 ><P >Bugzilla's installation process is based on a script called <TT CLASS="filename" >checksetup.pl</TT >. The first thing it checks is whether you have appropriate versions of all the required Perl modules. The aim of this section is to pass this check. When it passes, proceed to <A HREF="configuration.html" >Section 2.2</A >. </P ><P > At this point, you need to <TT CLASS="filename" >su</TT > to root. You should remain as root until the end of the install. To check you have the required modules, run: </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="screen" ><SAMP CLASS="prompt" >bash#</SAMP > ./checksetup.pl --check-modules</PRE ></FONT ></TD ></TR ></TABLE ><P > <TT CLASS="filename" >checksetup.pl</TT > will print out a list of the required and optional Perl modules, together with the versions (if any) installed on your machine. The list of required modules is reasonably long; however, you may already have several of them installed. </P ><P > The preferred way to install missing Perl modules is to use the package manager provided by your operating system (e.g <SPAN CLASS="QUOTE" >"rpm"</SPAN > or <SPAN CLASS="QUOTE" >"yum"</SPAN > on Linux distros, or <SPAN CLASS="QUOTE" >"ppm"</SPAN > on Windows if using ActivePerl, see <A HREF="os-specific.html#win32-perl-modules" >Section 2.5.1.2</A >). If some Perl modules are still missing or are too old, then we recommend using the <TT CLASS="filename" >install-module.pl</TT > script (doesn't work with ActivePerl on Windows). If for some reason you really need to install the Perl modules manually, see <A HREF="install-perlmodules-manual.html" >Appendix C</A >. For instance, on Unix, you invoke <TT CLASS="filename" >install-module.pl</TT > as follows: </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="screen" ><SAMP CLASS="prompt" >bash#</SAMP > perl install-module.pl <modulename></PRE ></FONT ></TD ></TR ></TABLE ><DIV CLASS="tip" ><P ></P ><TABLE CLASS="tip" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/tip.gif" HSPACE="5" ALT="Tip"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P >Many people complain that Perl modules will not install for them. Most times, the error messages complain that they are missing a file in <SPAN CLASS="QUOTE" >"@INC"</SPAN >. Virtually every time, this error is due to permissions being set too restrictively for you to compile Perl modules or not having the necessary Perl development libraries installed on your system. Consult your local UNIX systems administrator for help solving these permissions issues; if you <EM >are</EM > the local UNIX sysadmin, please consult the newsgroup/mailing list for further assistance or hire someone to help you out.</P ></TD ></TR ></TABLE ></DIV ><DIV CLASS="note" ><P ></P ><TABLE CLASS="note" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/note.gif" HSPACE="5" ALT="Note"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P >If you are using a package-based system, and attempting to install the Perl modules from CPAN, you may need to install the "development" packages for MySQL and GD before attempting to install the related Perl modules. The names of these packages will vary depending on the specific distribution you are using, but are often called <TT CLASS="filename" ><packagename>-devel</TT >.</P ></TD ></TR ></TABLE ></DIV ><P > Here is a complete list of modules and their minimum versions. Some modules have special installation notes, which follow. </P ><P >Required Perl modules: <P ></P ><OL TYPE="1" ><LI ><P > CGI (3.51) </P ></LI ><LI ><P > Date::Format (2.21) </P ></LI ><LI ><P > DateTime (0.28) </P ></LI ><LI ><P > DateTime::TimeZone (0.71) </P ></LI ><LI ><P > DBI (1.41) </P ></LI ><LI ><P > DBD::mysql (4.00) if using MySQL </P ></LI ><LI ><P > DBD::Pg (1.45) if using PostgreSQL </P ></LI ><LI ><P > DBD::Oracle (1.19) if using Oracle </P ></LI ><LI ><P > Digest::SHA (any) </P ></LI ><LI ><P > Email::Send (2.00) </P ></LI ><LI ><P > Email::MIME (1.861) </P ></LI ><LI ><P > Email::MIME::Encodings (1.313) </P ></LI ><LI ><P > Email::MIME::Modifier (1.442) </P ></LI ><LI ><P > Template (2.22) </P ></LI ><LI ><P > URI (any) </P ></LI ></OL > Optional Perl modules: <P ></P ><OL TYPE="1" ><LI ><P > GD (1.20) for bug charting </P ></LI ><LI ><P > Template::Plugin::GD::Image (any) for Graphical Reports </P ></LI ><LI ><P > Chart::Lines (2.1) for bug charting </P ></LI ><LI ><P > GD::Graph (any) for bug charting </P ></LI ><LI ><P > GD::Text (any) for bug charting </P ></LI ><LI ><P > XML::Twig (any) for bug import/export </P ></LI ><LI ><P > MIME::Parser (5.406) for bug import/export </P ></LI ><LI ><P > LWP::UserAgent (any) for Automatic Update Notifications </P ></LI ><LI ><P > PatchReader (0.9.4) for pretty HTML view of patches </P ></LI ><LI ><P > Net::LDAP (any) for LDAP Authentication </P ></LI ><LI ><P > Authen::SASL (any) for SASL Authentication </P ></LI ><LI ><P > Authen::Radius (any) for RADIUS Authentication </P ></LI ><LI ><P > SOAP::Lite (0.710.06) for the web service interface </P ></LI ><LI ><P > JSON::RPC (any) for the JSON-RPC interface </P ></LI ><LI ><P > Test::Taint (any) for the web service interface </P ></LI ><LI ><P > HTML::Parser (3.40) for More HTML in Product/Group Descriptions </P ></LI ><LI ><P > HTML::Scrubber (any) for More HTML in Product/Group Descriptions </P ></LI ><LI ><P > Email::MIME::Attachment::Stripper (any) for Inbound Email </P ></LI ><LI ><P > Email::Reply (any) for Inbound Email </P ></LI ><LI ><P > TheSchwartz (any) for Mail Queueing </P ></LI ><LI ><P > Daemon::Generic (any) for Mail Queueing </P ></LI ><LI ><P > mod_perl2 (1.999022) for mod_perl </P ></LI ></OL > </P ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="install-MTA" >2.1.6. Mail Transfer Agent (MTA)</A ></H2 ><P > Bugzilla is dependent on the availability of an e-mail system for its user authentication and for other tasks. </P ><DIV CLASS="note" ><P ></P ><TABLE CLASS="note" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/note.gif" HSPACE="5" ALT="Note"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > This is not entirely true. It is possible to completely disable email sending, or to have Bugzilla store email messages in a file instead of sending them. However, this is mainly intended for testing, as disabling or diverting email on a production machine would mean that users could miss important events (such as bug changes or the creation of new accounts). </P ><P > For more information, see the <SPAN CLASS="QUOTE" >"mail_delivery_method"</SPAN > parameter in <A HREF="parameters.html" >Section 3.1</A >. </P ></TD ></TR ></TABLE ></DIV ><P > On Linux, any Sendmail-compatible MTA (Mail Transfer Agent) will suffice. Sendmail, Postfix, qmail and Exim are examples of common MTAs. Sendmail is the original Unix MTA, but the others are easier to configure, and therefore many people replace Sendmail with Postfix or Exim. They are drop-in replacements, so Bugzilla will not distinguish between them. </P ><P > If you are using Sendmail, version 8.7 or higher is required. If you are using a Sendmail-compatible MTA, it must be congruent with at least version 8.7 of Sendmail. </P ><P > Consult the manual for the specific MTA you choose for detailed installation instructions. Each of these programs will have their own configuration files where you must configure certain parameters to ensure that the mail is delivered properly. They are implemented as services, and you should ensure that the MTA is in the auto-start list of services for the machine. </P ><P > If a simple mail sent with the command-line 'mail' program succeeds, then Bugzilla should also be fine. </P ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="using-mod_perl-with-bugzilla" >2.1.7. Installing Bugzilla on mod_perl</A ></H2 ><P >It is now possible to run the Bugzilla software under <TT CLASS="literal" >mod_perl</TT > on Apache. <TT CLASS="literal" >mod_perl</TT > has some additional requirements to that of running Bugzilla under <TT CLASS="literal" >mod_cgi</TT > (the standard and previous way).</P ><P >Bugzilla requires <TT CLASS="literal" >mod_perl</TT > to be installed, which can be obtained from <A HREF="http://perl.apache.org" TARGET="_top" >http://perl.apache.org</A > - Bugzilla requires version 1.999022 (AKA 2.0.0-RC5) to be installed.</P ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="installing-bugzilla.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="configuration.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Installing Bugzilla</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="installing-bugzilla.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Configuration</TD ></TR ></TABLE ></DIV ></BODY ></HTML >