Apache HTTPD: n kokoaminen ja asennus lähdekoodista
useimmat Linux-jakelut tarjoavat Apache HTTPD: n binääripaketeista oman versionsa niiden päävarastoista. Haittapuolena on, että tätä versiota ei usein päivitetä ennen seuraavan jakelun suurta julkaisua.
vain uudemmasta versiosta saatavilla olevien ominaisuuksien hyödyntäminen tai Apache HTTPD: n räätälöidyn binäärin rakentaminen, kokoaminen ja asennus lähdekoodista on yksinkertaista.
tämä opetusohjelma kuvaa Apache HTTPD: n kokoaminen-ja asennusvaiheita RPM-pohjaisissa (Fedora, CentOS, …) ja Deb-pohjaisissa (Debian, Ubuntu, …) Linux-jakeluissa. Uusin saatavilla oleva versio (2.4.x) käytetään.
Apache HTTPD-lähdekoodi
hakemistoa / usr/local/ src / käytetään yleensä rakentamiseen liittyviin toimintoihin (vaatii pääkäyttäjän oikeudet). Sitä käytetään tässä opetusohjelmassa rakennushakemistona.
Apache HTTPD: n lähdekoodi on saatavilla tar-tiedostona osoitteesta: http://httpd.apache.org/download.cgi.
Seuraavassa on ohjeet lähdekoodin lataamiseen ja purkamiseen rakennushakemistossa (versionumeroita voidaan muuttaa tarpeen mukaan):
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
rakentamisriippuvuuksien asennus
Apache HTTPD: n kokoaminen edellyttää kehitystyökalujen (C-kääntäjä, linker, …) ja joidenkin ylimääräisten kirjastojen asentamista.
tarvittavat kirjastot ovat:
- huhti
- huhti-util
- openssl
- expat
- prce
useimmat Linux-jakelut tarjoavat näitä kirjastoja päävarastoista. Jos järjestelmä sisältää vanhan version kirjastosta, sen lähdekoodi voidaan ladata ja koota erikseen. Myöhemmässä osassa esitellään, miten kirjastojen apr ja apr-util lähdekoodi Ladataan ja rakennetaan osana Apache HTTPD-kokoamisprosessia.
RPM-pohjaisissa (Fedora, Centos, …) Linux-jakeluissa kirjastojen kehityspaketit voidaan asentaa seuraavilla komennoilla:
yum group install developmentyum install openssl-devel expat-devel pcre-devel apr-devel apr-util-devel
Deb-pohjaisissa (Debian, Ubuntu, …) Linux-jakeluissa kirjastojen kehityspaketit voidaan asentaa seuraavalla komennolla:
apt install build-essential libssl-dev libexpat-dev libpcre2-dev libapr1-dev libaprutil1-dev
Build configuration options
Kun Apache HTTPD-lähdekoodi on ladattu ja build-riippuvuudet on asennettu, build configuration options may be set (kääntäjän asetukset, asennushakemisto, enable/disable modules,…).
koska Apache HTTPD käyttää Autoconf-rakentamisjärjestelmää, se tarjoaa configure – nimisen komentosarjan, joka asettaa rakentamisasetusasetukset ja luo Makefile-tiedostot.
ellei joitakin parannuksia tarvita, oletusarvot voidaan pitää. Oletuksena on kääntää suurin osa moduuleista ja asettaa asennushakemisto muotoon / usr / local / apache2/.
jos haluat käyttää oletusarvoja, configure-komentojonoa kutsutaan ilman argumentteja:
cd /usr/local/src/httpd-2.4.43./configure
jos haluat luetella kaikki mahdolliset vaihtoehdot, komentosarjan asetukset kutsutaan-help-argumentilla:
cd /usr/local/src/httpd-2.4.43./configure --help
seuraavissa osissa esitetään joitakin hyödyllisiä build configuration options.
asennushakemisto: – etuliitevalinta
asennushakemisto on erilainen kuin rakennushakemisto. Siinä tuloksena olevat binäärit ja asetustiedostot sijoitetaan, kun kokoelma onnistuu ja komento make install suoritetaan (esitetty asennus-osiossa).
– etuliite-valitsinta käytetään toisen asennuspolun valitsemiseen. Tämä vaihtoehto on hyödyllinen, jos meidän täytyy rakentaa ja asentaa eri versioita Apache HTTPD.
seuraavassa esimerkissä esitetään, miten asennushakemisto asetetaan /opt/apache-muotoon-2.4.43/:
cd /usr/local/src/httpd-2.4.43./configure --prefix=/opt/apache-2.4.43/
moduulin ottaminen käyttöön/poistaminen käytöstä: – enable-MODULE / -disable-MODULE
useimmat Apache HTTPD-moduulit on rakennettu oletusarvoisesti dynaamisiksi kirjastoiksi. – Enable-MODULE-vaihtoehtoa voidaan käyttää moduulin käyttöönottoon tai sen muunnostyypin muuttamiseen dynaamisesta staattiseksi. Valitsinta-disable-MODULE käytetään moduulin rakentamisen estämiseen. Moduuli korvataan varsinaisen moduulin nimellä.
seuraava esimerkki osoittaa moduulin uudelleenkirjoittamisen staattisena kirjastona:
cd /usr/local/src/httpd-2.4.43./configure --enable-rewrite=static
kääntäjän valinnat
tarvittaessa kääntäjän valinnat siirretään asetuskoskriptioon ympäristömuuttujina.
muuttujista on yhteenveto seuraavassa taulukossa:
CC | käytetään C-kääntäjän komennon valintaan. Se oletusarvoisesti CC (GNU-kääntäjä) , mutta clang on myös vaihtoehto |
cflags | käytetään C-kääntäjän lippujen kulkemiseen |
LDFLAGIT | , joita käytetään linkerin lippujen ohittamiseen |
LIBS | käytetään kirjastojen siirtämiseen linkittäjälle |
cppflagit | käytetään (Objective) C/C++ – esiprosessorin lippujen välittämiseen |
CPP | käytetään C-esiprosessorin parametrien siirtämiseen |
seuraavassa esimerkissä esitetään, miten optimointilippu siirretään C-kääntäjälle:
cd /usr/local/src/httpd-2.4.43export CFLAGS=-o2./configure
Compilation and installation
configure-komentosarjan suorituksen jälkeen, joka määrittää rakentamisasetusasetukset ja luo Makefile-tiedostot, kokoamisprosessi aloitetaan make-komennolla.
seuraavassa esimerkissä esitetään, miten kokoamisprosessi aloitetaan:
cd /usr/local/src/httpd-2.4.43./configuremake
kun kokoelma onnistuu, asennus asennushakemistoon voidaan aloittaa seuraavalla komennolla:
make install
asennus sijoittaa kaikki tarvittavat binäärit ja asetustiedostot asennushakemistoon / usr/local / apache2. Suoritettavat tiedostot sijoitetaan kansioon / usr / local / apache2/bin/. Asetustiedostot on sijoitettu kansioon / usr / local / apache2/conf/.
koottujen moduulien luettelointi
kootut moduulit voidaan luetella seuraavalla komennolla:
/usr/local/apache2/bin/httpd -M
Käynnistä ja Pysäytä palvelu
Apache HTTPD: n uusi rakenne voidaan käynnistää komennolla / usr/local/apache2/bin / apachectl.
palveluksen aloittamiseen:
/usr/local/apache2/bin/apachectl start
pysäyttämään palvelun:
/usr/local/apache2/bin/apachectl stop
Apache HTTPD: n kokoamiseen tarvittavat kirjastot voidaan asentaa Linux-jakelun päävarastoista, mutta joissakin tilanteissa Apache HTTPD vaatii uudemman version kirjastosta, jota ei ole saatavilla näistä arkistoista. Tällöin myös kirjaston lähdekoodi voidaan ladata ja kääntää Apache HTTPD: n rinnalla.
kirjastot Apache httpd ja apr-util ovat kaksi ydinkirjastoa, joihin Apache HTTPD luottaa sisäisessä työssään varmistaakseen siirrettävyyden monissa käyttöjärjestelmissä.
Apachen HTTPD-lähdekoodi sisältää alihakemiston, jota kutsutaan nimellä srclib. Sitä käytetään pitämään kirjastot, jotka voidaan rakentaa ja käyttää palvelimen sijasta järjestelmän kirjastot.
jotta Apache-ja apr-util-kirjastojen lähdekoodi voidaan integroida osaksi Apache HTTPD: n kokoamisprosessia, niiden lähdekoodi Ladataan ja uutetaan alihakemiston srclib sisällä.
seuraavassa esimerkissä esitellään, miten kahden kirjaston apr ja apr-util lähdekoodi Ladataan ja puretaan. Kun tar-tiedosto puretaan, versionumero on poistettava.Ne ovat ladattavissa virallisilta verkkosivuilta: 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
kuinka päivittää versiosta 2.x 2: een.y
lähdekoodista asennetun Apache HTTPD: n päivitys on mahdollista. Suositeltu käytäntö on käyttää erillistä asennushakemistoa jokaiselle versiolle ja kopioida määritysalahakemisto vanhasta versiosta uuteen hakemistoon.
seuraavassa esimerkissä esitellään, miten jo asennettu versio 2.4.0, joka on asennettu /usr/local/apache-2.4.0, päivitetään uudempaan versioon 2.4.43, joka asennetaan /usr/local/apache-2.4.43.
uuden version lataamiseen, kääntämiseen ja asentamiseen:
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
Pysäytä palvelu vanhasta versiosta:
/usr/local/apache-2.4.0/bin/apachectl stop
Kopioi asetuskansio vanhan version hakemistosta uuden version hakemistoon:
rm -rf /usr/local/apache-2.4.43/conf/cp -rp /usr/local/apache-2.4.0/conf/ /usr/local/apache-2.4.43/
Aloita palvelu uudesta versiosta:
/usr/local/apache-2.4.43/bin/apachectl start