<HTML ><HEAD ><TITLE >Step-by-step Install</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ "><LINK REL="HOME" TITLE="The Bugzilla Guide - 2.17.4 Development Release" HREF="index.html"><LINK REL="UP" TITLE="Installation" HREF="installation.html"><LINK REL="PREVIOUS" TITLE="Installation" HREF="installation.html"><LINK REL="NEXT" TITLE="Optional Additional Configuration" HREF="extraconfig.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 - 2.17.4 Development Release</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="installation.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Chapter 4. Installation</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="extraconfig.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="stepbystep" ></A >4.1. Step-by-step Install</H1 ><P >Bugzilla has been successfully installed under many different operating systems including almost all Unix clones and <SPAN CLASS="productname" >Microsoft Windows</SPAN >. Many operating systems have utilities that make installation easier or quirks that make it harder. We have tried to collect that information in <A HREF="os-specific.html" >Section 4.3</A >, so be sure to check out that section before you start your installation. </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 >Windows is one of those operating systems that has many quirks and is not yet officially supported by the Bugzilla team. If you wish to install Bugzilla on Windows, be sure to see <A HREF="os-specific.html#os-win32" >Section 4.3.1</A >. </P ></TD ></TR ></TABLE ></DIV ><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 >While installing Bugzilla, it is a good idea to ensure that there is some kind of firewall between you and the rest of the Internet as your machine may be insecure for periods during the install. Many installation steps require an active Internet connection to complete, but you must take care to ensure that at no point is your machine vulnerable to an attack.</P ></TD ></TR ></TABLE ></DIV ><P >This guide assumes that you already have your operating system installed, network configured, and have administrative access to the shell on the machine you are installing Bugzilla onto. It is possible to install and run Bugzilla without administrative access, but you have to either make sure all the required software is installed or get somebody with administrative access to install it for you. </P ><P >The listing below is a basic step-by-step list. More information can be found in the sections below. Minimum versions will be included in parenthesis where appropriate. </P ><DIV CLASS="procedure" ><OL TYPE="1" ><LI ><P ><A HREF="stepbystep.html#install-mysql" >Install MySQL</A > (3.23.41) </P ></LI ><LI ><P ><A HREF="stepbystep.html#install-perl" >Install Perl</A > (5.6) </P ></LI ><LI ><P ><A HREF="stepbystep.html#install-perlmodules" >Install Perl Modules</A > </P ></LI ><LI ><P ><A HREF="stepbystep.html#install-webserver" >Install a Webserver</A > </P ></LI ><LI ><P ><A HREF="stepbystep.html#install-bzfiles" >Put Bugzilla in the Webspace</A > </P ></LI ><LI ><P ><A HREF="stepbystep.html#install-setupdatabase" >Setup the MySQL Database</A > </P ></LI ></OL ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="install-mysql" ></A >4.1.1. MySQL</H2 ><P >Visit the MySQL homepage at <A HREF="http://www.mysql.com" TARGET="_top" >http://www.mysql.com</A > to grab and install the latest stable release of the server. </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. You can set the data directory as an option to <TT CLASS="filename" >configure</TT > if you build MySQL from source yourself.</P ></TD ></TR ></TABLE ></DIV ><P >If you install from something other than a packaging/installation system (such as .rpm, .dep, .exe, or .msi) you will need to configure your system so the MySQL server daemon will come back up whenever your machine reboots. </P ><P >If you wish to have attachments larger than 64K, you will have to configure MySQL to accept large packets. This is done by adding the text in <A HREF="stepbystep.html#install-mysql-packets" >Figure 4-1</A > to your <TT CLASS="filename" >my.conf</TT > file. There is also a parameter in Bugzilla for setting the maximum allowable attachment size. You should set this value to be slightly larger than that parameter. </P ><DIV CLASS="figure" ><A NAME="install-mysql-packets" ></A ><P ><B >Figure 4-1. Set Max Packet Size in MySQL</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="programlisting" > [mysqld] # Allow packets up to 1M set-variable = max_allowed_packet=1M </PRE ></FONT ></TD ></TR ></TABLE ></DIV ><P >If you are running Bugzilla and MySQL on the same machine, you may also wish to utilize the <TT CLASS="option" >skip-networking</TT > option as mentioned in <A HREF="security.html#security-mysql" >Section 5.6.2</A > for the added security. </P ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="install-perl" ></A >4.1.2. Perl</H2 ><P >Any machine that doesn't have Perl on it is a sad machine indeed. Perl can be got in source form from <A HREF="http://www.perl.com" TARGET="_top" >http://www.perl.com</A >. There are also binary versions available for many platforms, most of which are linked to from perl.com. Although Bugzilla runs with perl 5.6, it's a good idea to be up to the very latest version if you can when running Bugzilla. As of this writing, that is Perl version 5.8.</P ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="install-perlmodules" ></A >4.1.3. Perl Modules</H2 ><P >Perl modules can be found using <A HREF="glossary.html#gloss-cpan" ><I CLASS="glossterm" >CPAN</I ></A > on Unix based systems or <A HREF="glossary.html#gloss-ppm" ><I CLASS="glossterm" >PPM</I ></A > on Win32. The root servers have a real tendency to bog down, so please use mirrors. </P ><P >Good instuctions can be found for using each of these services on their respective websites. The basics can be found in <A HREF="stepbystep.html#install-perlmodules-cpan" >Example 4-1</A > for CPAN and <A HREF="os-specific.html#win32-perlmodules" >Section 4.3.1.2</A > for PPM. </P ><DIV CLASS="example" ><A NAME="install-perlmodules-cpan" ></A ><P ><B >Example 4-1. Installing perl modules with CPAN</B ></P ><P >The easy way: <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="screen" > <TT CLASS="prompt" >bash#</TT > perl -MCPAN -e 'install "<modulename>"' </PRE ></FONT ></TD ></TR ></TABLE > </P ><P >Or the hard way: <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="screen" > <TT CLASS="prompt" >bash#</TT > tar xzvf <module>.tar.gz <A NAME="cpan-moduletar" ><IMG SRC="../images/callouts/1.gif" HSPACE="0" VSPACE="0" BORDER="0" ALT="(1)"></A > <TT CLASS="prompt" >bash#</TT > cd <module> <A NAME="cpan-moduledir" ><IMG SRC="../images/callouts/2.gif" HSPACE="0" VSPACE="0" BORDER="0" ALT="(2)"></A > <TT CLASS="prompt" >bash#</TT > perl Makefile.PL <TT CLASS="prompt" >bash#</TT > make <TT CLASS="prompt" >bash#</TT > make test <TT CLASS="prompt" >bash#</TT > make install </PRE ></FONT ></TD ></TR ></TABLE > <DIV CLASS="calloutlist" ><DL COMPACT="COMPACT" ><DT ><A HREF="stepbystep.html#cpan-moduletar" ><IMG SRC="../images/callouts/1.gif" HSPACE="0" VSPACE="0" BORDER="0" ALT="(1)"></A ></DT ><DD >This assumes that you've already downloaded the <TT CLASS="filename" ><module>.tar.gz</TT > to the current working directory. </DD ><DT ><A HREF="stepbystep.html#cpan-moduledir" ><IMG SRC="../images/callouts/2.gif" HSPACE="0" VSPACE="0" BORDER="0" ALT="(2)"></A ></DT ><DD >The process of untaring the module as defined in <A HREF="stepbystep.html#cpan-moduletar" ><A HREF="stepbystep.html#cpan-moduletar" ><IMG SRC="../images/callouts/1.gif" HSPACE="0" VSPACE="0" BORDER="0" ALT="(1)"></A ></A > will create the <TT CLASS="filename" ><module></TT > directory. </DD ></DL ></DIV > </P ></DIV ><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 ><P >Perl Modules (minimum version): <P ></P ><OL TYPE="1" ><LI ><P > <A HREF="stepbystep.html#install-modules-bundle-bugzilla" >Bundle::Bugzilla</A > (Will allow you to skip the rest) </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-modules-appconfig" >AppConfig</A > (1.52) </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-modules-cgi" >CGI</A > (2.88) </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-modules-data-dumper" >Data::Dumper</A > (any) </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-modules-date-format" >Date::Format</A > (2.21) </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-modules-dbi" >DBI</A > (1.32) </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-modules-dbd-mysql" >DBD::mysql</A > (2.1010) </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-file-spec" >File::Spec</A > (0.82) </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-modules-file-temp" >File::Temp</A > (any) </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-modules-template" >Template Toolkit</A > (2.08) </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-modules-text-wrap" >Text::Wrap</A > (2001.0131) </P ></LI ></OL > and, optionally: <P ></P ><OL TYPE="1" ><LI ><P > <A HREF="stepbystep.html#install-modules-gd" >GD</A > (1.20) for bug charting </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-modules-chart-base" >Chart::Base</A > (0.99c) for bug charting </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-modules-xml-parser" >XML::Parser</A > (any) for the XML interface </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-modules-gd-graph" >GD::Graph</A > (any) for bug charting </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-modules-gd-text-align" >GD::Text::Align</A > (any) for bug charting </P ></LI ><LI ><P > <A HREF="stepbystep.html#install-modules-mime-parser" >MIME::Parser</A > (any) for the email interface </P ></LI ></OL > </P ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-bundle-bugzilla" ></A >4.1.3.1. Bundle::Bugzilla</H3 ><P >If you are running at least perl 5.6.1, you can save yourself a lot of time by using Bundle::Bugzilla. This bundle contains every module required to get Bugzilla running. It does not include GD and friends, but these are not required for a base install and can always be added later if the need arises. </P ><P >Assuming your perl was installed with CPAN (most unix installations are), using Bundle::Bugzilla is really easy. Simply follow along with the commands below. </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="screen" > <TT CLASS="prompt" >bash#</TT > <B CLASS="command" >perl -MCPAN -eshell</B > <A NAME="bundle-cpanconfig" ><IMG SRC="../images/callouts/1.gif" HSPACE="0" VSPACE="0" BORDER="0" ALT="(1)"></A > cpan shell -- CPAN exploration and modules installation (v1.63) ReadLine support enabled <TT CLASS="prompt" >cpan></TT > </PRE ></FONT ></TD ></TR ></TABLE ><DIV CLASS="calloutlist" ><DL COMPACT="COMPACT" ><DT ><A HREF="stepbystep.html#bundle-cpanconfig" ><IMG SRC="../images/callouts/1.gif" HSPACE="0" VSPACE="0" BORDER="0" ALT="(1)"></A ></DT ><DD >At this point, unless you've used CPAN on this machine before, you'll have to go through a series of configuration steps. </DD ></DL ></DIV ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-appconfig" ></A >4.1.3.2. AppConfig (1.52)</H3 ><P >Dependency for Template Toolkit. We probably don't need to specifically check for it anymore. </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-cgi" ></A >4.1.3.3. CGI (2.88)</H3 ><P >The CGI module parses form elements and cookies and does many other usefule things. It come as a part of recent perl distributions, but Bugzilla needs a fairly new version. </P ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/CGI.pm/" TARGET="_top" >http://search.cpan.org/dist/CGI.pm/</A ><br> PPM Download Link: <A HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/CGI.zip" TARGET="_top" >http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/CGI.zip</A ><br> Documentation: <A HREF="http://www.perldoc.com/perl5.8.0/lib/CGI.html" TARGET="_top" >http://www.perldoc.com/perl5.8.0/lib/CGI.html</A ><br> </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-data-dumper" ></A >4.1.3.4. Data::Dumper (any)</H3 ><P >The Data::Dumper module provides data structure persistence for Perl (similar to Java's serialization). It comes with later sub-releases of Perl 5.004, but a re-installation just to be sure it's available won't hurt anything. </P ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/Data-Dumper/" TARGET="_top" >http://search.cpan.org/dist/Data-Dumper/</A ><br> PPM Download Link: <A HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/Data-Dumper.zip" TARGET="_top" >http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/Data-Dumper.zip</A ><br> Documentation: <A HREF="http://www.perldoc.com/perl5.8.0/lib/Data/Dumper.html" TARGET="_top" >http://www.perldoc.com/perl5.8.0/lib/Data/Dumper.html</A ><br> </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-date-format" ></A >4.1.3.5. TimeDate modules (2.21)</H3 ><P >Many of the more common date/time/calendar related Perl modules have been grouped into a bundle similar to the MySQL modules bundle. This bundle is stored on the CPAN under the name TimeDate. The component module we're most interested in is the Date::Format module, but installing all of them is probably a good idea anyway. </P ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/TimeDate/" TARGET="_top" >http://search.cpan.org/dist/TimeDate/</A ><br> PPM Download Link: <A HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/TimeDate.zip" TARGET="_top" >http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/TimeDate.zip</A ><br> Documentation: <A HREF="http://search.cpan.org/dist/TimeDate/lib/Date/Format.pm" TARGET="_top" >http://search.cpan.org/dist/TimeDate/lib/Date/Format.pm</A ><br> </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-dbi" ></A >4.1.3.6. DBI (1.32)</H3 ><P >The DBI module is a generic Perl module used the MySQL-related modules. As long as your Perl installation was done correctly the DBI module should be a breeze. It's a mixed Perl/C module, but Perl's MakeMaker system simplifies the C compilation greatly.</P ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/DBI/" TARGET="_top" >http://search.cpan.org/dist/DBI/</A ><br> PPM Download Link: <A HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/DBI.zip" TARGET="_top" >http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/DBI.zip</A ><br> Documentation: <A HREF="http://dbi.perl.org/doc/" TARGET="_top" >http://dbi.perl.org/doc/</A ><br> </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-dbd-mysql" ></A >4.1.3.7. MySQL-related modules</H3 ><P >The Perl/MySQL interface requires a few mutually-dependent Perl modules. These modules are grouped together into the the Msql-Mysql-modules package.</P ><P >The MakeMaker process will ask you a few questions about the desired compilation target and your MySQL installation. For most of the questions the provided default will be adequate, but when asked if your desired target is the MySQL or mSQL packages, you should select the MySQL related ones. Later you will be asked if you wish to provide backwards compatibility with the older MySQL packages; you should answer YES to this question. The default is NO.</P ><P >A host of 'localhost' should be fine and a testing user of 'test' with a null password should find itself with sufficient access to run tests on the 'test' database which MySQL created upon installation. </P ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/DBD-mysql/" TARGET="_top" >http://search.cpan.org/dist/DBD-mysql/</A ><br> PPM Download Link: <A HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/DBD-Mysql.zip" TARGET="_top" >http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/DBD-Mysql.zip</A ><br> Documentation: <A HREF="http://search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pod" TARGET="_top" >http://search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pod</A ><br> </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-file-spec" ></A >4.1.3.8. File::Spec (0.82)</H3 ><P >File::Spec is a perl module that allows file operations, such as generating full path names, to work cross platform. </P ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/File-Spec/" TARGET="_top" >http://search.cpan.org/dist/File-Spec/</A ><br> PPM Download Page: <A HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/File-Spec.zip" TARGET="_top" >http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/File-Spec.zip</A ><br> Documentation: <A HREF="http://www.perldoc.com/perl5.8.0/lib/File/Spec.html" TARGET="_top" >http://www.perldoc.com/perl5.8.0/lib/File/Spec.html</A ><br> </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-file-temp" ></A >4.1.3.9. File::Temp (any)</H3 ><P >File::Temp is used to generate a temporary filename that is guaranteed to be unique. It comes as a standard part of perl </P ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/File-Spec/" TARGET="_top" >http://search.cpan.org/dist/File-Spec/</A ><br> PPM Download Link: <A HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/File-Spec.zip" TARGET="_top" >http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/File-Spec.zip</A ><br> Documentation: <A HREF="http://www.perldoc.com/perl5.8.0/lib/File/Temp.html" TARGET="_top" >http://www.perldoc.com/perl5.8.0/lib/File/Temp.html</A ><br> </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-template" ></A >4.1.3.10. Template Toolkit (2.08)</H3 ><P >When you install Template Toolkit, you'll get asked various questions about features to enable. The defaults are fine, except that it is recommended you use the high speed XS Stash of the Template Toolkit, in order to achieve best performance. </P ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/Template-Toolkit/" TARGET="_top" >http://search.cpan.org/dist/Template-Toolkit/</A ><br> PPM Download Link: <A HREF="http://openinteract.sourceforge.net/ppmpackages/5.6/Template-Toolkit.tar.gz" TARGET="_top" >http://openinteract.sourceforge.net/ppmpackages/5.6/Template-Toolkit.tar.gz</A ><br> Documentation: <A HREF="http://www.template-toolkit.org/docs.html" TARGET="_top" >http://www.template-toolkit.org/docs.html</A ><br> </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-text-wrap" ></A >4.1.3.11. Text::Wrap (2001.0131)</H3 ><P >Text::Wrap is designed to proved intelligent text wrapping. </P ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/Text-Tabs+Wrap/" TARGET="_top" >http://search.cpan.org/dist/Text-Tabs+Wrap/</A ><br> Documentation: <A HREF="http://www.perldoc.com/perl5.8.0/lib/Text/Wrap.html" TARGET="_top" >http://www.perldoc.com/perl5.8.0/lib/Text/Wrap.html</A ><br> </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-gd" ></A >4.1.3.12. GD (1.20) [optional]</H3 ><P >The GD library was written by Thomas Boutell a long while ago to programmatically generate images in C. Since then it's become the defacto standard for programmatic image construction. The Perl bindings to it found in the GD library are used on millions of web pages to generate graphs on the fly. That's what Bugzilla will be using it for so you must install it if you want any of the graphing to work.</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 >The Perl GD library requires some other libraries that may or may not be installed on your system, including <TT CLASS="classname" >libpng</TT > and <TT CLASS="classname" >libgd</TT >. The full requirements are listed in the Perl GD library README. If compiling GD fails, it's probably because you're missing a required library.</P ></TD ></TR ></TABLE ></DIV ><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 >The version of the GD perl module you need is very closely tied to the <TT CLASS="classname" >libgd</TT > version installed on your system. If you have a version 1.x of <TT CLASS="classname" >libgd</TT > the 2.x versions of the GD perl module won't work for you. </P ></TD ></TR ></TABLE ></DIV ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/GD/" TARGET="_top" >http://search.cpan.org/dist/GD/</A ><br> PPM Download Link: <A HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/GD.zip" TARGET="_top" >http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/GD.zip</A ><br> Documentation: <A HREF="http://stein.cshl.org/WWW/software/GD/" TARGET="_top" >http://stein.cshl.org/WWW/software/GD/</A ><br> </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-chart-base" ></A >4.1.3.13. Chart::Base (0.99c) [optional]</H3 ><P >The Chart module provides Bugzilla with on-the-fly charting abilities. It can be installed in the usual fashion after it has been fetched from CPAN. Note that earlier versions that 0.99c used GIFs, which are no longer supported by the latest versions of GD.</P ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/Chart/" TARGET="_top" >http://search.cpan.org/dist/Chart/</A ><br> PPM Download Link: <A HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/Chart.zip" TARGET="_top" >http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/Chart.zip</A ><br> </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-xml-parser" ></A >4.1.3.14. XML::Parser (any) [Optional]</H3 ><P >XML::Parser is used by the <TT CLASS="filename" >importxml.pl</TT > script. You only need it if you are going to be importing bugs (such as for bug moving). XML::Parser requires that the <TT CLASS="classname" >expat</TT > library is already installed on your machine. </P ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/XML-Parser/" TARGET="_top" >http://search.cpan.org/dist/XML-Parser/</A ><br> Documentation: <A HREF="http://www.perldoc.com/perl5.6.1/lib/XML/Parser.html" TARGET="_top" >http://www.perldoc.com/perl5.6.1/lib/XML/Parser.html</A ><br> </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-gd-graph" ></A >4.1.3.15. GD::Graph (any) [Optional]</H3 ><P >In addition to GD listed above, the reporting interface of Bugzilla needs to have the GD::Graph module installed. </P ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/GDGraph/" TARGET="_top" >http://search.cpan.org/dist/GDGraph/</A ><br> PPM Download Link: <A HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/GDGraph.zip" TARGET="_top" >http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/GDGraph.zip</A ><br> Documentation: <A HREF="http://search.cpan.org/dist/GDGraph/Graph.pm" TARGET="_top" >http://search.cpan.org/dist/GDGraph/Graph.pm</A ><br> </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-gd-text-align" ></A >4.1.3.16. GD::Text::Align (any) [Optional]</H3 ><P >GD::Text::Align, as the name implies, is used to draw aligned strings of text. It is needed by the reporting interface. </P ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/GDTextUtil/" TARGET="_top" >http://search.cpan.org/dist/GDTextUtil/</A ><br> PPM Download Page: <A HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/GDTextUtil.zip" TARGET="_top" >http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/GDTextUtil.zip</A ><br> Documentation: <A HREF="http://search.cpan.org/dist/GDTextUtil/Text/Align.pm" TARGET="_top" >http://search.cpan.org/dist/GDTextUtil/Text/Align.pm</A ><br> </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="install-modules-mime-parser" ></A >4.1.3.17. MIME::Parser (any) [Optional]</H3 ><P >MIME::Parser is only needed if you want to use the e-mail interface located in the <TT CLASS="filename" >contrib</TT > directory. </P ><P CLASS="literallayout" ><br> CPAN Download Page: <A HREF="http://search.cpan.org/dist/MIME-tools/" TARGET="_top" >http://search.cpan.org/dist/MIME-tools/</A ><br> PPM Download Link: <A HREF="http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/MIME-tools.zip" TARGET="_top" >http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/MIME-tools.zip</A ><br> Documentation: <A HREF="http://search.cpan.org/dist/MIME-tools/lib/MIME/Parser.pm" TARGET="_top" >http://search.cpan.org/dist/MIME-tools/lib/MIME/Parser.pm</A ><br> </P ></DIV ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="install-webserver" ></A >4.1.4. HTTP Server</H2 ><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. <A HREF="http.html" >Section 4.4</A > has more information about configuring web servers to work with Bugzilla. </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 >We strongly recommend Apache as the web server to use. The Bugzilla Guide installation instructions, in general, assume you are using Apache. If you have got Bugzilla working using another webserver, please share your experiences with us by filing a bug in <A HREF="http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla&component=Documentation" TARGET="_top" >Bugzilla Documentation</A >. </P ></TD ></TR ></TABLE ></DIV ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="install-bzfiles" ></A >4.1.5. Bugzilla</H2 ><P >You should untar the Bugzilla files into a directory that you're willing to make writable by the default web server user (probably <SPAN CLASS="QUOTE" >"nobody"</SPAN >). You may decide to put the files in the main web space for your web server or perhaps in <TT CLASS="filename" >/usr/local</TT > with a symbolic link in the web space that points to the Bugzilla directory.</P ><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 >If you symlink the bugzilla directory into your Apache's HTML hierarchy, you may receive <SPAN CLASS="errorname" >Forbidden</SPAN > errors unless you add the <SPAN CLASS="QUOTE" >"FollowSymLinks"</SPAN > directive to the <Directory> entry for the HTML root in httpd.conf.</P ></TD ></TR ></TABLE ></DIV ><P >Once all the files are in a web accessible directory, make that directory writable by your webserver's user. This is a temporary step until you run the post-install <TT CLASS="filename" >checksetup.pl</TT > script, which locks down your installation.</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 <TT CLASS="option" >ScriptAlias</TT > directive of Apache). This will probably change as part of <A HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=44659" TARGET="_top" >bug 44659</A >. </P ></TD ></TR ></TABLE ></DIV ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="install-setupdatabase" ></A >4.1.6. Setting Up the MySQL Database</H2 ><P >After you've gotten all the software installed and working you're ready to start preparing the database for its life as the back end to a high quality bug tracker.</P ><P >This first thing you'll want to do is make sure you've given the <SPAN CLASS="QUOTE" >"root"</SPAN > user a password as suggested in <A HREF="security.html#security-mysql" >Section 5.6.2</A >. For clarity, these instructions will assume that your MySQL user for Bugzilla will be <SPAN CLASS="QUOTE" >"bugs_user"</SPAN >, the database will be called <SPAN CLASS="QUOTE" >"bugs_db"</SPAN > and the password for the <SPAN CLASS="QUOTE" >"bugs_user"</SPAN > user is <SPAN CLASS="QUOTE" >"bugs_password"</SPAN >. You should, of course, substitute the values you intend to use for your site. </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 >Most people use <SPAN CLASS="QUOTE" >"bugs"</SPAN > for both the user and database name. </P ></TD ></TR ></TABLE ></DIV ><P >Next, we use an SQL <B CLASS="command" >GRANT</B > command to create a <SPAN CLASS="QUOTE" >"bugs_user"</SPAN > user, and grant sufficient permissions for checksetup.pl, which we'll use later, to work its magic. This also restricts the <SPAN CLASS="QUOTE" >"bugs_user"</SPAN > user to operations within a database called <SPAN CLASS="QUOTE" >"bugs_db"</SPAN >, and only allows the account to connect from <SPAN CLASS="QUOTE" >"localhost"</SPAN >. Modify it to reflect your setup if you will be connecting from another machine or as a different user.</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="screen" > <TT CLASS="prompt" >mysql></TT > GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE, DROP,REFERENCES ON bugs_db.* TO bugs_user@localhost IDENTIFIED BY 'bugs_password'; <TT CLASS="prompt" >mysql></TT > FLUSH PRIVILEGES; </PRE ></FONT ></TD ></TR ></TABLE ><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 MySQL 4, the bugs user also needs to be granted the <TT CLASS="computeroutput" >LOCK TABLES</TT > and <TT CLASS="computeroutput" >CREATE TEMPORARY TABLES</TT > permissions. </P ></TD ></TR ></TABLE ></DIV ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="AEN749" ></A >4.1.7. <TT CLASS="filename" >checksetup.pl</TT ></H2 ><P >Next, run the magic checksetup.pl script. (Many thanks to <A HREF="mailto:holgerschurig@nikocity.de" TARGET="_top" >Holger Schurig</A > for writing this script!) This script is designed to make sure your perl modules are the correct version and your MySQL database and other configuration options are consistent with the Bugzilla CGI files. It will make sure Bugzilla files and directories have reasonable permissions, set up the <TT CLASS="filename" >data</TT > directory, and create all the MySQL tables. </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="screen" > <TT CLASS="prompt" >bash#</TT > ./checksetup.pl </PRE ></FONT ></TD ></TR ></TABLE ><P > The first time you run it, it will create a file called <TT CLASS="filename" >localconfig</TT >.</P ><P >This file contains a variety of settings you may need to tweak including how Bugzilla should connect to the MySQL database.</P ><P >The connection settings include: <P ></P ><OL TYPE="1" ><LI ><P >server's host: just use <SPAN CLASS="QUOTE" >"localhost"</SPAN > if the MySQL server is local</P ></LI ><LI ><P >database name: <SPAN CLASS="QUOTE" >"bugs_db"</SPAN > if you're following these directions</P ></LI ><LI ><P >MySQL username: <SPAN CLASS="QUOTE" >"bugs_user"</SPAN > if you're following these directions</P ></LI ><LI ><P >Password for the <SPAN CLASS="QUOTE" >"bugs_user"</SPAN > MySQL account; (<SPAN CLASS="QUOTE" >"bugs_password"</SPAN > above)</P ></LI ></OL > </P ><P >Once you are happy with the settings, <TT CLASS="filename" >su</TT > to the user your web server runs as, and re-run <TT CLASS="filename" >checksetup.pl</TT >. (Note: on some security-conscious systems, you may need to change the login shell for the webserver account before you can do this.) On this second run, it will create the database and an administrator account for which you will be prompted to provide information.</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 >The checksetup.pl script is designed so that you can run it at any time without causing harm. You should run it after any upgrade to Bugzilla.</P ></TD ></TR ></TABLE ></DIV ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="AEN780" ></A >4.1.8. Configuring Bugzilla</H2 ><P > You should run through the parameters on the Edit Parameters page (link in the footer) and set them all to appropriate values. They key parameters are documented in <A HREF="parameters.html" >Section 5.1</A >. </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="installation.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="extraconfig.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Installation</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="installation.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Optional Additional Configuration</TD ></TR ></TABLE ></DIV ></BODY ></HTML >