január 22, 2022

az Apache HTTPD fordítása és telepítése forráskódból

a legtöbb Linux disztribúció az Apache HTTPD bináris csomagok egy speciális verzióját biztosítja a fő tárolóikból. Hátránya, hogy ezt a verziót gyakran nem frissítik a következő disztribúció fő kiadásáig.

a csak egy újabb verzióból elérhető funkciók kihasználása vagy testreszabott bináris fájlok létrehozása érdekében az Apache HTTPD forráskódból történő összeállítása és telepítése egyszerű.

ez az oktatóanyag leírja az Apache HTTPD fordítási és telepítési lépéseit RPM-alapú (Fedora, CentOS, …) és Deb-alapú (Debian, Ubuntu, …) Linux disztribúciók alatt. A legújabb elérhető Verzió (2.4.x) használják.

Apache HTTPD forráskód

a /usr/local/src/ könyvtárat általában a buildhez kapcsolódó tevékenységekhez használják (root jogosultságokat igényel). Ebben az oktatóanyagban build könyvtárként használják.

az Apache HTTPD forráskódja tar fájlként érhető el: http://httpd.apache.org/download.cgi.

a következő lépések a forráskód letöltéséhez és kibontásához a build könyvtárban (a verziószámok szükség szerint módosíthatók):

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

build függőségek telepítése

az Apache HTTPD fordításához a Fejlesztőeszközök (C fordító, linker, …) és néhány további könyvtár telepítése szükséges.

a szükséges könyvtárak:

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

a legtöbb Linux disztribúció ezeket a könyvtárakat a fő tárolókból biztosítja. Ha a rendszer egy könyvtár egy régi verzióját tartalmazza, akkor annak forráskódja külön letölthető és lefordítható. Egy későbbi rész bemutatja, hogyan töltheti le és építheti fel az apr és apr-util könyvtárak forráskódját az Apache HTTPD fordítási folyamat részeként.

RPM alapú (Fedora, Centos, …) Linux disztribúciókon a könyvtárak fejlesztői csomagjai a következő parancsokkal telepíthetők:

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

Deb-alapú (Debian, Ubuntu, …) Linux disztribúciókon a könyvtárak fejlesztési csomagjai a következő paranccsal telepíthetők:

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

Build konfigurációs beállítások

az Apache HTTPD forráskód letöltése és a build függőségek telepítése után beállíthatók a build konfigurációs beállítások (fordító beállításai, telepítési könyvtár, modulok engedélyezése/letiltása,…).

mivel az Apache HTTPD az Autoconf build rendszert használja, egy configure nevű szkriptet biztosít a build konfigurációs beállítások beállításához és a Makefile fájlok létrehozásához.

hacsak nincs szükség néhány módosításra, az alapértelmezett értékek megtarthatók. Alapértelmezés szerint a legtöbb modult lefordítjuk, és a telepítési könyvtárat a /usr/local/apache2/értékre állítjuk be.

az alapértékek használatához a configure parancsfájlt argumentumok nélkül kell meghívni:

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

az összes lehetséges opció felsorolásához a parancsfájl konfigurálása a –help argumentummal történik:

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

a következő szakaszok néhány hasznos build konfigurációs lehetőséget mutatnak be.

telepítési könyvtár: –előtag opció

a telepítési könyvtár eltér a build könyvtártól. Ez az a hely, ahol az eredményül kapott binárisok és konfigurációs fájlok kerülnek elhelyezésre, amint a fordítás sikeres lesz, és a make install parancs végrehajtásra kerül (a telepítés részben található).

a –prefix opció egy másik telepítési útvonal kiválasztására szolgál. Ez az opció akkor hasznos, ha az Apache HTTPD különböző verzióit kell építenünk és telepítenünk.

a következő példa bemutatja, hogyan kell beállítani a telepítési könyvtárat /opt / apache-2.4.43/:

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

a modul engedélyezése/letiltása: – enable-MODULE / -disable-MODULE

az Apache HTTPD modulok többsége alapértelmezés szerint dinamikus könyvtárakként épül fel. Az-Enable-MODULE opció használható egy modul engedélyezésére vagy a build típusának dinamikusról statikusra változtatására. A-Disable-MODULE opció a modul építésének letiltására szolgál. Modul helyébe a tényleges modul nevét.

