summaryrefslogtreecommitdiffstats
path: root/docs/en/rst/installing/apache-windows.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/en/rst/installing/apache-windows.rst')
-rw-r--r--docs/en/rst/installing/apache-windows.rst128
1 files changed, 128 insertions, 0 deletions
diff --git a/docs/en/rst/installing/apache-windows.rst b/docs/en/rst/installing/apache-windows.rst
new file mode 100644
index 000000000..5e8ac8928
--- /dev/null
+++ b/docs/en/rst/installing/apache-windows.rst
@@ -0,0 +1,128 @@
+.. _apache-windows:
+
+Apache
+######
+
+These instructions require editing the Apache configuration file, which is
+at :file:`C:\\Program Files\\Apache Group\\Apache2\\conf\\httpd.conf`.
+
+Installing
+==========
+
+Download the Apache HTTP Server, version 2.2.x or higher, from
+`the Apache website <http://httpd.apache.org/download.cgi>`_.
+
+Apache uses a standard Windows installer. Just follow the prompts, making sure
+you "Install for All Users". Be aware the Apache will always install itself
+into an :file:`Apache2` directory under what ever path you specify. The
+default install path will be displayed as
+:file:`C:\\Program Files\\Apache Group`, which will result in Apache being
+installed to :file:`C:\\Program Files\\Apache Group\\Apache2`.
+
+If you are already running IIS on your machine, you must configure Apache to
+run on a port other than 80, which IIS is using. However you aren't asked the
+port to listen on at install time. Choose "All Users" (which says port 80),
+and we'll change the port later.
+
+The remainder of this document assumes you have installed Apache into
+the default location, :file:`C:\\Program Files\\Apache Group\\Apache2`.
+
+Apache Account Permissions
+==========================
+
+By default Apache installs itself to run as the SYSTEM account. For security
+reasons it's better the reconfigure the service to run as an Apache user.
+Create a new Windows user that is a member of **no** groups, and reconfigure
+the Apache2 service to run as that account.
+
+Whichever account you are running Apache as, SYSTEM or otherwise, needs write
+and modify access to the following directories and all their subdirectories.
+Depending on your version of Windows, this access may already be granted.
+
+* :file:`C:\\Bugzilla\\data`
+* :file:`C:\\Program Files\\Apache Group\\Apache2\\logs`
+* :file:`C:\\Temp`
+* :file:`C:\\Windows\\Temp`
+
+Note that :file:`C:\\Bugzilla\\data` is created the first time you run
+:file:`checksetup.pl`.
+
+Port and DocumentRoot
+=====================
+
+Edit the Apache configuration file (see above).
+
+If you need to change the port that Apache runs on (listens on, or binds to),
+for example because another web server such as IIS is running on the same
+machine, edit the ``Listen`` option and change the value after the colon.
+
+Change the ``DocumentRoot`` setting to point to :file:`C:/Bugzilla`. There
+are two locations in :file:`httpd.conf` that need to be updated (search for
+``DocumentRoot``). You need to use ``/`` instead of ``\`` as a path separator.
+
+Enable CGI Support
+==================
+
+Edit the Apache configuration file (see above).
+
+To enable CGI support in Apache, you need to enable the CGI handler, by
+uncommenting the ``AddHandler cgi-script .cgi`` line.
+
+Teach Apache About Bugzilla
+===========================
+
+Edit the Apache configuration file (see above).
+
+Add the following stanza:
+
+.. code-block:: apache
+
+ <Directory "C:/Bugzilla">
+ ScriptInterpreterSource Registry-Strict
+ Options +ExecCGI +FollowSymLinks
+ DirectoryIndex index.cgi index.html
+ AllowOverride Limit FileInfo Indexes Options
+ </Directory>
+
+In order for ``ScriptInterpreterSource Registry-Strict`` to work, you also
+need to add an entry to the Registry so Apache will use Perl to execute .cgi
+files.
+
+Create a key ``HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command`` with the
+default value of the full path of :file:`perl.exe` with a ``-T`` parameter.
+For example :file:`C:\\Perl\\bin\\perl.exe -T`.
+
+Logging
+=======
+
+Unless you want to keep statistics on how many hits your Bugzilla install is
+getting, it's a good idea to disable logging by commenting out the
+``CustomLog`` directive in the Apache config file.
+
+If you don't disable logging, you should at least disable logging of "query
+strings". When external systems interact with Bugzilla via webservices
+(REST/XMLRPC/JSONRPC) they include the user's credentials as part of the URL
+(in the query string). Therefore, to avoid storing passwords in clear text
+on the server we recommend configuring Apache to not include the query string
+in its log files.
+
+#. Find the following line in the Apache config file, which defines the
+ logging format for ``vhost_combined``:
+
+ .. code-block:: apache
+
+ LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
+
+#. Replace ``%r`` with ``%m %U``.
+
+(If you have configured Apache differently, a different log line might apply.
+Adjust these instructions accordingly.)
+
+Restart Apache
+==============
+
+Finally, restart Apache to get it pick up the changes:
+
+:command:`net stop apache2`
+
+:command:`net start apache2`