aboutsummaryrefslogtreecommitdiffstats
path: root/docs/en/rst/installation.rst
diff options
context:
space:
mode:
authorGervase Markham <gerv@gerv.net>2014-12-03 15:45:46 -0800
committerGervase Markham <gerv@gerv.net>2014-12-03 15:45:46 -0800
commit06033dc96827c74a4203d4028cddea13de9b709e (patch)
treed35bbf8a8ad98b0419171e4f95108393d76fd17a /docs/en/rst/installation.rst
parent8ebd893eb2be496c6afea66548073267b8f405c8 (diff)
downloadbugs-06033dc96827c74a4203d4028cddea13de9b709e.tar
bugs-06033dc96827c74a4203d4028cddea13de9b709e.tar.gz
bugs-06033dc96827c74a4203d4028cddea13de9b709e.tar.bz2
bugs-06033dc96827c74a4203d4028cddea13de9b709e.tar.xz
bugs-06033dc96827c74a4203d4028cddea13de9b709e.zip
Bug 1067416 - reorganize and update Bugzilla docs.
Diffstat (limited to 'docs/en/rst/installation.rst')
-rw-r--r--docs/en/rst/installation.rst1813
1 files changed, 0 insertions, 1813 deletions
diff --git a/docs/en/rst/installation.rst b/docs/en/rst/installation.rst
deleted file mode 100644
index 5c0aa2de5..000000000
--- a/docs/en/rst/installation.rst
+++ /dev/null
@@ -1,1813 +0,0 @@
-.. highlight:: console
-
-.. _installing-bugzilla:
-
-===================
-Installing Bugzilla
-===================
-
-.. _installation:
-
-Installation
-############
-
-.. note:: If you just want to *use* 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.
-
-The Bugzilla server software is usually installed on Linux or
-Solaris.
-If you are installing on another OS, check :ref:`os-specific`
-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.
-
-.. warning:: The installation process may make your machine insecure for
- short periods of time. Make sure there is a firewall between you
- and the Internet.
-
-You are strongly recommended to make a backup of your system
-before installing Bugzilla (and at regular intervals thereafter :-).
-
-In outline, the installation proceeds as follows:
-
-#. :ref:`Install Perl <install-perl>`
- (|min-perl-ver| or above)
-
-#. :ref:`Install a Database Engine <install-database>`
-
-#. :ref:`Install a Webserver <install-webserver>`
-
-#. :ref:`Install Bugzilla <install-bzfiles>`
-
-#. :ref:`Install Perl modules <install-perlmodules>`
-
-#. :ref:`Install a Mail Transfer Agent <install-MTA>`
- (Sendmail 8.7 or above, or an MTA that is Sendmail-compatible with at least this version)
-
-#. Configure all of the above.
-
-.. _install-perl:
-
-Perl
-====
-
-Installed Version Test:
-::
-
- $ perl -v
-
-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 `<http://www.perl.org>`_.
-Although Bugzilla runs with Perl |min-perl-ver|,
-it's a good idea to be using the latest stable version.
-
-.. _install-database:
-
-Database Engine
-===============
-
-Bugzilla supports MySQL, PostgreSQL and Oracle as database servers.
-You only require one of these systems to make use of Bugzilla.
-
-.. _install-mysql:
-
-MySQL
------
-
-Installed Version Test:
-::
-
- $ mysql -V
-
-If you don't have it and your OS doesn't provide official packages,
-visit `<http://www.mysql.com>`_. You need MySQL version
-5.0.15 or higher.
-
-.. note:: Many of the binary
- versions of MySQL store their data files in :file:`/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 :file:`configure`.
-
-If you install from something other than a packaging/installation
-system, such as .rpm (RPM Package Manager), .deb (Debian Package), .exe
-(Windows Executable), or .msi (Windows Installer), make sure the MySQL
-server is started when the machine boots.
-
-.. _install-pg:
-
-PostgreSQL
-----------
-
-Installed Version Test:
-::
-
- $ psql -V
-
-If you don't have it and your OS doesn't provide official packages,
-visit `<http://www.postgresql.org/>`_. You need PostgreSQL
-version 8.03.0000 or higher.
-
-If you install from something other than a packaging/installation
-system, such as .rpm (RPM Package Manager), .deb (Debian Package), .exe
-(Windows Executable), or .msi (Windows Installer), make sure the
-PostgreSQL server is started when the machine boots.
-
-.. _install-oracle:
-
-Oracle
-------
-
-Installed Version Test:
-
-.. code-block:: sql
-
- 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 `<http://www.oracle.com/>`_. You need Oracle
-version 10.02.0 or higher.
-
-If you install from something other than a packaging/installation
-system, such as .rpm (RPM Package Manager), .deb (Debian Package), .exe
-(Windows Executable), or .msi (Windows Installer), make sure the
-Oracle server is started when the machine boots.
-
-.. _install-webserver:
-
-Web Server
-==========
-
-Installed Version Test: view the default welcome page at
-`http://<your-machine>/` .
-
-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
-`Bugzilla Documentation <http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla;component=Documentation>`_.
-
-If you don't have Apache and your OS doesn't provide official packages,
-visit `<http://httpd.apache.org/>`_.
-
-.. _install-bzfiles:
-
-Bugzilla
-========
-
-`Download a Bugzilla tarball <http://www.bugzilla.org/download/>`_
-(or `check it out from Bzr <https://wiki.mozilla.org/Bugzilla:Bzr>`_)
-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 :file:`/usr/local` with a symbolic link to the web server's
-document directories or an alias in the web server's configuration.
-
-.. warning:: The default Bugzilla distribution is NOT designed to be placed
- in a :file:`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
-:file:`checksetup.pl`
-script, which locks down your installation.
-
-.. _install-perlmodules:
-
-Perl Modules
-============
-
-Bugzilla's installation process is based
-on a script called :file:`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 :ref:`configuration`.
-
-At this point, you need to :file:`su` to root. You should
-remain as root until the end of the install. To check you have the
-required modules, run:
-
-::
-
- # ./checksetup.pl --check-modules
-
-:file:`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``, ``apt-get`` or
-``yum`` on Linux distros, or ``ppm`` on Windows
-if using ActivePerl, see :ref:`win32-perl-modules`).
-If some Perl modules are still missing or are too old, then we recommend
-using the :file:`install-module.pl` script (doesn't work
-with ActivePerl on Windows). For instance, on Unix,
-you invoke :file:`install-module.pl` as follows:
-
-::
-
- # perl install-module.pl <modulename>
-
-.. note:: 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``.
- 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*
- 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 :file:`<packagename>-devel`.
-
-If for some reason you really need to install the Perl modules manually, see
-:ref:`install-perlmodules-manual`.
-
-.. _install-MTA:
-
-Mail Transfer Agent (MTA)
-=========================
-
-Bugzilla is dependent on the availability of an e-mail system for its
-user authentication and for other tasks.
-
-.. note:: 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).
- For more information, see the ``mail_delivery_method`` parameter
- in :ref:`parameters`.
-
-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.
-
-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.
-
-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.
-
-If a simple mail sent with the command-line 'mail' 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 `<http://perl.apache.org>`_ - Bugzilla requires
-version 1.999022 (AKA 2.0.0-RC5) to be installed.
-
-.. _configuration:
-
-Configuration
-#############
-
-.. warning:: Poorly-configured MySQL and Bugzilla installations have
- given attackers full access to systems in the past. Please take the
- security parts of these guidelines seriously, even for Bugzilla
- machines hidden away behind your firewall. Be certain to
- read :ref:`security` for some important security tips.
-
-.. _localconfig:
-
-localconfig
-===========
-
-You should now run :file:`checksetup.pl` again, this time
-without the ``--check-modules`` switch.
-
-::
-
- # ./checksetup.pl
-
-This time, :file:`checksetup.pl` should tell you that all
-the correct modules are installed and will display a message about, and
-write out a file called, :file:`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', 'Oracle' or 'Sqlite'.
-
-.. 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 :file:`checksetup.pl` will subsequently display
-every time it is run.
-
-.. warning:: 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 :ref:`suexec`.
-
-The other options in the :file:`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.
-
-.. _database-engine:
-
-Database Server
-===============
-
-This section deals with configuring your database server for use
-with Bugzilla. Currently, MySQL (:ref:`mysql`),
-PostgreSQL (:ref:`postgresql`), Oracle (:ref:`oracle`)
-and SQLite (:ref:`sqlite`) are available.
-
-.. _database-schema:
-
-Bugzilla Database Schema
-------------------------
-
-The Bugzilla database schema is available at
-`Ravenbrook <http://www.ravenbrook.com/project/p4dti/tool/cgi/bugzilla-schema/>`_.
-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.
-
-.. _mysql:
-
-MySQL
------
-
-.. warning:: MySQL's default configuration is insecure.
- We highly recommend to run :file:`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.
-
-.. _mysql-max-allowed-packet:
-
-Allow large attachments and 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.
-
-To change MySQL's default, you need to edit your MySQL
-configuration file, which is usually :file:`/etc/my.cnf`
-on Linux. We recommend that you allow at least 4MB packets by
-adding the "max_allowed_packet" parameter to your MySQL
-configuration in the "\[mysqld]" section, like this:
-
-::
-
- [mysqld]
- # Allow packets up to 4MB
- max_allowed_packet=4M
-
-Allow small words in full-text indexes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-By default, words must be at least four characters in length
-in order to be indexed by MySQL's full-text indexes. This causes
-a lot of Bugzilla specific words to be missed, including "cc",
-"ftp" and "uri".
-
-MySQL can be configured to index those words by setting the
-ft_min_word_len param to the minimum size of the words to index.
-This can be done by modifying the :file:`/etc/my.cnf`
-according to the example below:
-
-::
-
- [mysqld]
- # Allow small words in full-text indexes
- ft_min_word_len=2
-
-Rebuilding the indexes can be done based on documentation found at
-`<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
-:file:`localconfig`; if you changed those,
-you need to modify the SQL command appropriately. You will
-need the $db_pass password you
-set in :file:`localconfig` in
-:ref:`localconfig`.
-
-We use an SQL :command:`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.
-
-Run the :file:`mysql` command-line client and enter:
-
-.. code-block:: sql
-
- GRANT SELECT, INSERT,
- UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,
- CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.*
- TO bugs@localhost IDENTIFIED BY '$db_pass';
-
- 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 :file:`MySQL`
-command-line client and enter the following, replacing ``$bugs_db``
-with your Bugzilla database name (*bugs* by default):
-
-.. code-block:: sql
-
- USE $bugs_db;
-
- 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
-----------
-
-Add a User to PostgreSQL
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-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 :file:`localconfig`; if you
-changed those, you need to modify the commands appropriately. You will
-need the $db_pass password you
-set in :file:`localconfig` in
-:ref:`localconfig`.
-
-On most systems, to create the user in PostgreSQL, you will need to
-login as the root user, and then
-
-::
-
- # su - postgres
-
-As the postgres user, you then need to create a new user:
-
-::
-
- $ createuser -U postgres -dRSP bugs
-
-When asked for a password, provide the password which will be set as
-$db_pass in :file:`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).
-
-Configure PostgreSQL
-~~~~~~~~~~~~~~~~~~~~
-
-Now, you will need to edit :file:`pg_hba.conf` which is
-usually located in :file:`/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``
-
-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
-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 :file:`postgresql.conf`. After the server has
-restarted, you will need to edit :file:`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.
-
-.. _oracle:
-
-Oracle
-------
-
-Create a New Tablespace
-~~~~~~~~~~~~~~~~~~~~~~~
-
-You can use the existing tablespace or create a new one for Bugzilla.
-To create a new tablespace, run the following command:
-
-.. code-block:: sql
-
- CREATE TABLESPACE bugs
- DATAFILE '*$path_to_datafile*' SIZE 500M
- AUTOEXTEND ON NEXT 30M MAXSIZE UNLIMITED
-
-Here, the name of the tablespace is 'bugs', but you can
-choose another name. *$path_to_datafile* is
-the path to the file containing your database, for instance
-:file:`/u01/oradata/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
-:file:`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.
-
-.. code-block:: sql
-
- CREATE USER bugs
- IDENTIFIED BY "$db_pass"
- DEFAULT TABLESPACE bugs
- TEMPORARY TABLESPACE TEMP
- PROFILE DEFAULT;
- -- GRANT/REVOKE ROLE PRIVILEGES
- GRANT CONNECT TO bugs;
- GRANT RESOURCE TO bugs;
- -- GRANT/REVOKE SYSTEM PRIVILEGES
- GRANT UNLIMITED TABLESPACE TO bugs;
- GRANT EXECUTE ON CTXSYS.CTX_DDL TO bugs;
-
-Configure the Web Server
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you use Apache, append these lines to :file:`httpd.conf`
-to set ORACLE_HOME and LD_LIBRARY_PATH. For instance:
-
-.. code-block:: apache
-
- SetEnv ORACLE_HOME /u01/app/oracle/product/10.2.0/
- SetEnv LD_LIBRARY_PATH /u01/app/oracle/product/10.2.0/lib/
-
-When this is done, restart your web server.
-
-.. _sqlite:
-
-SQLite
-------
-
-.. warning:: Due to SQLite's `concurrency
- limitations <http://sqlite.org/faq.html#q5>`_ we recommend SQLite only for small and development
- Bugzilla installations.
-
-No special configuration is required to run Bugzilla on SQLite.
-The database will be stored in :file:`data/db/$db_name`,
-where ``$db_name`` is the database name defined
-in :file:`localconfig`.
-
-checksetup.pl
-=============
-
-Next, rerun :file:`checksetup.pl`. It reconfirms
-that all the modules are present, and notices the altered
-localconfig file, which it assumes you have edited to your
-satisfaction. It compiles the UI templates,
-connects to the database using the 'bugs'
-user you created and the password you defined, and creates the
-'bugs' database and the tables therein.
-
-After that, it asks for details of an administrator account. Bugzilla
-can have multiple administrators - you can create more later - but
-it needs one to start off with.
-Enter the email address of an administrator, his or her full name,
-and a suitable Bugzilla password.
-
-:file:`checksetup.pl` will then finish. You may rerun
-:file:`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 :file:`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
-:ref:`security-webserver-access`. You can run
-:file:`testserver.pl` to check if your web server serves
-Bugzilla files as expected.
-
-.. _http-apache:
-
-Bugzilla using Apache
----------------------
-
-You have two options for running Bugzilla under Apache -
-:ref:`mod_cgi <http-apache-mod_cgi>` (the default) and
-:ref:`mod_perl <http-apache-mod_perl>` (new in Bugzilla
-2.23)
-
-.. _http-apache-mod_cgi:
-
-Apache *httpd* with mod_cgi
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To configure your Apache web server to work with Bugzilla while using
-mod_cgi, do the following:
-
-#. Load :file:`httpd.conf` in your editor.
- In Fedora and Red Hat Linux, this file is found in
- :file:`/etc/httpd/conf`.
-
-#. Apache uses ``<Directory>``
- directives to permit fine-grained permission setting. Add the
- following lines to a directive that applies to the location
- of your Bugzilla installation. (If such a section does not
- exist, you'll want to add one.) In this example, Bugzilla has
- been installed at :file:`/var/www/html/bugzilla`.
-
-.. code-block:: apache
-
- <Directory /var/www/html/bugzilla>
- AddHandler cgi-script .cgi
- Options +ExecCGI
- DirectoryIndex index.cgi index.html
- AllowOverride Limit FileInfo Indexes Options
- </Directory>
-
-These instructions: allow apache to run .cgi files found
-within the bugzilla directory; instructs the server to look
-for a file called :file:`index.cgi` or, if not
-found, :file:`index.html` if someone
-only types the directory name into the browser; and allows
-Bugzilla's :file:`.htaccess` files to override
-some global permissions.
-
-.. note:: It is possible to make these changes globally, or to the
- directive controlling Bugzilla's parent directory (e.g.
- ``<Directory /var/www/html/>``).
- Such changes would also apply to the Bugzilla directory...
- but they would also apply to many other places where they
- may or may not be appropriate. In most cases, including
- this one, it is better to be as restrictive as possible
- when granting extra access.
-
-.. note:: On Windows, you may have to also add the
- ``ScriptInterpreterSource Registry-Strict``
- line, see :ref:`Windows specific notes <win32-http>`.
-
-#. :file:`checksetup.pl` can set tighter permissions
- on Bugzilla's files and directories if it knows what group the
- web server runs as. Find the ``Group``
- line in :file:`httpd.conf`, place the value found
- there in the *$webservergroup* variable
- in :file:`localconfig`, then rerun :file:`checksetup.pl`.
-
-#. Optional: If Bugzilla does not actually reside in the webspace
- directory, but instead has been symbolically linked there, you
- will need to add the following to the
- ``Options`` line of the Bugzilla
- ``<Directory>`` directive
- (the same one as in the step above):
-
-.. code-block:: apache
-
- +FollowSymLinks
-
-Without this directive, Apache will not follow symbolic links
-to places outside its own directory structure, and you will be
-unable to run Bugzilla.
-
-Apache *httpd* log files with bugzilla
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-For security reasons it is recommended to prevent Apache from logging
-query strings.
-
-For example:
-When external systems interact with Bugzilla via webservices (REST/XMLRPC/JSONRPC)
-they include the user's credentials as part of the URL (query-string). For security
-reasons we recommend configuring Apache to not include the query-string in its log
-files to avoid storing passwords in clear text on the server.
-
-#. Load :file:`httpd.conf` or :file:`apache2.conf` in your editor.
- In most of the Linux distributions this file is found in :folder:`/etc/httpd/conf/httpd.conf`
- or in :folder:`/etc/apache2/apache2.conf`.
-
-#. Find the following line in the above mentioned file.
- LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined.
-
-#. Replace \"%r\" with \"%m %U\".
-
-#. Now restart Apache.
-
-.. _http-apache-mod_perl:
-
-Apache *httpd* with mod_perl
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Some configuration is required to make Bugzilla work with Apache
-and mod_perl
-
-#. Load :file:`httpd.conf` in your editor.
- In Fedora and Red Hat Linux, this file is found in :file:`/etc/httpd/conf`.
-
-#. Add the following information to your httpd.conf file, substituting
- where appropriate with your own local paths.
-
- .. note:: This should be used instead of the <Directory> block
- shown above. This should also be above any other ``mod_perl``
- directives within the :file:`httpd.conf` and must be specified
- in the order as below.
-
- .. warning:: You should also ensure that you have disabled ``KeepAlive``
- support in your Apache install when utilizing Bugzilla under mod_perl
-
-.. code-block:: apache
-
- PerlSwitches -w -T
- PerlConfigRequire /var/www/html/bugzilla/mod_perl.pl
-
-#. :file:`checksetup.pl` can set tighter permissions
- on Bugzilla's files and directories if it knows what group the
- web server runs as. Find the ``Group``
- line in :file:`httpd.conf`, place the value found
- there in the *$webservergroup* variable
- in :file:`localconfig`, then rerun :file:`checksetup.pl`.
-
-On restarting Apache, Bugzilla should now be running within the
-mod_perl environment. Please ensure you have run checksetup.pl to set
-permissions before you restart Apache.
-
-.. note:: Please bear the following points in mind when looking at using
- Bugzilla under mod_perl:
-
- - mod_perl support in Bugzilla can take up a HUGE amount of RAM. You could be
- looking at 30MB per httpd child, easily. Basically, you just need a lot of RAM.
- The more RAM you can get, the better. mod_perl is basically trading RAM for
- speed. At least 2GB total system RAM is recommended for running Bugzilla under
- mod_perl.
- - Under mod_perl, you have to restart Apache if you make any manual change to
- any Bugzilla file. You can't just reload--you have to actually
- *restart* the server (as in make sure it stops and starts
- again). You *can* change localconfig and the params file
- manually, if you want, because those are re-read every time you load a page.
- - You must run in Apache's Prefork MPM (this is the default). The Worker MPM
- may not work--we haven't tested Bugzilla's mod_perl support under threads.
- (And, in fact, we're fairly sure it *won't* work.)
- - Bugzilla generally expects to be the only mod_perl application running on
- your entire server. It may or may not work if there are other applications also
- running under mod_perl. It does try its best to play nice with other mod_perl
- applications, but it still may have conflicts.
- - It is recommended that you have one Bugzilla instance running under mod_perl
- on your server. Bugzilla has not been tested with more than one instance running.
-
-.. _http-iis:
-
-Microsoft *Internet Information Services*
------------------------------------------
-
-If you are running Bugzilla on Windows and choose to use
-Microsoft's *Internet Information Services*
-or *Personal Web Server* you will need
-to perform a number of other configuration steps as explained below.
-You may also want to refer to the following Microsoft Knowledge
-Base articles:
-`245225 - HOW TO: Configure and Test a PERL Script with IIS 4.0,
-5.0, and 5.1 <http://support.microsoft.com/default.aspx?scid=kb;en-us;245225>`_
-(for *Internet Information Services*) and
-`231998 - HOW TO: FP2000: How to Use Perl with Microsoft Personal Web
-Server on Windows 95/98 <http://support.microsoft.com/default.aspx?scid=kb;en-us;231998>`_
-(for *Personal Web Server*).
-
-You will need to create a virtual directory for the Bugzilla
-install. Put the Bugzilla files in a directory that is named
-something *other* than what you want your
-end-users accessing. That is, if you want your users to access
-your Bugzilla installation through
-``http://<yourdomainname>/Bugzilla``, then do
-*not* put your Bugzilla files in a directory
-named ``Bugzilla``. Instead, place them in a different
-location, and then use the IIS Administration tool to create a
-Virtual Directory named "Bugzilla" that acts as an alias for the
-actual location of the files. When creating that virtual directory,
-make sure you add the ``Execute (such as ISAPI applications or
-CGI)`` access permission.
-
-You will also need to tell IIS how to handle Bugzilla's
-.cgi files. Using the IIS Administration tool again, open up
-the properties for the new virtual directory and select the
-Configuration option to access the Script Mappings. Create an
-entry mapping .cgi to:
-
-::
-
- <full path to perl.exe >\perl.exe -x<full path to Bugzilla> -wT "%s" %s
-
-For example:
-
-::
-
- c:\perl\bin\perl.exe -xc:\bugzilla -wT "%s" %s
-
-.. note:: The ActiveState install may have already created an entry for
- .pl files that is limited to ``GET,HEAD,POST``. If
- so, this mapping should be *removed* as
- Bugzilla's .pl files are not designed to be run via a web server.
-
-IIS will also need to know that the index.cgi should be treated
-as a default document. On the Documents tab page of the virtual
-directory properties, you need to add index.cgi as a default
-document type. If you wish, you may remove the other default
-document types for this particular virtual directory, since Bugzilla
-doesn't use any of them.
-
-Also, and this can't be stressed enough, make sure that files
-such as :file:`localconfig` and your
-:file:`data` directory are
-secured as described in :ref:`security-webserver-access`.
-
-.. _install-config-bugzilla:
-
-Bugzilla
-========
-
-Your Bugzilla should now be working. Access
-:file:`http://<your-bugzilla-server>/` -
-you should see the Bugzilla
-front page. If not, consult the Troubleshooting section,
-:ref:`troubleshooting`.
-
-.. note:: The URL above may be incorrect if you installed Bugzilla into a
- subdirectory or used a symbolic link from your web site root to
- the Bugzilla directory.
-
-Log in with the administrator account you defined in the last
-:file:`checksetup.pl` run. You should go through
-the Parameters page and see if there are any you wish to change.
-They key parameters are documented in :ref:`parameters`;
-you should certainly alter
-:command:`maintainer` and :command:`urlbase`;
-you may also want to alter
-:command:`cookiepath` or :command:`requirelogin`.
-
-Bugzilla has several optional features which require extra
-configuration. You can read about those in
-:ref:`extraconfig`.
-
-.. _extraconfig:
-
-Optional Additional Configuration
-#################################
-
-Bugzilla has a number of optional features. This section describes how
-to configure or enable them.
-
-Bug Graphs
-==========
-
-If you have installed the necessary Perl modules you
-can start collecting statistics for the nifty Bugzilla
-graphs.
-
-::
-
- # crontab -e
-
-This should bring up the crontab file in your editor.
-Add a cron entry like this to run
-:file:`collectstats.pl`
-daily at 5 after midnight:
-
-.. code-block:: none
-
- 5 0 * * * cd <your-bugzilla-directory> && ./collectstats.pl
-
-After two days have passed you'll be able to view bug graphs from
-the Reports page.
-
-.. note:: Windows does not have 'cron', but it does have the Task
- Scheduler, which performs the same duties. There are also
- third-party tools that can be used to implement cron, such as
- `nncron <http://www.nncron.ru/>`_.
-
-.. _installation-whining-cron:
-
-The Whining Cron
-================
-
-What good are
-bugs if they're not annoying? To help make them more so you
-can set up Bugzilla's automatic whining system to complain at engineers
-which leave their bugs in the CONFIRMED state without triaging them.
-
-This can be done by adding the following command as a daily
-crontab entry, in the same manner as explained above for bug
-graphs. This example runs it at 12.55am.
-
-.. code-block:: none
-
- 55 0 * * * cd <your-bugzilla-directory> && ./whineatnews.pl
-
-.. note:: Windows does not have 'cron', but it does have the Task
- Scheduler, which performs the same duties. There are also
- third-party tools that can be used to implement cron, such as
- `nncron <http://www.nncron.ru/>`_.
-
-.. _installation-whining:
-
-Whining
-=======
-
-As of Bugzilla 2.20, users can configure Bugzilla to regularly annoy
-them at regular intervals, by having Bugzilla execute saved searches
-at certain times and emailing the results to the user. This is known
-as "Whining". The process of configuring Whining is described
-in :ref:`whining`, but for it to work a Perl script must be
-executed at regular intervals.
-
-This can be done by adding the following command as a daily
-crontab entry, in the same manner as explained above for bug
-graphs. This example runs it every 15 minutes.
-
-.. code-block:: none
-
- */15 * * * * cd <your-bugzilla-directory> && ./whine.pl
-
-.. note:: Whines can be executed as often as every 15 minutes, so if you specify
- longer intervals between executions of whine.pl, some users may not
- be whined at as often as they would expect. Depending on the person,
- this can either be a very Good Thing or a very Bad Thing.
-
-.. note:: Windows does not have 'cron', but it does have the Task
- Scheduler, which performs the same duties. There are also
- third-party tools that can be used to implement cron, such as
- `nncron <http://www.nncron.ru/>`_.
-
-.. _apache-addtype:
-
-Serving Alternate Formats with the right MIME type
-==================================================
-
-Some Bugzilla pages have alternate formats, other than just plain
-HTML. In particular, a few Bugzilla pages can
-output their contents as either XUL (a special
-Mozilla format, that looks like a program GUI)
-or RDF (a type of structured XML
-that can be read by various programs).
-
-In order for your users to see these pages correctly, Apache must
-send them with the right MIME type. To do this,
-add the following lines to your Apache configuration, either in the
-``<VirtualHost>`` section for your
-Bugzilla, or in the ``<Directory>``
-section for your Bugzilla:
-
-.. code-block:: apache
-
- AddType application/vnd.mozilla.xul+xml .xul
- AddType application/rdf+xml .rdf
-
-.. _multiple-bz-dbs:
-
-Multiple Bugzilla databases with a single installation
-######################################################
-
-The previous instructions referred to a standard installation, with
-one unique Bugzilla database. However, you may want to host several
-distinct installations, without having several copies of the code. This is
-possible by using the PROJECT environment variable. When accessed,
-Bugzilla checks for the existence of this variable, and if present, uses
-its value to check for an alternative configuration file named
-:file:`localconfig.<PROJECT>` in the same location as
-the default one (:file:`localconfig`). It also checks for
-customized templates in a directory named
-:file:`<PROJECT>` in the same location as the
-default one (:file:`template/<langcode>`). By default
-this is :file:`template/en/default` so PROJECT's templates
-would be located at :file:`template/en/PROJECT`.
-
-To set up an alternate installation, just export PROJECT=foo before
-running :command:`checksetup.pl` for the first time. It will
-result in a file called :file:`localconfig.foo` instead of
-:file:`localconfig`. Edit this file as described above, with
-reference to a new database, and re-run :command:`checksetup.pl`
-to populate it. That's all.
-
-Now you have to configure the web server to pass this environment
-variable when accessed via an alternate URL, such as virtual host for
-instance. The following is an example of how you could do it in Apache,
-other Webservers may differ.
-
-.. code-block:: apache
-
- <VirtualHost 212.85.153.228:80>
- ServerName foo.bar.baz
- SetEnv PROJECT foo
- Alias /bugzilla /var/www/bugzilla
- </VirtualHost>
-
-Don't forget to also export this variable before accessing Bugzilla
-by other means, such as cron tasks for instance.
-
-.. _os-specific:
-
-OS-Specific Installation Notes
-##############################
-
-Many aspects of the Bugzilla installation can be affected by the
-operating system you choose to install it on. Sometimes it can be made
-easier and others more difficult. This section will attempt to help you
-understand both the difficulties of running on specific operating systems
-and the utilities available to make it easier.
-
-If you have anything to add or notes for an operating system not covered,
-please file a bug in `Bugzilla Documentation <http://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla;component=Documentation>`_.
-
-.. _os-win32:
-
-Microsoft Windows
-=================
-
-Making Bugzilla work on Windows is more difficult than making it
-work on Unix. For that reason, we still recommend doing so on a Unix
-based system such as GNU/Linux. That said, if you do want to get
-Bugzilla running on Windows, you will need to make the following
-adjustments. A detailed step-by-step
-`installation guide for Windows <https://wiki.mozilla.org/Bugzilla:Win32Install>`_ is also available
-if you need more help with your installation.
-
-.. _win32-perl:
-
-Win32 Perl
-----------
-
-Perl for Windows can be obtained from
-`ActiveState <http://www.activestate.com/>`_.
-You should be able to find a compiled binary at `<http://aspn.activestate.com/ASPN/Downloads/ActivePerl/>`_.
-The following instructions assume that you are using version
-|min-perl-ver| of ActiveState.
-
-.. note:: These instructions are for 32-bit versions of Windows. If you are
- using a 64-bit version of Windows, you will need to install 32-bit
- Perl in order to install the 32-bit modules as described below.
-
-.. _win32-perl-modules:
-
-Perl Modules on Win32
----------------------
-
-Bugzilla on Windows requires the same perl modules found in
-:ref:`install-perlmodules`. The main difference is that
-windows uses PPM instead
-of CPAN. ActiveState provides a GUI to manage Perl modules. We highly
-recommend that you use it. If you prefer to use ppm from the
-command-line, type:
-
-::
-
- C:\perl> ppm install <module name>
-
-If you are using Perl |min-perl-ver|, the best source for the Windows PPM modules
-needed for Bugzilla is probably the theory58S website, which you can add
-to your list of repositories as follows:
-
-::
-
- ppm repo add theory58S http://cpan.uwinnipeg.ca/PPMPackages/10xx/
-
-If you are using Perl 5.12 or newer, you no longer need to add
-this repository. All modules you need are already available from
-the ActiveState repository.
-
-.. note:: The PPM repository stores modules in 'packages' that may have
- a slightly different name than the module. If retrieving these
- modules from there, you will need to pay attention to the information
- provided when you run :command:`checksetup.pl` as it will
- tell you what package you'll need to install.
-
-.. note:: If you are behind a corporate firewall, you will need to let the
- ActiveState PPM utility know how to get through it to access
- the repositories by setting the HTTP_proxy system environmental
- variable. For more information on setting that variable, see
- the ActiveState documentation.
-
-.. _win32-http:
-
-Serving the web pages
----------------------
-
-As is the case on Unix based systems, any web server should
-be able to handle Bugzilla; however, the Bugzilla Team still
-recommends Apache whenever asked. No matter what web server
-you choose, be sure to pay attention to the security notes
-in :ref:`security-webserver-access`. More
-information on configuring specific web servers can be found
-in :ref:`http`.
-
-.. note:: The web server looks at :file:`/usr/bin/perl` to
- call Perl. If you are using Apache on windows, you can set the
- `ScriptInterpreterSource <http://httpd.apache.org/docs-2.0/mod/core.html#scriptinterpretersource>`_
- directive in your Apache config file to make it look at the
- right place: insert the line
-
- ::
- ScriptInterpreterSource Registry-Strict
-
- into your :file:`httpd.conf` file, and create the key
-
- ::
- HKEY_CLASSES_ROOT\\.cgi\\Shell\\ExecCGI\\Command
-
- with ``C:\\Perl\\bin\\perl.exe -T`` as value (adapt to your
- path if needed) in the registry. When this is done, restart Apache.
-
-.. _win32-email:
-
-Sending Email
--------------
-
-To enable Bugzilla to send email on Windows, the server running the
-Bugzilla code must be able to connect to, or act as, an SMTP server.
-
-.. _os-macosx:
-
-*Mac OS X*
-==========
-
-Making Bugzilla work on Mac OS X requires the following
-adjustments.
-
-.. _macosx-sendmail:
-
-Sendmail
---------
-
-In Mac OS X 10.3 and later,
-`Postfix <http://www.postfix.org/>`_
-is used as the built-in email server. Postfix provides an executable
-that mimics sendmail enough to fool Bugzilla, as long as Bugzilla can
-find it. Bugzilla is able to find the fake sendmail executable without
-any assistance.
-
-.. _macosx-libraries:
-
-Libraries & Perl Modules on Mac OS X
-------------------------------------
-
-Apple does not include the GD library with Mac OS X. Bugzilla
-needs this for bug graphs.
-
-You can use MacPorts (`<http://www.macports.org/>`_)
-or Fink (`<http://sourceforge.net/projects/fink/>`_), both
-of which are similar in nature to the CPAN installer, but install
-common unix programs.
-
-Follow the instructions for setting up MacPorts or Fink.
-Once you have one installed, you'll want to use it to install the
-:file:`gd2` package.
-
-Fink will prompt you for a number of dependencies, type 'y' and hit
-enter to install all of the dependencies and then watch it work. You will
-then be able to use CPAN to
-install the GD Perl module.
-
-.. note:: To prevent creating conflicts with the software that Apple
- installs by default, Fink creates its own directory tree at :file:`/sw`
- where it installs most of
- the software that it installs. This means your libraries and headers
- will be at :file:`/sw/lib` and :file:`/sw/include` instead
- of :file:`/usr/lib` and :file:`/usr/include`. When the
- Perl module config script asks where your :file:`libgd`
- is, be sure to tell it :file:`/sw/lib`.
-
-Also available via MacPorts and Fink is
-:file:`expat`. After installing the expat package, you
-will be able to install XML::Parser using CPAN. If you use fink, there
-is one caveat. Unlike recent versions of
-the GD module, XML::Parser doesn't prompt for the location of the
-required libraries. When using CPAN, you will need to use the following
-command sequence:
-
-::
-
- # perl -MCPAN -e'look XML::Parser'
- # perl Makefile.PL EXPATLIBPATH=/sw/lib EXPATINCPATH=/sw/include
- # make; make test; make install
- # exit
-
-The :command:`look` command will download the module and spawn
-a new shell with the extracted files as the current working directory.
-
-You should watch the output from these :command:`make` commands,
-especially ``make test`` as errors may prevent
-XML::Parser from functioning correctly with Bugzilla.
-
-The :command:`exit` command will return you to your original shell.
-
-.. _os-linux:
-
-Linux Distributions
-===================
-
-Many Linux distributions include Bugzilla and its
-dependencies in their native package management systems.
-Installing Bugzilla with root access on any Linux system
-should be as simple as finding the Bugzilla package in the
-package management application and installing it using the
-normal command syntax. Several distributions also perform
-the proper web server configuration automatically on installation.
-
-Please consult the documentation of your Linux
-distribution for instructions on how to install packages,
-or for specific instructions on installing Bugzilla with
-native package management tools. There is also a
-`Bugzilla Wiki Page <http://wiki.mozilla.org/Bugzilla:Linux_Distro_Installation>`_ for distro-specific installation
-notes.
-
-.. _nonroot:
-
-UNIX (non-root) Installation Notes
-##################################
-
-Introduction
-============
-
-If you are running a \*NIX OS as non-root, either due
-to lack of access (web hosts, for example) or for security
-reasons, this will detail how to install Bugzilla on such
-a setup. It is recommended that you read through the
-:ref:`installation`
-first to get an idea on the installation steps required.
-(These notes will reference to steps in that guide.)
-
-MySQL
-=====
-
-You may have MySQL installed as root. If you're
-setting up an account with a web host, a MySQL account
-needs to be set up for you. From there, you can create
-the bugs account, or use the account given to you.
-
-.. warning:: You may have problems trying to set up :command:`GRANT`
- permissions to the database.
- If you're using a web host, chances are that you have a
- separate database which is already locked down (or one big
- database with limited/no access to the other areas), but you
- may want to ask your system administrator what the security
- settings are set to, and/or run the :command:`GRANT`
- command for you.
- Also, you will probably not be able to change the MySQL
- root user password (for obvious reasons), so skip that
- step.
-
-Running MySQL as Non-Root
--------------------------
-
-The Custom Configuration Method
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Create a file .my.cnf in your
-home directory (using /home/foo in this example)
-as follows....
-
-::
-
- [mysqld]
- datadir=/home/foo/mymysql
- socket=/home/foo/mymysql/thesock
- port=8081
- [mysql]
- socket=/home/foo/mymysql/thesock
- port=8081
- [mysql.server]
- user=mysql
- basedir=/var/lib
- [safe_mysqld]
- err-log=/home/foo/mymysql/the.log
- pid-file=/home/foo/mymysql/the.pid
-
-The Custom Built Method
-~~~~~~~~~~~~~~~~~~~~~~~
-
-You can install MySQL as a not-root, if you really need to.
-Build it with PREFIX set to :file:`/home/foo/mysql`,
-or use pre-installed executables, specifying that you want
-to put all of the data files in :file:`/home/foo/mysql/data`.
-If there is another MySQL server running on the system that you
-do not own, use the -P option to specify a TCP port that is not
-in use.
-
-Starting the Server
-~~~~~~~~~~~~~~~~~~~
-
-After your mysqld program is built and any .my.cnf file is
-in place, you must initialize the databases (ONCE).
-
-::
-
- $ mysql_install_db
-
-Then start the daemon with
-
-::
-
- $ safe_mysql &
-
-After you start mysqld the first time, you then connect to
-it as "root" and :command:`GRANT` permissions to other
-users. (Again, the MySQL root account has nothing to do with
-the \*NIX root account.)
-
-.. note:: You will need to start the daemons yourself. You can either
- ask your system administrator to add them to system startup files, or
- add a crontab entry that runs a script to check on these daemons
- and restart them if needed.
-
-.. warning:: Do NOT run daemons or other services on a server without first
- consulting your system administrator! Daemons use up system resources
- and running one may be in violation of your terms of service for any
- machine on which you are a user!
-
-Perl
-====
-
-On the extremely rare chance that you don't have Perl on
-the machine, you will have to build the sources
-yourself. The following commands should get your system
-installed with your own personal version of Perl:
-
-::
-
- $ wget http://perl.org/CPAN/src/stable.tar.gz
- $ tar zvxf stable.tar.gz
- $ cd perl-|min-perl-ver|
- $ sh Configure -de -Dprefix=/home/foo/perl
- $ make && make test && make install
-
-Once you have Perl installed into a directory (probably
-in :file:`~/perl/bin`), you will need to
-install the Perl Modules, described below.
-
-.. _install-perlmodules-nonroot:
-
-Perl Modules
-============
-
-Installing the Perl modules as a non-root user is accomplished by
-running the :file:`install-module.pl`
-script. For more details on this script, see the
-`install-module.pl documentation <../html/api/install-module.html>`_.
-
-HTTP Server
-===========
-
-Ideally, this also needs to be installed as root and
-run under a special web server account. As long as
-the web server will allow the running of \*.cgi files outside of a
-cgi-bin, and a way of denying web access to certain files (such as a
-.htaccess file), you should be good in this department.
-
-Running Apache as Non-Root
---------------------------
-
-You can run Apache as a non-root user, but the port will need
-to be set to one above 1024. If you type :command:`httpd -V`,
-you will get a list of the variables that your system copy of httpd
-uses. One of those, namely HTTPD_ROOT, tells you where that
-installation looks for its config information.
-
-From there, you can copy the config files to your own home
-directory to start editing. When you edit those and then use the -d
-option to override the HTTPD_ROOT compiled into the web server, you
-get control of your own customized web server.
-
-.. note:: You will need to start the daemons yourself. You can either
- ask your system administrator to add them to system startup files, or
- add a crontab entry that runs a script to check on these daemons
- and restart them if needed.
-
-.. warning:: Do NOT run daemons or other services on a server without first
- consulting your system administrator! Daemons use up system resources
- and running one may be in violation of your terms of service for any
- machine on which you are a user!
-
-Bugzilla
-========
-
-When you run :command:`./checksetup.pl` to create
-the :file:`localconfig` file, it will list the Perl
-modules it finds. If one is missing, go back and double-check the
-module installation from :ref:`install-perlmodules-nonroot`,
-then delete the :file:`localconfig` file and try again.
-
-.. warning:: One option in :file:`localconfig` you
- might have problems with is the web server group. If you can't
- successfully browse to the :file:`index.cgi` (like
- a Forbidden error), you may have to relax your permissions,
- and blank out the web server group. Of course, this may pose
- as a security risk. Having a properly jailed shell and/or
- limited access to shell accounts may lessen the security risk,
- but use at your own risk.
-
-.. _suexec:
-
-suexec or shared hosting
-------------------------
-
-If you are running on a system that uses suexec (most shared
-hosting environments do this), you will need to set the
-*webservergroup* value in :file:`localconfig`
-to match *your* primary group, rather than the one
-the web server runs under. You will need to run the following
-shell commands after running :command:`./checksetup.pl`,
-every time you run it (or modify :file:`checksetup.pl`
-to do them for you via the system() command).
-
-::
-
- for i in docs graphs images js skins; do find $i -type d -exec chmod o+rx {} \\; ; done
- for i in jpg gif css js png html rdf xul; do find . -name \\*.$i -exec chmod o+r {} \\; ; done
- find . -name .htaccess -exec chmod o+r {} \\;
- chmod o+x . data data/webdot
-
-Pay particular attention to the number of semicolons and dots.
-They are all important. A future version of Bugzilla will
-hopefully be able to do this for you out of the box.
-
-.. _upgrade:
-
-Upgrading to New Releases
-#########################
-
-Upgrading to new Bugzilla releases is very simple. There is
-a script named :file:`checksetup.pl` included with
-Bugzilla that will automatically do all of the database migration
-for you.
-
-The following sections explain how to upgrade from one
-version of Bugzilla to another. Whether you are upgrading
-from one bug-fix version to another (such as 4.2 to 4.2.1)
-or from one major version to another (such as from 4.0 to 4.2),
-the instructions are always the same.
-
-.. note:: Any examples in the following sections are written as though the
- user were updating to version 4.2.1, but the procedures are the
- same no matter what version you're updating to. Also, in the
- examples, the user's Bugzilla installation is found
- at :file:`/var/www/html/bugzilla`. If that is not the
- same as the location of your Bugzilla installation, simply
- substitute the proper paths where appropriate.
-
-.. _upgrade-before:
-
-Before You Upgrade
-==================
-
-Before you start your upgrade, there are a few important
-steps to take:
-
-#. Read the `Release
- Notes <http://www.bugzilla.org/releases/>`_ of the version you're upgrading to,
- particularly the "Notes for Upgraders" section.
-
-#. View the Sanity Check (:ref:`sanitycheck`) page
- on your installation before upgrading. Attempt to fix all warnings
- that the page produces before you go any further, or you may
- experience problems during your upgrade.
-
-#. Shut down your Bugzilla installation by putting some HTML or
- text in the shutdownhtml parameter
- (see :ref:`parameters`).
-
-#. Make a backup of the Bugzilla database.
- *THIS IS VERY IMPORTANT*. If
- anything goes wrong during the upgrade, your installation
- can be corrupted beyond recovery. Having a backup keeps you safe.
-
- .. warning:: Upgrading is a one-way process. You cannot "downgrade" an
- upgraded Bugzilla. If you wish to revert to the old Bugzilla
- version for any reason, you will have to restore your database
- from this backup.
-
- Here are some sample commands you could use to backup
- your database, depending on what database system you're
- using. You may have to modify these commands for your
- particular setup.
-
- MySQL:
- mysqldump --opt -u bugs -p bugs > bugs.sql
- PostgreSQL:
- pg_dump --no-privileges --no-owner -h localhost -U bugs
- > bugs.sql
-
-.. _upgrade-files:
-
-Getting The New Bugzilla
-========================
-
-There are three ways to get the new version of Bugzilla.
-We'll list them here briefly and then explain them
-more later.
-
-Bzr (:ref:`upgrade-bzr`)
- If you have :command:`bzr` installed on your machine
- and you have Internet access, this is the easiest way to
- upgrade, particularly if you have made modifications
- to the code or templates of Bugzilla.
-
-Download the tarball (:ref:`upgrade-tarball`)
- This is a very simple way to upgrade, and good if you
- haven't made many (or any) modifications to the code or
- templates of your Bugzilla.
-
-Patches (:ref:`upgrade-patches`)
- If you have made modifications to your Bugzilla, and
- you don't have Internet access or you don't want to use
- bzr, then this is the best way to upgrade.
- You can only do minor upgrades (such as 4.2 to 4.2.1 or
- 4.2.1 to 4.2.2) with patches.
-
-.. _upgrade-modified:
-
-If you have modified your Bugzilla
-----------------------------------
-
-If you have modified the code or templates of your Bugzilla,
-then upgrading requires a bit more thought and effort.
-A discussion of the various methods of updating compared with
-degree and methods of local customization can be found in
-:ref:`template-method`.
-
-The larger the jump you are trying to make, the more difficult it
-is going to be to upgrade if you have made local customizations.
-Upgrading from 4.2 to 4.2.1 should be fairly painless even if
-you are heavily customized, but going from 2.18 to 4.2 is going
-to mean a fair bit of work re-writing your local changes to use
-the new files, logic, templates, etc. If you have done no local
-changes at all, however, then upgrading should be approximately
-the same amount of work regardless of how long it has been since
-your version was released.
-
-.. _upgrade-bzr:
-
-Upgrading using Bzr
--------------------
-
-This requires that you have bzr installed (most Unix machines do),
-and requires that you are able to access
-`bzr.mozilla.org <http://bzr.mozilla.org/bugzilla/>`_,
-which may not be an option if you don't have Internet access.
-
-The following shows the sequence of commands needed to update a
-Bugzilla installation via Bzr, and a typical series of results.
-These commands assume that you already have Bugzilla installed
-using Bzr.
-
-.. warning:: If your installation is still using CVS, you must first convert
- it to Bzr. A very detailed step by step documentation can be
- found on `wiki.mozilla.org <https://wiki.mozilla.org/Bugzilla:Moving_From_CVS_To_Bazaar>`_.
-
-::
-
- $ cd /var/www/html/bugzilla
- $ bzr switch 4.2
- (only run the previous command when not yet running 4.2)
- $ bzr up -r tag:bugzilla-4.2.1
- +N extensions/MoreBugUrl/
- +N extensions/MoreBugUrl/Config.pm
- +N extensions/MoreBugUrl/Extension.pm
- ...
- M Bugzilla/Attachment.pm
- M Bugzilla/Attachment/PatchReader.pm
- M Bugzilla/Bug.pm
- ...
- All changes applied successfully.
-
-.. warning:: If a line in the output from :command:`bzr up` mentions
- a conflict, then that represents a file with local changes that
- Bzr was unable to properly merge. You need to resolve these
- conflicts manually before Bugzilla (or at least the portion using
- that file) will be usable.
-
-.. _upgrade-tarball:
-
-Upgrading using the tarball
----------------------------
-
-If you are unable (or unwilling) to use Bzr, another option that's
-always available is to obtain the latest tarball from the `Download Page <http://www.bugzilla.org/download/>`_ and
-create a new Bugzilla installation from that.
-
-This sequence of commands shows how to get the tarball from the
-command-line; it is also possible to download it from the site
-directly in a web browser. If you go that route, save the file
-to the :file:`/var/www/html`
-directory (or its equivalent, if you use something else) and
-omit the first three lines of the example.
-
-::
-
- $ cd /var/www/html
- $ wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-4.2.1.tar.gz
- ...
- $ tar xzvf bugzilla-4.2.1.tar.gz
- bugzilla-4.2.1/
- bugzilla-4.2.1/colchange.cgi
- ...
- $ cd bugzilla-4.2.1
- $ cp ../bugzilla/localconfig* .
- $ cp -r ../bugzilla/data .
- $ cd ..
- $ mv bugzilla bugzilla.old
- $ mv bugzilla-4.2.1 bugzilla
-
-.. warning:: The :command:`cp` commands both end with periods which
- is a very important detail--it means that the destination
- directory is the current working directory.
-
-.. warning:: If you have some extensions installed, you will have to copy them
- to the new bugzilla directory too. Extensions are located in :file:`bugzilla/extensions/`.
- Only copy those you
- installed, not those managed by the Bugzilla team.
-
-This upgrade method will give you a clean install of Bugzilla.
-That's fine if you don't have any local customizations that you
-want to maintain. If you do have customizations, then you will
-need to reapply them by hand to the appropriate files.
-
-.. _upgrade-patches:
-
-Upgrading using patches
------------------------
-
-A patch is a collection of all the bug fixes that have been made
-since the last bug-fix release.
-
-If you are doing a bug-fix upgrade—that is, one where only the
-last number of the revision changes, such as from 4.2 to
-4.2.1—then you have the option of obtaining and applying a
-patch file from the `Download Page <http://www.bugzilla.org/download/>`_.
-
-As above, this example starts with obtaining the file via the
-command line. If you have already downloaded it, you can omit the
-first two commands.
-
-::
-
- $ cd /var/www/html/bugzilla
- $ wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-4.2-to-4.2.1.diff.gz
- ...
- $ gunzip bugzilla-4.2-to-4.2.1.diff.gz
- $ patch -p1 < bugzilla-4.2-to-4.2.1.diff
- patching file Bugzilla/Constants.pm
- patching file enter_bug.cgi
- ...
-
-.. warning:: Be aware that upgrading from a patch file does not change the
- entries in your :file:`.bzr` directory.
- This could make it more difficult to upgrade using Bzr
- (:ref:`upgrade-bzr`) in the future.
-
-.. _upgrade-completion:
-
-Completing Your Upgrade
-=======================
-
-Now that you have the new Bugzilla code, there are a few final
-steps to complete your upgrade.
-
-#. If your new Bugzilla installation is in a different
- directory or on a different machine than your old Bugzilla
- installation, make sure that you have copied the
- :file:`data` directory and the
- :file:`localconfig` file from your old Bugzilla
- installation. (If you followed the tarball instructions
- above, this has already happened.)
-
-#. If this is a major update, check that the configuration
- (:ref:`configuration`) for your new Bugzilla is
- up-to-date. Sometimes the configuration requirements change
- between major versions.
-
-#. If you didn't do it as part of the above configuration step,
- now you need to run :command:`checksetup.pl`, which
- will do everything required to convert your existing database
- and settings for the new version:
-
- ::
-
- $ :command:`cd /var/www/html/bugzilla`
- $ :command:`./checksetup.pl`
-
- .. warning:: The period at the beginning of the
- command :command:`./checksetup.pl` is important and cannot
- be omitted.
-
- .. warning:: If this is a major upgrade (say, 3.6 to 4.2 or similar),
- running :command:`checksetup.pl` on a large
- installation (75,000 or more bugs) can take a long time,
- possibly several hours.
-
-#. Clear any HTML or text that you put into the shutdownhtml
- parameter, to re-activate Bugzilla.
-
-#. View the Sanity Check (:ref:`sanitycheck`) page in your
- upgraded Bugzilla.
- It is recommended that, if possible, you fix any problems
- you see, immediately. Failure to do this may mean that Bugzilla
- will not work correctly. Be aware that if the sanity check page
- contains more errors after an upgrade, it doesn't necessarily
- mean there are more errors in your database than there were
- before, as additional tests are added to the sanity check over
- time, and it is possible that those errors weren't being
- checked for in the old version.
-
-.. _upgrade-notifications:
-
-Automatic Notifications of New Releases
-=======================================
-
-Bugzilla 3.0 introduced the ability to automatically notify
-administrators when new releases are available, based on the
-``upgrade_notification`` parameter, see
-:ref:`parameters`. Administrators will see these
-notifications when they access the :file:`index.cgi`
-page, i.e. generally when logging in. Bugzilla will check once per
-day for new releases, unless the parameter is set to
-``disabled``. If you are behind a proxy, you may have to set
-the ``proxy_url`` parameter accordingly. If the proxy
-requires authentication, use the
-``http://user:pass@proxy_url/`` syntax.
-
-