source: server/major/apache.xml@ 5ad1120

11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since 5ad1120 was 5ad1120, checked in by Bruce Dubbs <bdubbs@…>, 16 months ago

Update to httpd-2.4.55.

  • Property mode set to 100644
File size: 17.2 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 "b6a8b9d8741db43cf5b4dd8e9bdb0ce7">
11 <!ENTITY apache-size "7.1 MB">
12 <!ENTITY apache-buildsize "87 MB">
13 <!ENTITY apache-time "0.3 SBU (Using parallelism=4)">
14]>
15
16<sect1 id="apache" xreflabel="Apache-&apache-version;">
17 <?dbhtml filename="apache.html"?>
18
19
20 <title>Apache-&apache-version;</title>
21
22 <indexterm zone="apache">
23 <primary sortas="a-Apache">Apache</primary>
24 </indexterm>
25
26 <sect2 role="package">
27 <title>Introduction to Apache HTTPD</title>
28
29 <para>
30 The <application>Apache HTTPD</application> package contains an open-source HTTP
31 server. It is useful for creating local intranet web sites or running huge
32 web serving operations.
33 </para>
34
35 &lfs112_checked;
36
37 <bridgehead renderas="sect3">Package Information</bridgehead>
38 <itemizedlist spacing="compact">
39 <listitem>
40 <para>
41 Download (HTTP): <ulink url="&apache-download-http;"/>
42 </para>
43 </listitem>
44 <listitem>
45 <para>
46 Download (FTP): <ulink url="&apache-download-ftp;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download MD5 sum: &apache-md5sum;
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download size: &apache-size;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Estimated disk space required: &apache-buildsize;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated build time: &apache-time;
67 </para>
68 </listitem>
69 </itemizedlist>
70
71 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
72 <itemizedlist spacing="compact">
73 <listitem>
74 <para>
75 Required patch:
76 <ulink url="&patch-root;/httpd-&apache-version;-blfs_layout-1.patch"/>
77 </para>
78 </listitem>
79 </itemizedlist>
80
81 <bridgehead renderas="sect3">Apache HTTPD Dependencies</bridgehead>
82
83 <bridgehead renderas="sect4">Required</bridgehead>
84 <para role="required">
85 <xref linkend="apr-util"/> and
86 <xref linkend="pcre2"/>
87 </para>
88
89 <bridgehead renderas="sect4">Optional</bridgehead>
90 <para role="optional">
91 <xref linkend="brotli"/>,
92 <xref linkend="db"/>,
93 <xref linkend="doxygen"/>,
94 <xref linkend="libxml2"/>,
95 <xref linkend="lua"/>,
96 <xref linkend="lynx"/> or
97 <xref linkend="Links"/> or
98 <ulink url="&elinks-url;">ELinks</ulink>,
99 <xref linkend="nghttp2"/>,
100 <xref linkend="openldap"/> (<xref linkend="apr-util"/> needs to be
101 installed with ldap support),
102 <xref linkend="rsync"/>, and
103 <ulink url="https://sourceforge.net/projects/distcache">Distcache</ulink>
104 </para>
105
106 <para condition="html" role="usernotes">
107 User Notes: <ulink url="&blfs-wiki;/apache"/>
108 </para>
109 </sect2>
110
111 <sect2 role="installation">
112 <title>Installation of Apache HTTPD</title>
113
114 <para>
115 For security reasons, running the server as an unprivileged user and group
116 is strongly encouraged. Create the following group and user using the
117 following commands as <systemitem class="username">root</systemitem>:
118 </para>
119
120<screen role="root"><userinput>groupadd -g 25 apache &amp;&amp;
121useradd -c "Apache Server" -d /srv/www -g apache \
122 -s /bin/false -u 25 apache</userinput></screen>
123
124 <para>
125 Build and install <application>Apache HTTPD</application> by running the
126 following commands:
127 </para>
128
129<screen><userinput>patch -Np1 -i ../httpd-&apache-version;-blfs_layout-3.patch &amp;&amp;
130
131sed '/dir.*CFG_PREFIX/s@^@#@' -i support/apxs.in &amp;&amp;
132
133./configure --enable-authnz-fcgi \
134 --enable-layout=BLFS \
135 --enable-mods-shared="all cgi" \
136 --enable-mpms-shared=all \
137 --enable-suexec=shared \
138 --with-apr=/usr/bin/apr-1-config \
139 --with-apr-util=/usr/bin/apu-1-config \
140 --with-suexec-bin=/usr/lib/httpd/suexec \
141 --with-suexec-caller=apache \
142 --with-suexec-docroot=/srv/www \
143 --with-suexec-logfile=/var/log/httpd/suexec.log \
144 --with-suexec-uidmin=100 \
145 --with-suexec-userdir=public_html &amp;&amp;
146make</userinput></screen>
147
148 <para>
149 This package does not come with a test suite.
150 </para>
151
152 <para>
153 Now, as the <systemitem class="username">root</systemitem> user:
154 </para>
155<!-- changing the patch allows doing DESTDIR install as a normal user
156 <note>
157 <para>
158 This package does not install properly using <envar>DESTDIR</envar>
159 techniques as an unpriviledged user.
160 </para>
161 </note>
162-->
163<screen role="root"><userinput>make install &amp;&amp;
164
165mv -v /usr/sbin/suexec /usr/lib/httpd/suexec &amp;&amp;
166chgrp apache /usr/lib/httpd/suexec &amp;&amp;
167chmod 4754 /usr/lib/httpd/suexec &amp;&amp;
168
169chown -v -R apache:apache /srv/www</userinput></screen>
170
171 </sect2>
172
173 <sect2 role="commands">
174 <title>Command Explanations</title>
175
176 <para>
177 <command>sed '/dir.*CFG_PREFIX/s@^@#@'...</command>: Forces the
178 <application>apxs</application> utility to use absolute pathnames for
179 modules, when instructed to do so.
180 </para>
181
182 <para>
183 <parameter>--enable-authnz-fcgi</parameter>: Build FastCGI
184 authorizer-based authentication and authorization (mod_authnz_fcgi.so
185 fast CGI module).
186 </para>
187
188 <para>
189 <parameter>--enable-mods-shared="all cgi"</parameter>: The modules should be
190 compiled and used as Dynamic Shared Objects (DSOs) so they can be included
191 and excluded from the server using the run-time configuration directives.
192 </para>
193
194 <para>
195 <parameter>--enable-mpms-shared=all</parameter>: This switch ensures that
196 all MPM (Multi Processing Modules) are built as Dynamic Shared Objects
197 (DSOs), so the user can choose which one to use at runtime.
198 </para>
199
200 <para>
201 <parameter>--enable-suexec</parameter>: This switch enables building of the
202 <application>Apache</application> suEXEC module which can be used to allow
203 users to run CGI and SSI scripts under user IDs different from the user ID
204 of the calling web server.
205 </para>
206
207 <para>
208 <parameter>--with-suexec-*</parameter>: These switches control suEXEC module
209 behavior, such as default document root, minimal UID that can be used to
210 run the script under the suEXEC. Please note that with minimal UID 100, you
211 can't run CGI or SSI scripts under suEXEC as the
212 <systemitem class="username">apache</systemitem> user.
213 </para>
214
215 <para>
216 <command>... /usr/lib/httpd/suexec</command>: These commands put
217 <command>suexec</command> wrapper into proper location, since it
218 is not meant to be run directly. They also adjust proper
219 permissions of the binary, making it setgid
220 <systemitem class="username">apache</systemitem>.
221 </para>
222
223 <para>
224 <command>chown -R apache:apache /srv/www</command>: By default, the
225 installation process installs files (documentation, error messages,
226 default icons, etc.) with the ownership of the user that extracted the
227 files from the tar file. If you want to change the ownership to another
228 user, you should do so at this point. The only requirement is that the
229 document directories need to be accessible by the <command>httpd</command>
230 process with (r-x) permissions and files need to be readable (r--) by the
231 <systemitem class="username">apache</systemitem> user.
232 </para>
233
234 </sect2>
235
236 <sect2 role="configuration">
237 <title>Configuring Apache</title>
238
239 <sect3 id="apache-config">
240 <title>Config Files</title>
241
242 <para>
243 <filename>/etc/httpd/httpd.conf</filename> and
244 <filename>/etc/httpd/extra/*</filename>
245 </para>
246
247 <indexterm zone="apache apache-config">
248 <primary sortas="e-etc-httpd-httpd.conf">/etc/httpd/httpd.conf</primary>
249 </indexterm>
250
251 <indexterm zone="apache apache-config">
252 <primary sortas="e-etc-httpd-extra-star">/etc/httpd/extra/*</primary>
253 </indexterm>
254
255 </sect3>
256
257 <sect3>
258 <title>Configuration Information</title>
259
260 <para>
261 See <ulink url="file:///usr/share/httpd/manual/configuring.html"/>
262 for detailed instructions on customising your
263 <application>Apache</application> HTTP server configuration file.
264 </para>
265
266 </sect3>
267
268 <sect3 id="httpd-init">
269 <title><phrase revision="sysv">Boot Script</phrase>
270 <phrase revision="systemd">Systemd Unit</phrase></title>
271
272 <para>
273 If you want the <application>Apache</application> server to
274 start automatically when the system is booted, install the
275 <phrase revision="sysv"><filename>/etc/rc.d/init.d/httpd</filename>
276 init script</phrase>
277 <phrase revision="systemd"><filename>httpd.service</filename>
278 unit</phrase> included in the
279 <xref linkend="bootscripts" revision="sysv"/>
280 <xref linkend="systemd-units" revision="systemd"/> package:
281 </para>
282
283 <indexterm zone="apache httpd-init">
284 <primary sortas="f-apache">apache</primary>
285 </indexterm>
286
287<screen role="root"><userinput>make install-httpd</userinput></screen>
288
289 </sect3>
290
291 </sect2>
292
293 <sect2 role="content">
294 <title>Contents</title>
295
296 <segmentedlist>
297 <segtitle>Installed Programs</segtitle>
298 <segtitle>Installed Libraries</segtitle>
299 <segtitle>Installed Directories</segtitle>
300
301 <seglistitem>
302 <seg>
303 ab, apachectl, apxs, checkgid, dbmmanage, fcgistarter,
304 htcacheclean, htdbm, htdigest, htpasswd, httpd,
305 httxt2dbm, logresolve, and rotatelogs
306 <!-- not executable from path, 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.