22 tammikuun, 2022

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

Vastaa

Sähköpostiosoitettasi ei julkaista.