januar 22, 2022

Kompilering og installasjon Av Apache HTTPD fra kildekode

De Fleste Linux-distribusjoner gir en bestemt versjon Av Apache HTTPD binære pakker fra deres hovedlagre. Ulempen er at denne versjonen ofte ikke oppdateres til neste distribusjons store utgivelse.

for å dra nytte av funksjoner som bare er tilgjengelige fra en nyere versjon eller for å bygge tilpassede binærfiler, er kompilering og installasjon Av Apache HTTPD fra kildekoden grei.

denne opplæringen beskriver kompilering og installasjonstrinn Av Apache HTTPD under RPM-baserte (Fedora, CentOS, …) Og Deb-baserte (Debian, Ubuntu, …) Linux-distribusjoner. Den nyeste tilgjengelige versjonen (2.4.x) brukes.

Apache HTTPD kildekode

katalogen /usr/local/src/ brukes vanligvis for bygge-relaterte aktiviteter (krever root privilegier). Den brukes i denne opplæringen som byggekatalogen.

kildekoden Til Apache HTTPD er tilgjengelig som en tar-fil fra: http://httpd.apache.org/download.cgi.

følgende er trinnene for å laste ned og pakke ut kildekoden i build-katalogen (versjonsnumrene kan endres etter behov):

cd /usr/local/src/wget https://downloads.apache.org//httpd/httpd-2.4.43.tar.gztar -xzf httpd-2.4.43.tar.gzls -lcd httpd-2.4.43pwdls

Installasjon av byggeavhengigheter

kompileringen Av Apache HTTPD krever installasjon av utviklingsverktøyene (c compiler, linker, …) og noen ekstra biblioteker.

de nødvendige bibliotekene er:

  • apr
  • apr-util
  • openssl
  • expat
  • prce

De Fleste Linux-distribusjoner gir disse bibliotekene fra hovedlagrene. Hvis systemet inneholder en gammel versjon av et bibliotek, kan kildekoden lastes ned og kompileres separat. En senere del presenterer hvordan du laster ned og bygger kildekoden til bibliotekene apr og apr-util som en del Av Apache HTTPD kompileringsprosessen.

På RPM-baserte (Fedora, Centos, …) Linux-distribusjoner, kan bibliotekets utviklingspakker installeres ved hjelp av følgende kommandoer:

yum group install developmentyum install openssl-devel expat-devel pcre-devel apr-devel apr-util-devel

På Deb-baserte (Debian, Ubuntu, …) Linux-distribusjoner kan bibliotekets utviklingspakker installeres ved hjelp av følgende kommando:

apt install build-essential libssl-dev libexpat-dev libpcre2-dev libapr1-dev libaprutil1-dev

Byggkonfigurasjonsalternativer

etter nedlasting Av Apache HTTPD-kildekoden Og installasjonen av byggavhengighetene, kan byggkonfigurasjonsalternativene angis (kompilatoralternativer, installasjonsmappe, aktiver / deaktiver moduler,…).

Fordi Apache HTTPD bruker Autoconf build-systemet, gir Det et skript som heter configure for å angi byggekonfigurasjonsalternativene og generere Makefile-filene.

med mindre noen tilpasninger er nødvendig, kan standardene holdes. Standard er å kompilere de fleste modulene og sette installasjonsmappen til / usr / local / apache2/.

hvis du vil bruke standardinnstillingene, kalles konfigurasjonsskriptet uten argumenter:

cd /usr/local/src/httpd-2.4.43./configure

for å liste opp alle mulige alternativer, kalles skriptkonfigurasjonen med hjelp-argumentet:

cd /usr/local/src/httpd-2.4.43./configure --help

følgende avsnitt presentere noen nyttige bygge konfigurasjonsalternativer.

installasjonsmappe: – prefiks alternativ

installasjonsmappen er forskjellig fra byggemappen. Det er der de resulterende binærfiler og konfigurasjonsfiler vil bli plassert når kompileringen lykkes og kommandoen make install utføres (presentert i installasjonsdelen).

alternativet-prefiks brukes til å velge en annen installasjonsbane. Dette alternativet er nyttig hvis Vi trenger å bygge og installere Forskjellige versjoner Av Apache HTTPD.

følgende eksempel viser hvordan du setter installasjonsmappen til /opt/apache-2.4.43/:

cd /usr/local/src/httpd-2.4.43./configure --prefix=/opt/apache-2.4.43/

slik aktiverer/deaktiverer du en modul: – enable-MODULE/ – disable-MODULE

De Fleste Apache HTTPD-modulene er bygget som standard som dynamiske biblioteker. Alternativet-enable-MODUL kan brukes til å aktivere en modul eller endre byggetypen fra dynamisk til statisk. Alternativet-disable-MODULE brukes til å deaktivere en modul fra å bli bygget. MODULEN er erstattet av selve modulnavnet.

følgende eksempel viser å bygge modulen omskrive som et statisk bibliotek:

cd /usr/local/src/httpd-2.4.43./configure --enable-rewrite=static

Kompilatoralternativer

