Apache-2.4.62

Introduksjon til Apache HTTPD

Apache HTTPD pakken inneholder en åpen kildekode HTTP server. Det er nyttig for å lage lokale intranett nettsteder eller kjøre store nettserveringsoperasjoner.

[Notat]

Notat

Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.

Pakkeinformasjon

Ytterligere Nedlastinger

Apache HTTPD Avhengigheter

Påkrevd

Apr-Util-1.6.3 og pcre2-10.44

Valgfri

Brotli-1.1.0, Doxygen-1.12.0, jansson-2.14, libxml2-2.13.5, Lua-5.4.7, Lynx-2.9.2 eller Links-2.30 eller ELinks, nghttp2-1.64.0, OpenLDAP-2.6.8 (Apr-Util-1.6.3 må være installert med ldap støtte), rsync-3.3.0, Berkeley DB (deprecated), og Distcache

Installasjon av Apache HTTPD

Av sikkerhetsgrunner, å kjøre serveren som en uprivilegert bruker og gruppe oppfordres sterkt. Opprett følgende gruppe og bruker ved å bruke følgende kommandoer som root:

groupadd -g 25 apache &&
useradd -c "Apache Server" -d /srv/www -g apache \
        -s /bin/false -u 25 apache

Bygg og installer Apache HTTPD ved å kjøre følgende kommandoer:

patch -Np1 -i ../httpd-2.4.62-blfs_layout-1.patch             &&

sed '/dir.*CFG_PREFIX/s@^@#@' -i support/apxs.in              &&

sed -e '/HTTPD_ROOT/s:${ap_prefix}:/etc/httpd:'       \
    -e '/SERVER_CONFIG_FILE/s:${rel_sysconfdir}/::'   \
    -e '/AP_TYPES_CONFIG_FILE/s:${rel_sysconfdir}/::' \
    -i configure  &&

sed -e '/encoding.h/a # include <libxml/xmlstring.h>' \
    -i modules/filters/mod_xml2enc.c  &&

./configure --enable-authnz-fcgi                              \
            --enable-layout=BLFS                              \
            --enable-mods-shared="all cgi"                    \
            --enable-mpms-shared=all                          \
            --enable-suexec=shared                            \
            --with-apr=/usr/bin/apr-1-config                  \
            --with-apr-util=/usr/bin/apu-1-config             \
            --with-suexec-bin=/usr/lib/httpd/suexec           \
            --with-suexec-caller=apache                       \
            --with-suexec-docroot=/srv/www                    \
            --with-suexec-logfile=/var/log/httpd/suexec.log   \
            --with-suexec-uidmin=100                          \
            --with-suexec-userdir=public_html                 &&
make

Denne pakken kommer ikke med en testpakke.

Nå, som root bruker:

make install  &&

mv -v /usr/sbin/suexec /usr/lib/httpd/suexec &&
chgrp apache           /usr/lib/httpd/suexec &&
chmod 4754             /usr/lib/httpd/suexec &&

chown -v -R apache:apache /srv/www

Parameterforklaringer

sed '/dir.*CFG_PREFIX/s@^@#@'...: Tvinger apxs verktøyet til å bruke absolutte banenavn for moduler, når du blir bedt om det.

sed -e '/HTTPD_ROOT/s ...: Fikser noen stier.

sed -e '/encoding.h/a ...; Fikser bygging mot libxml-2.12.x.

--enable-authnz-fcgi: Bygg FastCGI autorisasjonsbasert autentisering og autorisasjon (mod_authnz_fcgi.so fast CGI-modul).

--enable-mods-shared="all cgi": Modulene bør bli kompilert og brukt som Dynamic Shared Objects (DSOer) slik at de kan inkluderes og ekskluderes fra serveren ved å bruke kjøretidskonfigurasjonsdirektivene.

--enable-mpms-shared=all: Denne bryteren sørger for at alle MPM (Multi Processing Modules) er bygget som dynamiske delte objekter (DSOer), slik at brukeren kan velge hvilken som skal brukes under kjøring.

--enable-suexec: Denne bryteren aktiverer byggingen av Apache suEXEC modulen som kan brukes til å tillate brukere til å kjøre CGI og SSI skript under andre brukere sine IDer enn bruker IDen av den anropende webserveren.

