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