når det er nødvendig, sendes kompilatoralternativer til konfigurasjonsskriptet som miljøvariabler.

variablene er oppsummert i følgende tabell:

CC Brukes til å velge kommandoen c compiler. Det er standard til cc (GNU compiler), men clang er et alternativ for
CFLAGS Brukes til å passere c-kompilatorflagg
LDFLAGS Brukes til å passere linker flagg
LIBS brukes til å sende biblioteker til linker
CPPFLAGS Brukes til å passere (Objektiv) c/C++ preprosessor flagg
CPP Brukes til å passere c preprosessorparametere

følgende eksempel viser hvordan du sender et optimaliseringsflagg Til c-kompilatoren:

cd /usr/local/src/httpd-2.4.43export CFLAGS=-o2./configure

Kompilering og installasjon

etter utførelsen av configure-skriptet for å angi byggekonfigurasjonsalternativene og generere Makefile-filene, startes kompileringsprosessen med kommandoen make.

følgende eksempel viser hvordan du starter kompileringsprosessen:

cd /usr/local/src/httpd-2.4.43./configuremake

etter at kompileringen lykkes, kan installasjonen i installasjonsmappen startes med følgende kommando:

make install

installasjonen plasserer alle nødvendige binærfiler og konfigurasjonsfiler i installasjonsmappen /usr / local / apache2. De kjørbare filene er plassert i / usr / local / apache2 / bin/. Konfigurasjonsfilene er plassert i / usr / local / apache2 / conf/.

hvordan liste de kompilerte modulene

de kompilerte modulene kan være oppført ved hjelp av følgende kommando:

/usr/local/apache2/bin/httpd -M

Start og stopp tjenesten

Den nye bygningen Av Apache HTTPD kan startes ved hjelp av kommandoen / usr / local / apache2/bin / apachectl.

for å starte tjenesten:

/usr/local/apache2/bin/apachectl start

for å stoppe tjenesten:

/usr/local/apache2/bin/apachectl stop

Å Bygge apr og apr-util fra kildekoden

de nødvendige bibliotekene for kompilering Av Apache HTTPD kan installeres fra Linux-distribusjonens hovedlagre, men I noen situasjoner Krever Apache HTTPD en nyere versjon av et bibliotek som ikke er tilgjengelig fra disse lagrene. I dette tilfellet kan bibliotekets kildekode også lastes ned og kompileres sammen Med Apache HTTPD.

bibliotekene apr og apr-util er to av kjernebibliotekene Som Apache HTTPD er avhengig Av for sitt interne arbeid for å sikre bærbarhet på tvers av mange operativsystemer.

Apache HTTPD-kildekoden inneholder en underkatalog som kalles srclib. Den brukes til å holde bibliotekene som kan bygges og brukes av serveren i stedet for å bruke systembiblioteker.

for å integrere apr-og apr-util-bibliotekets kildekode som en del Av kompileringsprosessen Til Apache HTTPD, lastes kildekoden ned og hentes ut i underkatalogen srclib.

følgende eksempel viser hvordan du laster ned og pakker ut kildekoden til de to bibliotekene apr og apr-util. Når tar-filen er hentet, bør versjonsnummeret fjernes.De er tilgjengelige for nedlasting fra den offisielle nettsiden: https://apr.apache.org/download.cgi.

cd /usr/local/src/httpd-2.4.43/srclib/wget https://downloads.apache.org/apr/apr-1.7.0.tar.gztar -xzf apr-1.7.0.tar.gzmv apr-1.7.0 aprlswget https://downloads.apache.org/apr/apr-util-1.6.1.tar.gztar -xzf apr-util-1.6.1.tar.gzmv apr-util-1.6.1 apr-utillscd /usr/local/src/httpd-2.4.43./configuremakemake install

slik oppgraderer du fra versjon 2.x til 2.y

oppdateringen Av En Apache HTTPD som er installert fra kildekoden er mulig. Anbefalt praksis er å bruke en egen installasjonsmappe for hver versjon og kopiere underkatalogen for konfigurasjon fra den gamle versjonen til den nye katalogen.

følgende eksempel viser hvordan du oppdaterer en allerede installert versjon 2.4.0 som er installert i /usr/local/apache-2.4.0, til en nyere versjon 2.4.43 som skal installeres i /usr/local/apache-2.4.43.

for å laste ned, kompilere og installere den nye versjonen:

cd /usr/local/src/wget https://downloads.apache.org//httpd/httpd-2.4.43.tar.gztar -xzf httpd-2.4.43.tar.gzcd httpd-2.4.43./configure --prefix=/usr/local/apache-2.4.43makemake install

Stopp tjenesten fra den gamle versjonen:

/usr/local/apache-2.4.0/bin/apachectl stop

Kopier konfigurasjonsmappen fra den gamle versjonens katalog til den nye versjonen:

rm -rf /usr/local/apache-2.4.43/conf/cp -rp /usr/local/apache-2.4.0/conf/ /usr/local/apache-2.4.43/

Start tjenesten fra den nye versjonen:

/usr/local/apache-2.4.43/bin/apachectl start

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.