a következő példa a modul újraírását statikus könyvtárként mutatja be:

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

Fordító beállításai

ha szükséges, a fordító beállításai környezeti változóként kerülnek átadásra a konfigurációs parancsfájlnak.

a változókat az alábbi táblázat foglalja össze:

CC a C fordító parancs kiválasztására szolgál. Alapértelmezés szerint a CC (a GNU fordító), de a clang is opció
CFLAGS használt át C fordító zászlók
LDFLAGS használt át linker zászlók
LIBS könyvtárak továbbítására szolgál a linker számára
CPPFLAGS C/C++ előfeldolgozó zászlók átadására szolgál
CPP a C előfeldolgozó paramétereinek átadására szolgál

a következő példa bemutatja, hogyan kell átadni egy optimalizálási jelzőt a C fordítónak:

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

fordítás és telepítés

a configure szkript végrehajtása után a Build konfigurációs beállítások beállításához és a Makefile fájlok létrehozásához a fordítási folyamat a make paranccsal kezdődik.

a következő példa bemutatja, hogyan kell elindítani a fordítási folyamatot:

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

miután a fordítás sikeres volt, a telepítés a telepítési könyvtárba a következő paranccsal indítható el:

make install

a telepítés az összes szükséges bináris fájlt és konfigurációs fájlt a /usr/local/apache2 telepítési könyvtárba helyezi. A futtatható fájlok a /usr/local/apache2/bin/könyvtárba kerülnek. A konfigurációs fájlok a /usr/local/apache2/conf/könyvtárba kerülnek.

a lefordított modulok felsorolása

a lefordított modulokat a következő paranccsal lehet felsorolni:

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

a szolgáltatás indítása és leállítása

az Apache HTTPD új buildje a /usr/local/apache2/bin/apachectl paranccsal indítható el.

a szolgáltatás elindításához:

/usr/local/apache2/bin/apachectl start

a szolgáltatás leállításához:

/usr/local/apache2/bin/apachectl stop

apr és apr-util felépítése

forráskódból az Apache HTTPD összeállításához szükséges könyvtárak telepíthetők a Linux disztribúció fő tárolóiból, de bizonyos esetekben az Apache HTTPD-nek szüksége van egy olyan könyvtár újabb verziójára, amely nem érhető el ezekből a tárolókból. Ebben az esetben a könyvtár forráskódja is letölthető és lefordítható az Apache HTTPD mellett.

az apr és az apr-util könyvtárak az Apache HTTPD azon alapvető könyvtárak közé tartoznak, amelyekre belső munkája során támaszkodik, hogy biztosítsa a hordozhatóságot számos operációs rendszeren.

az Apache HTTPD forráskód tartalmaz egy alkönyvtárat, amelyet srclib-nek hívnak. A rendszerkönyvtárak használata helyett a kiszolgáló által épített és használt könyvtárak tárolására szolgál.

az apr és apr-util könyvtárak forráskódjának integrálásához az Apache HTTPD fordítási folyamatának részeként a forráskódot letöltik és kibontják az srclib alkönyvtárban.

a következő példa bemutatja, hogyan lehet letölteni és kibontani a két Apr és apr-util könyvtár forráskódját. A tar fájl kibontásakor a verziószámot ki kell venni.Ezek letölthetők a hivatalos weboldalról: 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

hogyan lehet frissíteni a 2.verzióból.x-től 2-ig.y

a forráskódból telepített Apache HTTPD frissítése lehetséges. Az ajánlott gyakorlat az, hogy minden verzióhoz külön telepítési könyvtárat használ, és másolja a konfigurációs alkönyvtárat a régi verzióból az új könyvtárba.

a következő példa bemutatja, hogyan lehet frissíteni egy már telepített 2.4.0 verziót, amely a /usr/local/apache-2.4.0 fájlba van telepítve, egy újabb 2.4.43 verzióra, amely a /usr/local/apache-2.4.43 fájlba lesz telepítve.

az új verzió letöltéséhez, fordításához és telepítéséhez:

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

állítsa le a szolgáltatást a régi verzióból:

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

másolja a konfigurációs könyvtárat a régi verzió könyvtárából az új verzió könyvtárába:

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

indítsa el a szolgáltatást az új verzióból:

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

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.