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