source: server/major/apache.xml@ 3e30e1b

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 3e30e1b was 3e30e1b, checked in by Douglas R. Reno <renodr@…>, 8 years ago

URL and Typo Fixes
(systemd) Dependency Updates

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@17638 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 17.1 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY apache-download-http
8 "https://archive.apache.org/dist/httpd/httpd-&apache-version;.tar.bz2">
9 <!ENTITY apache-download-ftp " ">
10 <!ENTITY apache-md5sum "04f19c60e810c028f5240a062668a688">
11 <!ENTITY apache-size "6.1 MB">
12 <!ENTITY apache-buildsize "81 MB">
13 <!ENTITY apache-time "0.7 SBU">
14]>
15
16<sect1 id="apache" xreflabel="Apache-&apache-version;">
17 <?dbhtml filename="apache.html"?>
18
19 <sect1info>
20 <othername>$LastChangedBy$</othername>
21 <date>$Date$</date>
22 </sect1info>
23
24 <title>Apache-&apache-version;</title>
25
26 <indexterm zone="apache">
27 <primary sortas="a-Apache">Apache</primary>
28 </indexterm>
29
30 <sect2 role="package">
31 <title>Introduction to Apache HTTPD</title>
32
33 <para>
34 The <application>Apache HTTPD</application> package contains an open-source HTTP
35 server. It is useful for creating local intranet web sites or running huge
36 web serving operations.
37 </para>
38
39 &lfs79_checked;&gcc6_checked;
40
41 <bridgehead renderas="sect3">Package Information</bridgehead>
42 <itemizedlist spacing="compact">
43 <listitem>
44 <para>
45 Download (HTTP): <ulink url="&apache-download-http;"/>
46 </para>
47 </listitem>
48 <listitem>
49 <para>
50 Download (FTP): <ulink url="&apache-download-ftp;"/>
51 </para>
52 </listitem>
53 <listitem>
54 <para>
55 Download MD5 sum: &apache-md5sum;
56 </para>
57 </listitem>
58 <listitem>
59 <para>
60 Download size: &apache-size;
61 </para>
62 </listitem>
63 <listitem>
64 <para>
65 Estimated disk space required: &apache-buildsize;
66 </para>
67 </listitem>
68 <listitem>
69 <para>
70 Estimated build time: &apache-time;
71 </para>
72 </listitem>
73 </itemizedlist>
74
75 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
76 <itemizedlist spacing="compact">
77 <listitem>
78 <para>
79 Required patch:
80 <ulink url="&patch-root;/httpd-&apache-version;-blfs_layout-1.patch"/>
81 </para>
82 </listitem>
83 </itemizedlist>
84
85 <bridgehead renderas="sect3">Apache HTTPD Dependencies</bridgehead>
86
87 <bridgehead renderas="sect4">Required</bridgehead>
88 <para role="required">
89 <xref linkend="apr-util"/> and
90 <xref linkend="pcre"/>
91 </para>
92
93 <bridgehead renderas="sect4">Recommended</bridgehead>
94 <para role="recommended">
95 <xref linkend="openssl"/>
96 </para>
97
98 <bridgehead renderas="sect4">Optional</bridgehead>
99 <para role="optional">
100 <xref linkend="db"/>,
101 <xref linkend="doxygen"/>,
102 <xref linkend="libxml2"/>,
103 <xref linkend="lynx"/> or
104 <xref linkend="Links"/> or
105 <ulink url="http://elinks.or.cz/">ELinks</ulink>,
106 <xref linkend="openldap"/> (<xref linkend="apr-util"/> needs to be
107 installed with ldap suport),
108 <xref linkend="rsync"/>,
109 <ulink url="https://sourceforge.net/projects/distcache">Distcache</ulink>, and
110 <xref linkend="lua"/>
111 </para>
112
113 <para condition="html" role="usernotes">
114 User Notes: <ulink url="&blfs-wiki;/apache"/>
115 </para>
116 </sect2>
117
118 <sect2 role="installation">
119 <title>Installation of Apache HTTPD</title>
120
121 <para>
122 For security reasons, running the server as an unprivileged user and group
123 is strongly encouraged. Create the following group and user using the
124 following commands as <systemitem class="username">root</systemitem>:
125 </para>
126
127<screen role="root"><userinput>groupadd -g 25 apache &amp;&amp;
128useradd -c "Apache Server" -d /srv/www -g apache \
129 -s /bin/false -u 25 apache</userinput></screen>
130
131 <para>
132 Build and install <application>Apache HTTPD</application> by running the
133 following commands:
134 </para>
135
136<screen><userinput>patch -Np1 -i ../httpd-&apache-version;-blfs_layout-1.patch &amp;&amp;
137
138sed '/dir.*CFG_PREFIX/s@^@#@' -i support/apxs.in &amp;&amp;
139
140./configure --enable-authnz-fcgi \
141 --enable-layout=BLFS \
142 --enable-mods-shared="all cgi" \
143 --enable-mpms-shared=all \
144 --enable-suexec=shared \
145 --with-apr=/usr/bin/apr-1-config \
146 --with-apr-util=/usr/bin/apu-1-config \
147 --with-suexec-bin=/usr/lib/httpd/suexec \
148 --with-suexec-caller=apache \
149 --with-suexec-docroot=/srv/www \
150 --with-suexec-logfile=/var/log/httpd/suexec.log \
151 --with-suexec-uidmin=100 \
152 --with-suexec-userdir=public_html &amp;&amp;
153make</userinput></screen>
154
155 <para>
156 This package does not come with a test suite.
157 </para>
158
159 <para>
160 Now, as the <systemitem class="username">root</systemitem> user
161 (notice that DESTDIR does not work properly as unpriviledged user):
162 </para>
163
164<screen role="root"><userinput>make install &amp;&amp;
165
166mv -v /usr/sbin/suexec /usr/lib/httpd/suexec &amp;&amp;
167chgrp apache /usr/lib/httpd/suexec &amp;&amp;
168chmod 4754 /usr/lib/httpd/suexec &amp;&amp;
169
170chown -v -R apache:apache /srv/www</userinput></screen>
171
172 </sect2>
173
174 <sect2 role="commands">
175 <title>Command Explanations</title>
176
177 <para>
178 <command>sed '/dir.*CFG_PREFIX/s@^@#@'...</command>: Forces the
179 <application>apxs</application> utility to use absolute pathnames for
180 modules, when instructed to do so.
181 </para>
182
183 <para>
184 <parameter>--enable-authnz-fcgi</parameter>: Build FastCGI
185 authorizer-based authentication and authorization (mod_authnz_fcgi.so
186 fast CGI module).
187 </para>
188
189 <para>
190 <parameter>--enable-mods-shared="all cgi"</parameter>: The modules should be
191 compiled and used as Dynamic Shared Objects (DSOs) so they can be included
192 and excluded from the server using the run-time configuration directives.
193 </para>
194
195 <para>
196 <parameter>--enable-mpm-shared=all</parameter>: This switch ensures that all
197 MPM (Multi Processing Modules) are built as Dynamic Shared Objects (DSOs),
198 so the user can choose which one to use at runtime.
199 </para>
200
201 <para>
202 <parameter>--enable-suexec</parameter>: This switch enables building of the
203 <application>Apache</application> suEXEC module which can be used to allow
204 users to run CGI and SSI scripts under user IDs different from the user ID
205 of the calling web server.
206 </para>
207
208 <para>
209 <parameter>--with-suexec-*</parameter>: These switches control suEXEC module
210 behavior, such as default document root, minimal UID that can be used to
211 run the script under the suEXEC. Please note that with minimal UID 100, you
212 can't run CGI or SSI scripts under suEXEC as the
213 <systemitem class="username">apache</systemitem> user.
214 </para>
215
216 <para>
217 <command>... /usr/lib/httpd/suexec</command>: These commands put
218 <command>suexec</command> wrapper into proper location, since it
219 is not meant to be run directly. They also adjust proper
220 permissions of the binary, making it setgid
221 <systemitem class="username">apache</systemitem>.
222 </para>
223
224 <para>
225 <command>chown -R apache:apache /srv/www</command>: By default, the
226 installation process installs files (documentation, error messages,
227 default icons, etc.) with the ownership of the user that extracted the
228 files from the tar file. If you want to change the ownership to another
229 user, you should do so at this point. The only requirement is that the
230 document directories need to be accessible by the <command>httpd</command>
231 process with (r-x) permissions and files need to be readable (r--) by the
232 <systemitem class="username">apache</systemitem> user.
233 </para>
234
235 </sect2>
236
237 <sect2 role="configuration">
238 <title>Configuring Apache</title>
239
240 <sect3 id="apache-config">
241 <title>Config Files</title>
242
243 <para>
244 <filename>/etc/httpd/httpd.conf</filename> and
245 <filename>/etc/httpd/extra/*</filename>
246 </para>
247
248 <indexterm zone="apache apache-config">
249 <primary sortas="e-etc-httpd-httpd.conf">/etc/httpd/httpd.conf</primary>
250 </indexterm>
251
252 <indexterm zone="apache apache-config">
253 <primary sortas="e-etc-httpd-extra-star">/etc/httpd/extra/*</primary>
254 </indexterm>
255
256 </sect3>
257
258 <sect3>
259 <title>Configuration Information</title>
260
261 <para>
262 See <ulink url="file:///usr/share/httpd/manual/configuring.html"/>
263 for detailed instructions on customising your
264 <application>Apache</application> HTTP server configuration file.
265 </para>
266
267 </sect3>
268
269 <sect3 id="httpd-init">
270 <title><phrase revision="sysv">Boot Script</phrase>
271 <phrase revision="systemd">Systemd Unit</phrase></title>
272
273 <para>
274 If you want the <application>Apache</application> server to
275 start automatically when the system is booted, install the
276 <phrase revision="sysv"><filename>/etc/rc.d/init.d/httpd</filename>
277 init script</phrase>
278 <phrase revision="systemd"><filename>httpd.service</filename>
279 unit</phrase> included in the
280 <xref linkend="bootscripts" revision="sysv"/>
281 <xref linkend="systemd-units" revision="systemd"/> package.
282 </para>
283
284 <indexterm zone="apache httpd-init">
285 <primary sortas="f-apache">apache</primary>
286 </indexterm>
287
288<screen role="root"><userinput>make install-httpd</userinput></screen>
289
290 </sect3>
291
292 </sect2>
293
294 <sect2 role="content">
295 <title>Contents</title>
296
297 <segmentedlist>
298 <segtitle>Installed Programs</segtitle>
299 <segtitle>Installed Libraries</segtitle>
300 <segtitle>Installed Directories</segtitle>
301
302 <seglistitem>
303 <seg>
304 ab, apachectl, apxs, checkgid, dbmmanage, fcgistarter,
305 htcacheclean, htdbm, htdigest, htpasswd, httpd,
306 httxt2dbm, logresolve, rotatelogs, and suexec
307 </seg>
308 <seg>
309 Several libraries under /usr/lib/httpd/modules/
310 </seg>
311 <seg>
312 /etc/httpd,
313 /srv/www,
314 /usr/include/httpd,
315 /usr/lib/httpd,
316 /usr/share/httpd,
317 /var/log/httpd, and
318 /var/run/httpd
319 </seg>
320 </seglistitem>
321 </segmentedlist>
322
323 <variablelist>
324 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
325 <?dbfo list-presentation="list"?>
326 <?dbhtml list-presentation="table"?>
327
328 <varlistentry id="ab">
329 <term><command>ab</command></term>
330 <listitem>
331 <para>
332 is a tool for benchmarking your <application>Apache</application>
333 HTTP server.
334 </para>
335 <indexterm zone="apache ab">
336 <primary sortas="b-ab">ab</primary>
337 </indexterm>
338 </listitem>
339 </varlistentry>
340
341 <varlistentry id="apachectl">
342 <term><command>apachectl</command></term>
343 <listitem>
344 <para>
345 is a front end to the <application>Apache</application> HTTP server
346 which is designed to help the administrator control the functioning
347 of the <application>Apache</application> httpd daemon.
348 </para>
349 <indexterm zone="apache apachectl">
350 <primary sortas="b-apachectl">apachectl</primary>
351 </indexterm>
352 </listitem>
353 </varlistentry>
354
355 <varlistentry id="apxs">
356 <term><command>apxs</command></term>
357 <listitem>
358 <para>
359 is a tool for building and installing extension modules for the
360 <application>Apache</application> HTTP server.
361 </para>
362 <indexterm zone="apache apxs">
363 <primary sortas="b-apxs">apxs</primary>
364 </indexterm>
365 </listitem>
366 </varlistentry>
367
368 <varlistentry id="checkgid">
369 <term><command>checkgid</command></term>
370 <listitem>
371 <para>
372 is a program that checks whether it can setgid to the group
373 specified. This is to see if it is a valid group for Apache2 to use
374 at runtime. If the user (should be run as superuser) is in that
375 group, or can setgid to it, it will return 0.
376 </para>
377 <indexterm zone="apache checkgid">
378 <primary sortas="b-checkgid">checkgid</primary>
379 </indexterm>
380 </listitem>
381 </varlistentry>
382
383 <varlistentry id="dbmmanage">
384 <term><command>dbmmanage</command></term>
385 <listitem>
386 <para>
387 is used to create and update the DBM format files used to store
388 usernames and passwords for basic authentication of HTTP users.
389 </para>
390 <indexterm zone="apache dbmmanage">
391 <primary sortas="b-dbmmanage">dbmmanage</primary>
392 </indexterm>
393 </listitem>
394 </varlistentry>
395
396 <varlistentry id="fcgistarter">
397 <term><command>fcgistarter</command></term>
398 <listitem>
399 <para>
400 is a tool to start a FastCGI program.
401 </para>
402 <indexterm zone="apache fcgistarter">
403 <primary sortas="b-fcgistarter">fcgistarter</primary>
404 </indexterm>
405 </listitem>
406 </varlistentry>
407
408 <varlistentry id="htcacheclean">
409 <term><command>htcacheclean</command></term>
410 <listitem>
411 <para>
412 is used to clean up the disk cache.
413 </para>
414 <indexterm zone="apache htcacheclean">
415 <primary sortas="b-htcacheclean">htcacheclean</primary>
416 </indexterm>
417 </listitem>
418 </varlistentry>
419
420 <varlistentry id="htdbm">
421 <term><command>htdbm</command></term>
422 <listitem>
423 <para>
424 is used to manipulate the DBM password databases.
425 </para>
426 <indexterm zone="apache htdbm">
427 <primary sortas="b-htdbm">htdbm</primary>
428 </indexterm>
429 </listitem>
430 </varlistentry>
431
432 <varlistentry id="htdigest">
433 <term><command>htdigest</command></term>
434 <listitem>
435 <para>
436 is used to create and update the flat-files used to store usernames,
437 realms and passwords for digest authentication of HTTP users.
438 </para>
439 <indexterm zone="apache htdigest">
440 <primary sortas="b-htdigest">htdigest</primary>
441 </indexterm>
442 </listitem>
443 </varlistentry>
444
445 <varlistentry id="htpasswd">
446 <term><command>htpasswd</command></term>
447 <listitem>
448 <para>
449 is used to create and update the flat-files used to store usernames
450 and passwords for basic authentication of HTTP users.
451 </para>
452 <indexterm zone="apache htpasswd">
453 <primary sortas="b-htpasswd">htpasswd</primary>
454 </indexterm>
455 </listitem>
456 </varlistentry>
457
458 <varlistentry id="httpd">
459 <term><command>httpd</command></term>
460 <listitem>
461 <para>
462 is the <application>Apache</application> HTTP server program.
463 </para>
464 <indexterm zone="apache httpd">
465 <primary sortas="b-httpd">httpd</primary>
466 </indexterm>
467 </listitem>
468 </varlistentry>
469
470 <varlistentry id="httxt2dbm">
471 <term><command>httxt2dbm</command></term>
472 <listitem>
473 <para>
474 is used to generate DBM files from text, for use in RewriteMap.
475 </para>
476 <indexterm zone="apache httxt2dbm">
477 <primary sortas="b-httxt2dbm">httxt2dbm</primary>
478 </indexterm>
479 </listitem>
480 </varlistentry>
481
482 <varlistentry id="logresolve">
483 <term><command>logresolve</command></term>
484 <listitem>
485 <para>
486 is a post-processing program to resolve IP-addresses in
487 <application>Apache</application>'s access log files.
488 </para>
489 <indexterm zone="apache logresolve">
490 <primary sortas="b-logresolve">logresolve</primary>
491 </indexterm>
492 </listitem>
493 </varlistentry>
494
495 <varlistentry id="rotatelogs">
496 <term><command>rotatelogs</command></term>
497 <listitem>
498 <para>
499 is a simple program for use in conjunction with
500 <application>Apache</application>'s piped log file feature.
501 </para>
502 <indexterm zone="apache rotatelogs">
503 <primary sortas="b-rotatelogs">rotatelogs</primary>
504 </indexterm>
505 </listitem>
506 </varlistentry>
507
508 <varlistentry id="suexec">
509 <term><command>suexec</command></term>
510 <listitem>
511 <para>
512 allows users to run CGI and SSI applications as a different user.
513 </para>
514 <indexterm zone="apache suexec">
515 <primary sortas="b-suexec">suexec</primary>
516 </indexterm>
517 </listitem>
518 </varlistentry>
519
520 </variablelist>
521
522 </sect2>
523
524</sect1>
Note: See TracBrowser for help on using the repository browser.