Update Bugzilla Guide up to the installation of web server

hinted-selects
Vitaliy Filippov 2014-11-08 02:37:51 +03:00
parent b7da291986
commit 0feb77122f
2 changed files with 295 additions and 411 deletions

View File

@ -1,4 +1,4 @@
= The Bugzilla Guide - 3.6.4 Release
= The Bugzilla4Intranet Guide - (UNRELEASED)
[[about]]
== About This Guide
@ -6,8 +6,8 @@
[[copyright]]
=== Copyright Information
This document is copyright (c) 2000-2011 by the various
Bugzilla contributors who wrote it.
This document is copyright (c) 2000-2014 by the various
Bugzilla and Bugzilla4Intranet contributors who wrote it.
[quote]
____
@ -53,18 +53,12 @@ your security needs are met.
[[newversions]]
=== New Versions
This is the 3.6.4 version of The Bugzilla Guide. It is so named
to match the current version of Bugzilla.
This is the (UNRELEASED) version of The Bugzilla4Intranet Guide. It is so named
to match the current version of Bugzilla4Intranet.
The latest version of this guide can always be found at link:$$http://www.bugzilla.org/docs/$$[]. However, you should read
the version which came with the Bugzilla release you are using.
In addition, there are Bugzilla template localization projects in
link:$$http://www.bugzilla.org/download/#localizations$$[several languages].
They may have translated documentation available. If you would like to
volunteer to translate the Guide into additional languages, please visit the
link:$$https://wiki.mozilla.org/Bugzilla:L10n$$[Bugzilla L10n team]
page.
The latest version of this guide can always be found at
http://github.com/vitalif/bugzilla4intranet/tree/beta/docs/en/asciidoc/Bugzilla-Guide.asciidoc.
However, you should read the version which came with the Bugzilla4Intranet release you are using.
[[credits]]
=== Credits
@ -111,7 +105,7 @@ Thanks also go to the following people for significant contributions to this doc
* Martin Wulffeld
Also, thanks are due to the members of the
link:$$news://news.mozilla.org/mozilla.support.bugzilla$$[ mozilla.support.bugzilla]
link:$$news://news.mozilla.org/mozilla.support.bugzilla$$[mozilla.support.bugzilla]
newsgroup (and its predecessor, netscape.public.mozilla.webtools).
Without your discussions, insight, suggestions, and patches,
this could never have happened.
@ -133,6 +127,27 @@ Environment variables:: VARIABLE
Code example
----
== About Bugzilla and Bugzilla4Intranet
Bugzilla is a free bug-tracking system that is developed by the Mozilla community.
While it's actively maintained, it contains a lot of legacy and ugly code, and some features
that are implemented in a very strange and non-intuitive manner.
Bugzilla4Intranet is a highly improved fork of Bugzilla version 3.6.4, which was started
just as a customised Bugzilla version used internally in link:http://custis.ru/[CUSTIS]
company. CUSTIS is a Russian company that develops custom-built large-scale information systems
for banking and trade applications.
The amount of changes has quickly become so great and so "fundamental" that starting with 3.6.4,
the idea of merging with the upstream was rejected and that's when Bugzilla4Intranet
became a separate project.
The ideal goal of Bugzilla4Intranet is being Fast and Customisable. Ideally, no behaviour should
be hardcoded, no modification of code or templates should be required for customisation or localisation.
In this guide, both 'Bugzilla' and 'Bugzilla4Intranet' terms usually refer to Bugzilla4Intranet.
If something only applies to the 'original Bugzilla', it is stated separately.
[[installing-bugzilla]]
== Installing Bugzilla
@ -145,16 +160,14 @@ 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.
The Bugzilla server software is usually installed on Linux or Solaris.
The Bugzilla server software is usually installed on GNU/Linux or *BSD system.
If you are installing on another OS, check <<os-specific,OS-Specific Installation Notes>>
before you start your installation to see if there are any special
instructions.
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.
Bugzilla machine. It is also possible to install and run Bugzilla
without administrative access, although it is usually harder.
[WARNING]
The installation process may make your machine insecure for
@ -166,10 +179,10 @@ before installing Bugzilla (and at regular intervals thereafter :-).
In outline, the installation proceeds as follows:
<<install-perl,Install Perl>>
<<install-perl5,Install Perl 5>>
(5.8.1 or above)
<<install-database,Install a Database Engine>>
<<install-database,Install a Database Engine>> (and optionally <<install-sphinx,Sphinx Search>>)
<<install-webserver,Install a Webserver>>
@ -182,28 +195,34 @@ In outline, the installation proceeds as follows:
Configure all of the above.
[[install-perl]]
==== Perl
[[install-perl5]]
==== Perl 5
Installed Version Test:
----
perl -v
----
Any machine that doesn't have Perl on it is a sad machine indeed.
Any machine that doesn't have Perl 5 on it is a sad machine indeed.
If you don't have it and your OS doesn't provide official packages,
visit link:$$http://www.perl.org$$[].
Although Bugzilla runs with Perl 5.8.1,
visit http://www.perl.org. Although Bugzilla should run with Perl 5.8.1,
it's a good idea to be using the latest stable version.
NOTE: Although Windows is not a recommended platform itself,
we recommend to use link:http://strawberryperl.com/[Strawberry Perl] under it.
Strawberry Perl contains a working GCC compiler toolchain and a package manager
that allows to install Perl modules containing native code easily.
[[install-database]]
==== Database Engine
Bugzilla supports MySQL, PostgreSQL and Oracle as database servers.
Bugzilla supports MySQL/MariaDB, PostgreSQL and Oracle as database servers,
or SQLite as an embedded SQL database for very small installations.
You only require one of these systems to make use of Bugzilla.
[[install-mysql]]
===== MySQL
===== MySQL or MariaDB
Installed Version Test:
----
@ -211,15 +230,19 @@ mysql -V
----
If you don't have it and your OS doesn't provide official packages,
visit link:$$http://www.mysql.com$$[]. You need MySQL version
4.1.2 or higher.
visit http://mariadb.org/ or http://www.mysql.com/.
Bugzilla is compatible with any MySQL/MariaDB version 4.1.2 or higher, but the best
is to use latest MariaDB versions, because it contains more advanced features out-of-the-box.
MariaDB is a community fork of MySQL started after MySQL company was acquired by Oracle,
and is fully compatible with original MySQL.
[NOTE]
Many of the binary versions of MySQL store their data files in _/var_.
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 _configure_.
Many of the binary versions of MySQL/MariaDB store their data files in _/var_.
On some systems, this is part of a smaller root partition,
and may not have room for your bug database. In this case just move
existing database files to some other place and change
data directory in your _my.cnf_ configuration file.
If you install from something other than a packaging/installation
system, such as .rpm (Redhat Package), .deb (Debian Package), .exe
@ -235,7 +258,7 @@ psql -V
----
If you don't have it and your OS doesn't provide official packages,
visit link:$$http://www.postgresql.org/$$[]. You need PostgreSQL
visit http://www.postgresql.org/. You need PostgreSQL
version 8.00.0000 or higher.
If you install from something other than a packaging/installation
@ -246,6 +269,13 @@ PostgreSQL server is started when the machine boots.
[[install-oracle]]
===== Oracle
WARNING: Oracle is not a recommended database for Bugzilla4Intranet.
It's a closed-source commercial product, it's more complex to administer and it
doesn't offer any real advantage over MySQL or PostgreSQL for Bugzilla.
There some MySQL-specific features in Bugzilla and most testing is done on
MySQL and PostgreSQL installations so while Oracle support should mostly work,
it may still be more buggy than MySQL or PostgreSQL.
Installed Version Test:
----
select * from v$version
@ -254,7 +284,7 @@ select * from v$version
(you first have to log in into your DB)
If you don't have it and your OS doesn't provide official packages,
visit link:$$http://www.oracle.com/$$[]. You need Oracle
visit http://www.oracle.com/. You need Oracle
version 10.02.0 or higher.
If you install from something other than a packaging/installation
@ -262,113 +292,187 @@ 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.
===== SQLite
Due to SQLite's link:$$http://sqlite.org/faq.html#q5$$[concurrency limitations]
we recommend SQLite only for small and development Bugzilla installations.
No special configuration is required to run Bugzilla on SQLite, besides
installing perl `DBD::SQLite` module. The database will be stored in _data/db/$db_name_,
where `$db_name` is the database name defined in _localconfig_.
[[install-sphinx]]
==== Sphinx Search
link:http://sphinxsearch.com[Sphinx Search] is an easy-to-use high-performance full-text
search server. It's faster (in some cases *much* faster) and gives better search quality
than the full-text search built into any of the databases Bugzilla may use (especially
MySQL).
Bugzilla4Intranet may use Sphinx for full-text searching. If you want to use it,
you must install Sphinx server (any version that supports SphinxQL, that is, at least 2.0.1).
Use official packages of your distribution or visit http://sphinxsearch.com/downloads/.
After installing Sphinx, you must enable SphinxQL protocol by adding 'listen'
directive to the 'searchd' section of your 'sphinx.conf' (usually located in
'/etc/sphinxsearch' on GNU/Linux), and configure the index for Bugzilla.
Example configuration is (also provided in 'data/sphinx.conf'):
----
index bugs
{
type = rt
path = /var/lib/sphinxsearch/data/bugs
rt_field = short_desc
rt_field = comments
rt_field = comments_private
docinfo = extern
enable_star = 1
charset_type = utf-8
charset_table = 0..9, A..Z->a..z, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
blend_chars = _, -, &, +, @, $
morphology = stem_enru
min_word_len = 2
}
searchd
{
...
listen = /var/run/sphinxsearch/searchd.sock:mysql41
...
}
----
After configuring Sphinx server set '$sphinx_*' variables in your 'localconfig'.
For the above case it should look like the following:
----
$sphinx_index = 'bugs';
$sphinx_host = '127.0.0.1';
$sphinx_port = 0;
$sphinx_sock = '/var/run/sphinxsearch/searchd.sock';
----
.Installing Sphinx from source
To install Sphinx from source, run the following commands:
----
tar -zxf sphinx-<YOUR_VERSION>.tar.gz
cd sphinx-<YOUR_VERSION>
./configure --prefix=/usr --sysconfdir=/etc/sphinxsearch --localstatedir=/var --datarootdir=/var/lib/sphinxsearch --enable-id64
make clean
make -j4
sudo make install
----
[[install-webserver]]
==== Web Server
Installed Version Test: view the default welcome page at
http://&lt;your-machine&gt;/
You have several options here:
You have freedom of choice here, pretty much any web server that
is capable of running CGI
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 link:$$https://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla&amp;component=Documentation$$[Bugzilla Documentation].
* *Recommended option:* use the pure-perl standalone HTTP server 'HTTPServerSimple.pl'
supplied with Bugzilla4Intranet installed behind a fast reverse-proxy like link:http://nginx.org[nginx]
or link:http://lighttpd.net/[lighttpd].
If you don't have Apache and your OS doesn't provide official packages,
visit link:$$http://httpd.apache.org/$$[].
* *The simplest way:* Use just 'HTTPServerSimple.pl' without any reverse proxy. It is capable of serving static files,
so this setup also works, but it may be less secure to have it point directly to the public network
(because it's of course less tested than nginx or lighttpd). Also note that the standalone server
doesn't support keepalive so the client will open much more connections which also affects page load speed.
* Run Bugzilla inside link:http://httpd.apache.org/[Apache] with link:http://perl.apache.org/[mod_perl].
This setup should result roughly the same performance, but usually consumes more memory than the
standalone server, especially if you have several virtual hosts / web applications in a single Apache instance.
Sometimes mod_perl usage also results is very strange bugs that don't show up in the bare Perl.
* *The worst:* Run Bugzilla using CGI with any webserver capable of running CGI scripts.
This is the worst option because CGI means Perl must re-initialise all Bugzilla modules on every request
which usually leads to poor performance.
[[install-bzfiles]]
==== Bugzilla
link:$$http://www.bugzilla.org/download/$$[Download a Bugzilla tarball]
(or check it out from CVS) and place
it in a suitable directory, accessible by the default web server user
(probably "apache" or "www").
Good locations are either directly in the web server's document directories or
in _/usr/local_ with a symbolic link to the web server's
document directories or an alias in the web server's configuration.
link:$$http://wiki.4intra.net/Bugzilla4Intranet/Download$$[Download a Bugzilla tarball]
(or check it out from link:https://github.com/vitalif/bugzilla-4intranet/[Github repository])
and place it in a suitable directory, accessible by the default web server user
(in case of Apache, it's usually "httpd", "apache" or "www-data").
[CAUTION]
====
The default Bugzilla distribution is NOT designed to be placed
in a _cgi-bin_ directory. This
includes any directory which is configured using the
in a _cgi-bin_ directory. This includes any directory which is configured using the
ScriptAlias directive of Apache.
====
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
_checksetup.pl_
script, which locks down your installation.
It's not needed (and even _not recommended_) to make Bugzilla files to be writable by your web-server user.
Although they _must_ be readable by it and you may even leave them world-readable - that's no problem
because _checksetup.pl_ will take care of setting correct permissions to sensitive files and to files
that Bugzilla needs to write (mainly _data/_ directory). But you should run _checksetup.pl_ from under
the user that is a member of the web-server group (or a superuser) so it could change group on these files.
[[install-perlmodules]]
==== Perl Modules
Bugzilla's installation process is based
on a script called _checksetup.pl_.
The first thing it checks is whether you have appropriate
versions of all the required
Bugzilla's installation process is based on a script called _checksetup.pl_.
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 <<configuration,Configuration>>.
At this point, you need to _su_ to root. You should
remain as root until the end of the install. To check you have the
required modules, run:
To check you have the required modules, run:
----
bash# ./checksetup.pl --check-modules
----
_checksetup.pl_ 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.
_checksetup.pl_ 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.
The preferred way to install missing Perl modules is to use the package
manager provided by your operating system (e.g "rpm" or
"yum" on Linux distros, or "ppm" on Windows
if using ActivePerl, see <<win32-perl-modules,Perl Modules on Win32>>).
If some Perl modules are still missing or are too old, then we recommend
using the _install-module.pl_ script (doesn't work
with ActivePerl on Windows). If for some reason you really need to
install the Perl modules manually, see
<<install-perlmodules-manual,Manual Installation of Perl Modules>>. For instance, on Unix,
you invoke _install-module.pl_ as follows:
The best is to install missing Perl modules system-wise, but this requires root permissions
(_su_ or _sudo bash_ to root before proceeding).
----
bash# perl install-module.pl <modulename>
----
You may install modules using the following methods:
. Using the official packages of your operating system or distribution.
It's *almost certain* that not all modules are available as the official packages,
at least on GNU/Linux distributions, but you may install the ones that are available
with the system package manager. Package manager is usually 'yum' or 'zypper' in
RPM-based GNU/Linux distros, 'apt-get' in Debian GNU/Linux-based systems, and 'ppm'
(Perl Package Manager) in Windows link:http://www.activestate.com/activeperl[ActivePerl]
and link:http://strawberryperl.com/[Strawberry Perl] distributions. Package names vary:
* For example, in Debian ImageMagick is 'perlmagick' and most other packages
have names similar to 'libxxx-yyyperl' for 'Xxx::Yyy' perl module.
* In RPM-based distros, packages are usually named 'perl-Xxx-Yyy'.
* In PPM, they're usually just 'Xxx-Yyy'.
. Using link:http://cpan.org/[CPAN] shell. In fact, you may install all required modules using CPAN.
To install modules using CPAN shell, run `cpan Module1 Module2...` or `perl -MCPAN -eshell Module1 Module2...`
command under the root user, where 'Module1', 'Module2' and etc are the required
modules.
+
NOTE: Some of modules (database drivers, GD, ImageMagick and etc) contain native code (C/C++)
and require a working compiler toolchain, libraries and their development ('-dev' or '-devel') packages to install.
. Using the _install-module.pl_ script. In this case just run `perl install-module.pl <modulename>`
from the Bugzilla installation directory. It basically invokes CPAN, but it's capable
of installing modules to local Bugzilla directory instead of installing them system-wise.
. Manually. In this case see <<install-perlmodules-manual,Manual Installation of Perl Modules>>.
[TIP]
====
Many people complain that Perl modules will not install for
them. Most times, the error messages complain that they are missing a
file in
"@INC".
file in "@INC".
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
_are_
permissions issues; if you _are_
the local UNIX sysadmin, please consult the newsgroup/mailing list
for further assistance or hire someone to help you out.
====
[NOTE]
====
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 _&lt;packagename&gt;-devel_.
====
Here is a complete list of modules and their minimum versions.
Some modules have special installation notes, which follow.
@ -417,20 +521,9 @@ 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.
If a simple mail sent with the command-line 'mail' program
If a simple mail sent with the command-line 'mail' or 'sendmail -t' program
succeeds, then Bugzilla should also be fine.
[[using-mod_perl-with-bugzilla]]
==== Installing Bugzilla on mod_perl
It is now possible to run the Bugzilla software under +$$mod_perl$$+ on
Apache. +$$mod_perl$$+ has some additional requirements to that of running
Bugzilla under +$$mod_cgi$$+ (the standard and previous way).
Bugzilla requires +$$mod_perl$$+ to be installed, which can be
obtained from link:$$http://perl.apache.org$$[] - Bugzilla requires
version 1.999022 (AKA 2.0.0-RC5) to be installed.
[[configuration]]
=== Configuration
@ -455,45 +548,29 @@ bash ./checksetup.pl
This time, _checksetup.pl_ should tell you that all
the correct modules are installed and will display a message about, and
write out a file called, _localconfig_. This file
write out a file called, _localconfig_. This file
contains the default settings for a number of Bugzilla parameters.
Load this file in your editor. The only two values you
_need_ to change are $db_driver and $db_pass,
respectively the type of the database and the password for
the user you will create for your database. Pick a strong
password (for simplicity, it should not contain single quote
characters) and put it here. $db_driver can be either 'mysql',
'Pg' or 'oracle'.
Load this file in your editor. The only values you _need_ to change are
database connection details:
[NOTE]
====
In Oracle, +$$$db_name$$+ should actually be
'$db_driver' :: Name of the database driver you want to use. May be 'mysql', 'pg', 'oracle' or 'sqlite'.
'$db_host' :: Hostname or IP address on which the database server runs, usually 'localhost' (ignored by SQLite).
'$db_user' and '$db_password' :: Database user and password to connect as (ignored by SQLite).
Pick a username and a strong password; you will create this user during the next installation step.
'$db_name' :: Name of the database Bugzilla should use (database filename in case of SQLite).
In case of MySQL/PostgreSQL you will create this database during the next installation step.
+
NOTE: In Oracle, '$db_name' should actually be
the SID name of your database (e.g. "XE" if you are using Oracle XE).
====
You may need to change the value of
_webservergroup_ if your web server does not
run in the "apache" group. On Debian, for example, Apache runs in
the "www-data" group. If you are going to run Bugzilla on a
machine where you do not have root access (such as on a shared web
hosting account), you will need to leave
_webservergroup_ empty, ignoring the warnings
that _checksetup.pl_ will subsequently display
every time it is run.
You may need to change the value of '$webservergroup' if your web server does not
run in the "apache" group. On Debian, for example, Apache runs in the "www-data" group.
If you are going to run Bugzilla on a machine where you do not have root or web-server
group access, you will need to leave _webservergroup_ empty, ignoring the warnings that
_checksetup.pl_ will subsequently display every time it is run.
[CAUTION]
====
If you are using suexec, you should use your own primary group
for _webservergroup_ rather than leaving it
empty, and see the additional directions in the suexec section
<<suexec,SuEXEC>>.
====
The other options in the _localconfig_ file
are documented by their accompanying comments. If you have a slightly
non-standard database setup, you may wish to change one or more of
the other "$db_*" parameters.
The other options in the _localconfig_ file are documented by their accompanying comments.
[[database-engine]]
==== Database Server
@ -502,44 +579,44 @@ This section deals with configuring your database server for use
with Bugzilla. Currently, <<mysql,MySQL>>, <<postgresql,PostgreSQL>>
and <<oracle,Oracle>> are available.
SQLite does not require additional configuration.
[[database-schema]]
===== Bugzilla Database Schema
The Bugzilla database schema is available at
link:$$http://www.ravenbrook.com/project/p4dti/tool/cgi/bugzilla-schema/$$[Ravenbrook].
This very valuable tool can generate a written description of
the Bugzilla database schema for any version of Bugzilla. It
can also generate a diff between two versions to help someone
see what has changed.
The Bugzilla database schema is described in 'Bugzilla/DB/Schema.pm' source file.
There is the link:$$http://www.ravenbrook.com/project/p4dti/tool/cgi/bugzilla-schema/$$[Ravenbrook]
utility which can generate a written description of the schema, but it's now limited to
Bugzilla 3.4.2 and surely it doesn't know anything about Bugzilla4Intranet. Nevertheless,
its source is available in link:https://github.com/Ravenbrook/bugzilla-schema[this GitHub repository],
so you may try to use it by hand on a Bugzilla4Intranet installation.
[[mysql]]
===== MySQL
[CAUTION]
====
MySQL's default configuration is insecure.
MySQL's default configuration may be insecure.
We highly recommend to run _$$mysql_secure_installation$$_
on Linux or the MySQL installer on Windows, and follow the instructions.
Important points to note are:
. Be sure that the root account has a secure password set.
. Do not create an anonymous account, and if it exists, say "yes"
to remove it.
. If your web server and MySQL server are on the same machine,
you should disable the network access.
. Do not create an anonymous account, and if it exists, say "yes" to remove it.
. If your web server and MySQL server are on the same machine, you should disable the network access.
====
[[mysql-max-allowed-packet]]
.Allow large attachments and many comments
.Allow many comments
By default, MySQL will only allow you to insert things
into the database that are smaller than 1MB. Attachments
may be larger than this. Also, Bugzilla combines all comments
on a single bug into one field for full-text searching, and the
combination of all comments on a single bug could in some cases
be larger than 1MB.
By default, MySQL will only allow you to insert things into the database that are smaller than 1MB.
But in the case you use MySQL full-text search, Bugzilla combines all comments
on a single bug into one field, and the combination of all comments on a single
bug could in some cases be larger than 1MB.
Original Bugzilla also used to store attachments in the DB, but Bugzilla4Intranet
doesn't do it by default, so max_allowed_packet doesn't affect them.
To change MySQL's default, you need to edit your MySQL
configuration file, which is usually _/etc/my.cnf_
@ -577,57 +654,22 @@ link:$$http://www.mysql.com/doc/en/Fulltext_Fine-tuning.html$$[].
[[install-setupdatabase-adduser]]
.Add a user to MySQL
You need to add a new MySQL user for Bugzilla to use.
(It's not safe to have Bugzilla use the MySQL root account.)
The following instructions assume the defaults in
__localconfig__; if you changed those,
you need to modify the SQL command appropriately. You will
need the _++$db_pass++_ password you
set in _localconfig_ in
<<localconfig,localconfig>>.
You need to add a new MySQL user for Bugzilla to use
(It's not safe to have Bugzilla use the MySQL root account).
You will need the '$db_*' values you set in _localconfig_ in <<localconfig,localconfig>>.
We use an SQL _GRANT_ command to create
a "bugs" user. This also restricts the
"bugs"user to operations within a database
called "bugs", and only allows the account
to connect from "localhost". Modify it to
reflect your setup if you will be connecting from another
machine or as a different user.
We use an SQL _GRANT_ command to create the '$db_user' user. This also restricts him
to operations within a database called '$db_name', and only allows the account
to connect from '$db_host' (usually 'localhost'). Modify it to reflect your setup if
you will be connecting from another machine or as a different user.
Run the _mysql_ command-line client and enter:
----
mysql> GRANT ALL PRIVILEGES ON bugs.* TO bugs@localhost IDENTIFIED BY '$db_pass';
mysql> GRANT ALL PRIVILEGES ON $db_name.* TO '$db_user'@'$db_host' IDENTIFIED BY '$db_pass';
mysql> FLUSH PRIVILEGES;
----
.Permit attachments table to grow beyond 4GB
By default, MySQL will limit the size of a table to 4GB.
This limit is present even if the underlying filesystem
has no such limit. To set a higher limit, follow these
instructions.
After you have completed the rest of the installation (or at least the
database setup parts), you should run the _MySQL_
command-line client and enter the following, replacing +$$$bugs_db$$+
with your Bugzilla database name (__bugs__ by default):
----
mysql> use $bugs_db
mysql> ALTER TABLE attachments AVG_ROW_LENGTH=1000000, MAX_ROWS=20000;
----
The above command will change the limit to 20GB. Mysql will have
to make a temporary copy of your entire table to do this. Ideally,
you should do this when your attachments table is still small.
[NOTE]
====
This does not affect Big Files, attachments that are stored directly
on disk instead of in the database.
====
[[postgresql]]
===== PostgreSQL
@ -635,11 +677,8 @@ on disk instead of in the database.
You need to add a new user to PostgreSQL for the Bugzilla
application to use when accessing the database. The following instructions
assume the defaults in __localconfig__; if you
changed those, you need to modify the commands appropriately. You will
need the _++$db_pass++_ password you
set in _localconfig_ in
<<localconfig,localconfig>>.
assume the defaults in __localconfig__; if you changed those, you need to modify the commands appropriately. You will
need the '$db_pass' password you set in _localconfig_ in <<localconfig,localconfig>>.
On most systems, to create the user in PostgreSQL, you will need to
login as the root user, and then
@ -650,17 +689,17 @@ bash# su - postgres
As the postgres user, you then need to create a new user:
bash$ createuser -U postgres -dRSP bugs
----
bash$ createuser -U postgres -dRSP $db_user
----
When asked for a password, provide the password which will be set as
_++$db_pass++_ in _localconfig_.
The created user will not be a superuser (-S) and will not be able to create
new users (-R). He will only have the ability to create databases (-d).
'$db_pass' in _localconfig_. The created user will not be a superuser (-S)
and will not be able to create new users (-R). He will only have the
ability to create databases (-d).
[NOTE]
====
If your are running PostgreSQL 8.0, you must replace -dRSP by -dAP.
====
.Configure PostgreSQL
@ -669,20 +708,16 @@ usually located in _/var/lib/pgsql/data/_. In this file,
you will need to add a new line to it as follows:
----
host all bugs 127.0.0.1 255.255.255.255 md5
host all $db_user 127.0.0.1 255.255.255.255 md5
----
This means that for TCP/IP (host) connections, allow connections from
'127.0.0.1' to 'all' databases on this server from the 'bugs' user, and use
'127.0.0.1' to 'all' databases on this server from the '$db_user' user, and use
password authentication (md5) for that user.
Now, you will need to restart PostgreSQL, but you will need to fully
stop and start the server rather than just restarting due to the possibility
of a change to _postgresql.conf_. After the server has
restarted, you will need to edit _localconfig_, finding
the +$$$db_driver$$+ variable and setting it to
+Pg+ and changing the password in +$$$db_pass$$+
to the one you picked previously, while setting up the account.
of a change to _postgresql.conf_.
[[oracle]]
===== Oracle
@ -699,19 +734,16 @@ AUTOEXTEND ON NEXT 30M MAXSIZE UNLIMITED
----
Here, the name of the tablespace is 'bugs', but you can
choose another name. _++$path_to_datafile++_ is
choose another name. '$path_to_datafile' is
the path to the file containing your database, for instance
_/u01/oradata/bugzilla.dbf_.
_/u01/app/oracle/oradata/XE/bugzilla.dbf_.
The initial size of the database file is set in this example to 500 Mb,
with an increment of 30 Mb everytime we reach the size limit of the file.
.Add a User to Oracle
The user name and password must match what you set in
_localconfig_ (++$$$db_user$$++
and ++$$$db_pass$$++, respectively). Here, we assume that
the user name is 'bugs' and the tablespace name is the same
as above.
The user name and password must match what you set in _localconfig_ ('$db_user' and '$db_pass', respectively).
Here, we assume that the user name is 'bugs' and the tablespace name is the same as above.
----
CREATE USER bugs
@ -729,8 +761,8 @@ GRANT EXECUTE ON CTXSYS.CTX_DDL TO bugs;
.Configure the Web Server
If you use Apache, append these lines to _httpd.conf_
to set ORACLE_HOME and LD_LIBRARY_PATH. For instance:
You should add ORACLE_HOME and LD_LIBRARY_PATH to your web-server environment
variables. For instance, for Apache, add the following into 'httpd.conf':
----
SetEnv ORACLE_HOME /u01/app/oracle/product/10.2.0/
@ -761,17 +793,15 @@ _checksetup.pl_ at any time if you wish.
[[http]]
==== Web server
Configure your web server according to the instructions in the
appropriate section. (If it makes a difference in your choice,
the Bugzilla Team recommends Apache.) To check whether your web server
is correctly configured, try to access _testagent.cgi_
Configure your web server according to the instructions in the appropriate section.
To check whether your web server is correctly configured, try to access _testagent.cgi_
from your web server. If "OK" is displayed, then your configuration
is successful. Regardless of which web server
you are using, however, ensure that sensitive information is
not remotely available by properly applying the access controls in
<<security-webserver-access,Disabling Remote Access to Bugzilla Configuration Files>>.
You can run _testserver.pl_ to check if your web server serves
Bugzilla files as expected.
NOTE: You can run _testserver.pl_ to check if your web server serves Bugzilla files as expected.
[[http-apache]]
===== Bugzilla using Apache
@ -3200,7 +3230,7 @@ group controls accessed on this page.
. Global configuration parameters. Bugzilla has several parameters
that control the overall default group behavior and restriction
levels. For more information on the parameters that control
group behavior globally, see <<param-group-security,Group Security>>.
group behavior globally, see <<param-groupsecurity,Group Security>>.
. Product association with groups. Most of the functionality of groups
and group security is controlled at the product level. Some aspects
@ -5649,16 +5679,27 @@ from the command line (or from a cron job) with no parameters.
[appendix]
== Manual Installation of Perl Modules
[[modules-manual-instructions]]
=== Instructions
If you need to install Perl modules manually, here's how it's done.
Download the module using the link given in the next section, and then
apply this magic incantation, as root:
Find the module on http://cpan.org/ site, download the _.tar.gz_ package using your browser,
and then apply this magic incantation, as root:
----
bash# tar -xzvf <module>.tar.gz
bash# cd <module>
----
Then, if a Build.PL file exists in the module directory, run:
----
bash# perl Build.PL
bash# perl Build
bash# perl Build test
bash# perl Build install
----
Else run:
----
bash# perl Makefile.PL
bash# make
bash# make test
@ -5668,168 +5709,10 @@ bash# make install
[NOTE]
====
In order to compile source code under Windows you will need to obtain
a 'make' utility. The _nmake_ utility provided with
Microsoft Visual C++ may be used. As an alternative, there is a
utility called _dmake_ available from CPAN which is
written entirely in Perl.
As described in <<modules-manual-download,Download Locations>>, however, most
packages already exist and are available from ActiveState or theory58S.
We highly recommend that you install them using the ppm GUI available with
ActiveState and to add the theory58S repository to your list of repositories.
a working compiler toolchain including a 'make' utility;
link:http://strawberryperl.com/[Strawberry Perl] contains one.
====
[[modules-manual-download]]
=== Download Locations
[NOTE]
====
Running Bugzilla on Windows requires the use of ActiveState
Perl 5.8.1 or higher. Many modules already exist in the core
distribution of ActiveState Perl. Additional modules can be downloaded
from link:$$http://theoryx5.uwinnipeg.ca/ppms/$$[] if you use
Perl 5.8.x or from link:$$http://cpan.uwinnipeg.ca/PPMPackages/10xx/$$[]
if you use Perl 5.10.x.
====
CGI:
....
CPAN Download Page: link:$$http://search.cpan.org/dist/CGI.pm/$$[]
Documentation: link:$$http://perldoc.perl.org/CGI.html$$[]
....
Data-Dumper:
....
CPAN Download Page: link:$$http://search.cpan.org/dist/Data-Dumper/$$[]
Documentation: link:$$http://search.cpan.org/dist/Data-Dumper/Dumper.pm$$[]
....
Date::Format (part of TimeDate):
....
CPAN Download Page: link:$$http://search.cpan.org/dist/TimeDate/$$[]
Documentation: link:$$http://search.cpan.org/dist/TimeDate/lib/Date/Format.pm$$[]
....
DBI:
....
CPAN Download Page: link:$$http://search.cpan.org/dist/DBI/$$[]
Documentation: link:$$http://dbi.perl.org/docs/$$[]
....
DBD::mysql:
....
CPAN Download Page: link:$$http://search.cpan.org/dist/DBD-mysql/$$[]
Documentation: link:$$http://search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pm$$[]
....
DBD::Pg:
....
CPAN Download Page: link:$$http://search.cpan.org/dist/DBD-Pg/$$[]
Documentation: link:$$http://search.cpan.org/dist/DBD-Pg/Pg.pm$$[]
....
Template-Toolkit:
....
CPAN Download Page: link:$$http://search.cpan.org/dist/Template-Toolkit/$$[]
Documentation: link:$$http://www.template-toolkit.org/docs.html$$[]
....
GD:
....
CPAN Download Page: link:$$http://search.cpan.org/dist/GD/$$[]
Documentation: link:$$http://search.cpan.org/dist/GD/GD.pm$$[]
....
Template::Plugin::GD:
....
CPAN Download Page: link:$$http://search.cpan.org/dist/Template-GD/$$[]
Documentation: link:$$http://www.template-toolkit.org/docs/aqua/Modules/index.html$$[]
....
MIME::Parser (part of MIME-tools):
....
CPAN Download Page: link:$$http://search.cpan.org/dist/MIME-tools/$$[]
Documentation: link:$$http://search.cpan.org/dist/MIME-tools/lib/MIME/Parser.pm$$[]
....
[[modules-manual-optional]]
=== Optional Modules
Chart::Lines:
....
CPAN Download Page: link:$$http://search.cpan.org/dist/Chart/$$[]
Documentation: link:$$http://search.cpan.org/dist/Chart/Chart.pod$$[]
....
GD::Graph:
....
CPAN Download Page: link:$$http://search.cpan.org/dist/GDGraph/$$[]
Documentation: link:$$http://search.cpan.org/dist/GDGraph/Graph.pm$$[]
....
GD::Text::Align (part of GD::Text::Util):
....
CPAN Download Page: link:$$http://search.cpan.org/dist/GDTextUtil/$$[]
Documentation: link:$$http://search.cpan.org/dist/GDTextUtil/Text/Align.pm$$[]
....
XML::Twig:
....
CPAN Download Page: link:$$http://search.cpan.org/dist/XML-Twig/$$[]
Documentation: link:$$http://standards.ieee.org/resources/spasystem/twig/twig_stable.html$$[]
....
PatchReader:
....
CPAN Download Page: link:$$http://search.cpan.org/author/JKEISER/PatchReader/$$[]
Documentation: link:$$http://www.johnkeiser.com/mozilla/Patch_Viewer.html$$[]
....
[[gfdl]]
[appendix]
== GNU Free Documentation License

View File

@ -84,6 +84,7 @@ my $param_descs = {};
my $param_doc = '';
for my $p (sort { $a->{sortkey} <=> $b->{sortkey} || $a->{name} cmp $b->{name} } values %$par)
{
next if !-f '../template/en/default/admin/params/'.$p->{name}.'.html.tmpl';
$tplctx->process('template/en/default/admin/params/'.$p->{name}.'.html.tmpl', {});
$p->{title} = $tplctx->stash->get('title');
$p->{info} = $tplctx->stash->get('info');