<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>3.5.1. Apache — Bugzilla 5.0.4 documentation</title> <link rel="stylesheet" href="../_static/bugzilla.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', VERSION: '5.0.4', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true, SOURCELINK_SUFFIX: '.txt' }; </script> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="shortcut icon" href="../_static/favicon.ico"/> <link rel="search" title="Search" href="../search.html" /> <link rel="next" title="3.5.2. Apache on Windows" href="apache-windows.html" /> <link rel="prev" title="3.5. Web Server" href="web_server.html" /> </head> <body> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="apache-windows.html" title="3.5.2. Apache on Windows" accesskey="N">next</a></li> <li class="right" > <a href="web_server.html" title="3.5. Web Server" accesskey="P">previous</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html">Bugzilla 5.0.4 documentation</a> »</li> <li class="nav-item nav-item-1"><a href="index.html" >3. Installation and Maintenance Guide</a> »</li> <li class="nav-item nav-item-2"><a href="web_server.html" accesskey="U">3.5. Web Server</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <div class="section" id="apache"> <span id="id1"></span><h1>3.5.1. Apache<a class="headerlink" href="#apache" title="Permalink to this headline">¶</a></h1> <p>You have two options for running Bugzilla under Apache - mod_cgi (the default) and mod_perl. mod_perl is faster but takes more resources. You should probably only consider mod_perl if your Bugzilla is going to be heavily used.</p> <p>These instructions require editing the Apache configuration file, which is:</p> <ul class="simple"> <li>Fedora/Red Hat: <code class="file docutils literal"><span class="pre">/etc/httpd/conf/httpd.conf</span></code></li> <li>Debian/Ubuntu: <code class="file docutils literal"><span class="pre">/etc/apache2/apache2.conf</span></code></li> <li>Mac OS X: <code class="file docutils literal"><span class="pre">/etc/apache2/httpd.conf</span></code></li> </ul> <p>Alternatively, on Debian or Ubuntu, you can instead put the below code into a separate file in the directory <code class="file docutils literal"><span class="pre">/etc/apache2/sites-enabled/</span></code>.</p> <p>In these instructions, when asked to restart Apache, the command is:</p> <p><strong class="command">sudo apachectl start</strong></p> <p>(or run it as root if your OS installation does not use sudo).</p> <div class="section" id="securing-apache"> <h2>3.5.1.1. Securing Apache<a class="headerlink" href="#securing-apache" title="Permalink to this headline">¶</a></h2> <p>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.</p> <ol class="arabic"> <li><p class="first">Edit the Apache configuration file (see above).</p> </li> <li><p class="first">Find the following line in the above mentioned file, which defines the logging format for <code class="docutils literal"><span class="pre">vhost_combined</span></code>:</p> <div class="highlight-apache"><div class="highlight"><pre><span></span><span class="nb">LogFormat</span> <span class="s2">"%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\""</span> vhost_combined </pre></div> </div> </li> <li><p class="first">Replace <code class="docutils literal"><span class="pre">%r</span></code> with <code class="docutils literal"><span class="pre">%m</span> <span class="pre">%U</span></code>.</p> </li> <li><p class="first">Restart Apache.</p> </li> </ol> </div> <div class="section" id="apache-with-mod-cgi"> <span id="apache-mod-cgi"></span><h2>3.5.1.2. Apache with mod_cgi<a class="headerlink" href="#apache-with-mod-cgi" title="Permalink to this headline">¶</a></h2> <p>To configure your Apache web server to work with Bugzilla while using mod_cgi, do the following:</p> <ol class="arabic simple"> <li>Edit the Apache configuration file (see above).</li> <li>Create a <code class="docutils literal"><span class="pre"><Directory></span></code> directive that applies to the location of your Bugzilla installation. In this example, Bugzilla has been installed at <code class="file docutils literal"><span class="pre">/var/www/html/bugzilla</span></code>. On Mac OS X, use <code class="file docutils literal"><span class="pre">/Library/WebServer/Documents/bugzilla</span></code>.</li> </ol> <div class="highlight-apache"><div class="highlight"><pre><span></span><span class="nt"><Directory</span> <span class="s">/var/www/html/bugzilla</span><span class="nt">></span> <span class="nb">AddHandler</span> cgi-script .cgi <span class="nb">Options</span> +ExecCGI +FollowSymLinks <span class="nb">DirectoryIndex</span> index.cgi index.html <span class="nb">AllowOverride</span> <span class="k">All</span> <span class="nt"></Directory></span> </pre></div> </div> <p>These instructions allow Apache to run .cgi files found within the Bugzilla directory; instructs the server to look for a file called <code class="file docutils literal"><span class="pre">index.cgi</span></code> or, if not found, <code class="file docutils literal"><span class="pre">index.html</span></code> if someone only types the directory name into the browser; and allows Bugzilla's <code class="file docutils literal"><span class="pre">.htaccess</span></code> files to override some global permissions.</p> <p>On some Linux distributions you will need to enable the Apache CGI module. On Debian/Ubuntu, this is done with:</p> <p><strong class="command">sudo a2enmod cgi</strong></p> <p>If you find that the webserver is returning the Perl code as text rather than executing it, then this is the problem.</p> </div> <div class="section" id="apache-with-mod-perl"> <span id="apache-mod-perl"></span><h2>3.5.1.3. Apache with mod_perl<a class="headerlink" href="#apache-with-mod-perl" title="Permalink to this headline">¶</a></h2> <p>Some configuration is required to make Bugzilla work with Apache and mod_perl.</p> <div class="admonition note"> <p class="first admonition-title">Note</p> <p class="last">It is not known whether anyone has even tried mod_perl on Mac OS X.</p> </div> <ol class="arabic"> <li><p class="first">Edit the Apache configuration file (see above).</p> </li> <li><p class="first">Add the following information, substituting where appropriate with your own local paths.</p> <div class="highlight-apache"><div class="highlight"><pre><span></span><span class="nb">PerlSwitches</span> -w -T <span class="nb">PerlConfigRequire</span> <span class="sx">/var/www/html/bugzilla/mod_perl.pl</span> </pre></div> </div> <div class="admonition note"> <p class="first admonition-title">Note</p> <p class="last">This should be used instead of the <Directory> block shown above. This should also be above any other <code class="docutils literal"><span class="pre">mod_perl</span></code> directives within the <code class="file docutils literal"><span class="pre">httpd.conf</span></code> and the directives must be specified in the order above.</p> </div> <div class="admonition warning"> <p class="first admonition-title">Warning</p> <p class="last">You should also ensure that you have disabled <code class="docutils literal"><span class="pre">KeepAlive</span></code> support in your Apache install when utilizing Bugzilla under mod_perl or you may suffer a <a class="reference external" href="http://modperlbook.org/html/11-4-KeepAlive.html">performance penalty</a>.</p> </div> </li> </ol> <p>On restarting Apache, Bugzilla should now be running within the mod_perl environment.</p> <p>Please bear the following points in mind when considering using Bugzilla under mod_perl:</p> <ul class="simple"> <li>mod_perl support in Bugzilla can take up a HUGE amount of RAM - easily 30MB per httpd child. 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.</li> <li>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 <em>restart</em> the server (as in make sure it stops and starts again). You <em>can</em> change <code class="file docutils literal"><span class="pre">localconfig</span></code> and the <code class="file docutils literal"><span class="pre">params</span></code> file manually, if you want, because those are re-read every time you load a page.</li> <li>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 <em>won't</em> work.)</li> <li>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.</li> <li>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.</li> </ul> <hr class="docutils" /> <p>This documentation undoubtedly has bugs; if you find some, please file them <a class="reference external" href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla&component=Documentation">here</a>.</p> </div> </div> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <p class="logo"><a href="../index.html"> <img class="logo" src="../_static/bugzilla.png" alt="Logo"/> </a></p> <h3><a href="../index.html">Table Of Contents</a></h3> <ul> <li><a class="reference internal" href="#">3.5.1. Apache</a><ul> <li><a class="reference internal" href="#securing-apache">3.5.1.1. Securing Apache</a></li> <li><a class="reference internal" href="#apache-with-mod-cgi">3.5.1.2. Apache with mod_cgi</a></li> <li><a class="reference internal" href="#apache-with-mod-perl">3.5.1.3. Apache with mod_perl</a></li> </ul> </li> </ul> <h4>Previous topic</h4> <p class="topless"><a href="web_server.html" title="previous chapter">3.5. Web Server</a></p> <h4>Next topic</h4> <p class="topless"><a href="apache-windows.html" title="next chapter">3.5.2. Apache on Windows</a></p> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> <form class="search" action="../search.html" method="get"> <div><input type="text" name="q" /></div> <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="apache-windows.html" title="3.5.2. Apache on Windows" >next</a></li> <li class="right" > <a href="web_server.html" title="3.5. Web Server" >previous</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html">Bugzilla 5.0.4 documentation</a> »</li> <li class="nav-item nav-item-1"><a href="index.html" >3. Installation and Maintenance Guide</a> »</li> <li class="nav-item nav-item-2"><a href="web_server.html" >3.5. Web Server</a> »</li> </ul> </div> <div class="footer" role="contentinfo"> Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6. </div> </body> </html>