blob: 8aac7c0dd4fc3f434d943a4d6c8237d1de631431 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- $LastChangedRevision$ -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manualpage metafile="rpm.xml.meta">
<parentdocument href="./">Platform Specific Notes</parentdocument>
<title>Using Apache With RPM Based Systems (Redhat / CentOS / Fedora)</title>
<summary>
<p>While many distributions make Apache httpd available as operating system
supported packages, it can sometimes be desirable to install and use the
canonical version of Apache httpd on these systems, replacing the natively
provided versions of the packages.</p>
<p>While the Apache httpd project does not currently create binary RPMs
for the various distributions out there, it is easy to build your own
binary RPMs from the canonical Apache httpd tarball.</p>
<p>This document explains how to build, install, configure and run
Apache httpd 2.4 under Unix systems supporting the RPM packaging format.</p>
</summary>
<section id="creating">
<title>Creating a Source RPM</title>
<p>The Apache httpd source tarball can be converted into an SRPM as
follows:</p>
<example>
rpmbuild -ts httpd-2.4.x.tar.bz2
</example>
</section>
<section id="building">
<title>Building RPMs</title>
<p>RPMs can be built directly from the Apache httpd source tarballs using
the following command:</p>
<example>
rpmbuild -tb httpd-2.4.x.tar.bz2
</example>
<p>Corresponding "-devel" packages will be required to be installed on your
build system prior to building the RPMs, the <code>rpmbuild</code> command
will automatically calculate what RPMs are required and will list any
dependencies that are missing on your system. These "-devel" packages will
not be required after the build is completed, and can be safely removed.</p>
<p>If successful, the following RPMs will be created:</p>
<dl>
<dt>httpd-2.4.x-1.i686.rpm</dt>
<dd>The core server and basic module set.</dd>
<dt>httpd-debuginfo-2.4.x-1.i686.rpm</dt>
<dd>Debugging symbols for the server and all modules.</dd>
<dt>httpd-devel-2.4.x-1.i686.rpm</dt>
<dd>Headers and development files for the server.</dd>
<dt>httpd-manual-2.4.x-1.i686.rpm</dt>
<dd>The webserver manual.</dd>
<dt>httpd-tools-2.4.x-1.i686.rpm</dt>
<dd>Supporting tools for the webserver.</dd>
<dt>mod_authnz_ldap-2.4.x-1.i686.rpm</dt>
<dd><module>mod_ldap</module> and <module>mod_authnz_ldap</module>, with
corresponding dependency on openldap.</dd>
<dt>mod_lua-2.4.x-1.i686.rpm</dt>
<dd><module>mod_lua</module> module, with
corresponding dependency on lua.</dd>
<dt>mod_proxy_html-2.4.x-1.i686.rpm</dt>
<dd><module>mod_proxy_html</module> module, with
corresponding dependency on libxml2.</dd>
<dt>mod_socache_dc-2.4.x-1.i686.rpm</dt>
<dd><module>mod_socache_dc</module> module, with
corresponding dependency on distcache.</dd>
<dt>mod_ssl-2.4.x-1.i686.rpm</dt>
<dd><module>mod_ssl</module> module, with
corresponding dependency on openssl.</dd>
</dl>
</section>
<section id="installing">
<title>Installing the Server</title>
<p>The <code>httpd</code> RPM is the only RPM necessary to get a basic
server to run. Install it as follows:</p>
<example>
rpm -U httpd-2.4.x-1.i686.rpm
</example>
<p>Self contained modules are included with the server. Modules that
depend on external libraries are provided as separate RPMs to install
if needed.</p>
</section>
<section id="default">
<title>Configuring the Default Instance of Apache httpd</title>
<p>The default configuration for the server is installed by default
beneath the <code>/etc/httpd</code> directory, with logs written by
default to <code>/var/log/httpd</code>. The environment for the
webserver is set by default within the optional
<code>/etc/sysconfig/httpd</code> file.</p>
<p>Start the server as follows:</p>
<example>
service httpd restart
</example>
</section>
<section id="additional">
<title>Configuring Additional Instances of Apache httpd on the Same Machine</title>
<p>It is possible to configure additional instances of the Apache
httpd server running independently alongside each other on the same
machine. These instances can have independent configurations, and
can potentially run as separate users if so configured.</p>
<p>This was done by making the httpd startup script aware of its own
name. This name is then used to find the environment file for the
server, and in turn, the server root of the server instance.</p>
<p>To create an additional instance called
<code>httpd-additional</code>, follow these steps:</p>
<ul>
<li>Create a symbolic link to the startup script for the additional
server:
<example>
ln -s /etc/rc.d/init.d/httpd /etc/rc.d/init.d/httpd-additional<br />
chkconfig --add httpd-additional
</example>
</li>
<li>Create an environment file for the server, using the
<code>/etc/sysconfig/httpd</code> file as a template:
<example>
# template from httpd<br />
cp /etc/sysconfig/httpd /etc/sysconfig/httpd-additional
</example>
<example>
# blank template<br />
touch /etc/sysconfig/httpd-additional
</example>
Edit <code>/etc/sysconfig/httpd-additional</code> and pass the
server root of the new server instance within the
<code>OPTIONS</code> environment variable.
<example>
OPTIONS="-d /etc/httpd-additional -f conf/httpd-additional.conf"
</example>
</li>
<li>Edit the server configuration file
<code>/etc/httpd-additional/conf/httpd-additional.conf</code> to
ensure the correct ports and paths are configured.
</li>
<li>Start the server as follows:
<example>
service httpd-additional restart
</example>
</li>
<li>Repeat this process as required for each server instance.</li>
</ul>
</section>
</manualpage>