--with-suexec-*: Disse bryterne kontrollerer suEXEC modulen sin oppførsel, for eksempel standard dokumentrot, minimal UID som kan brukes til kjøre skriptet under suEXEC. Vær oppmerksom på at med minimal UID 100, kan du ikke kjøre CGI eller SSI skript under suEXEC som apache bruker.

... /usr/lib/httpd/suexec: Disse kommandoene setter suexec innpakning på riktig plassering, siden den ikke er ment å kjøres direkte. De justerer også skikkelige tillatelser til binæren, noe som gjør den setgid apache.

chown -R apache:apache /srv/www: Som standard, installasjonsprosessen installerer filer (dokumentasjon, feilmeldinger, standardikoner osv.) med eierskapet til brukeren som hentet ut filer fra tar filen. Hvis du ønsker å endre eierskapet til en annen bruker, bør du gjøre det på dette tidspunktet. Det eneste kravet er at dokumentmappen må være tilgjengelige for httpd prosessen med (r-x) tillatelser og filer må være lesbare (r--) av apache brukeren.

Konfigurere Apache

Konfigurasjonsfiler

/etc/httpd/httpd.conf og /etc/httpd/extra/*

Konfigurasjonsinformasjon

Se file:///usr/share/httpd/manual/configuring.html for detaljerte instruksjoner om å tilpasse din Apache HTTP serverkonfigurasjonsfil.

Det er ingen grunn, i det minste for nettsteder med internett, ikke å bruke SSL kryptering. Å sette opp et sikret nettsted koster ikke noe bortsett fra å installere et lite lite verktøy og noen få minutter med konfigurasjonsarbeid. Bruk denne retningslinjen på https://wiki.linuxfromscratch.org/blfs/wiki/Securing_a_website for å opprette verdensomfattende aksepterte sertifikater og forny dem regelmessig.

Oppstartsskript

Hvis du vil at Apache serveren skal starte automatisk når systemet startes opp, installer /etc/rc.d/init.d/httpd init skriptet inkludert i blfs-bootscripts-20240913 pakken:

make install-httpd

Innhold

Installerte Programmer: ab, apachectl, apxs, checkgid, dbmmanage, fcgistarter, htcacheclean, htdbm, htdigest, htpasswd, httpd, httxt2dbm, logresolve, og rotatelogs
Installerte Biblioteker: Flere biblioteker under /usr/lib/httpd/modules/
Installerte Mapper: /etc/httpd, /srv/www, /usr/include/httpd, /usr/lib/httpd, /usr/share/httpd, /var/log/httpd, og /var/run/httpd

Korte Beskrivelser

ab

er et verktøy for benchmarking av din Apache HTTP server

apachectl

er et grensesnitt til Apache HTTP serveren som er designet for å hjelpe administratoren med å kontrollere funksjonene til Apache httpd nissen

apxs

er et verktøy for å bygge og installere utvidelsesmoduler for Apache HTTP serveren

checkgid

er et program som sjekker om det kan setgid til gruppen spesifisert. Dette er for å se om det er en gyldig gruppe for Apache2 å bruke ved kjøretid. Hvis brukeren (skal kjøres som superbruker) er i den gruppen, eller kan setgid til den, vil den returnere 0

dbmmanage

brukes til å opprette og oppdatere DBM formatfilene som brukes til å lagre brukernavn og passord for grunnleggende autentisering av HTTP brukere

fcgistarter

er et verktøy for å starte et FastCGI program

htcacheclean

brukes til å rydde opp i diskhurtiglageret

htdbm

brukes til å manipulere DBM passorddatabasene

htdigest

brukes til å opprette og oppdatere flat-filene som brukes til å lagre brukernavn, domenene og passord for sammendragsgodkjenning av HTTP brukere

htpasswd

brukes til å opprette og oppdatere flat-filene som brukes til å lagre brukernavn og passord for grunnleggende autentisering av HTTP brukere

httpd

er Apache HTTP server program

httxt2dbm

brukes til å generere DBM filer fra tekst, for bruk i RewriteMap

logresolve

er et etterbehandlingsprogram for å løse IP-adresser i Apache sine tilgangs loggfiler

rotatelogs

er et enkelt program for bruk i forbindelse med Apache sin loggfilfunksjon

suexec

lar brukere kjøre CGI og SSI applikasjoner som en annen bruker