NFsec Logo

Budowa i instalacja pakietów Apache 2.4.2 na CentOS 6.2

08/06/2012 w Administracja Brak komentarzy.  (artykuł nr 351, ilość słów: 405)

B

udowa i instalacja pakietów RPM serwera Apache z rodziny 2.4 na darmowej wersji systemu RedHat – CentOS oprócz wydania kilku poleceń wymaga jeszcze spełnienia wielu zależności, które w standardowej wersji systemu są niestety nieosiągalne. Pierwszym krokiem jest stworzenie środowiska do budowy pakietów RPM:

yum install rpm-build
yum install redhat-rpm-config
mkdir -p /usr/src/redhat/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
cd /root
ln -s /usr/src/redhat/rpmbuild rpmbuild 

Ze względu na wymaganie przez serwer Apache – APR (ang. The Apache Portable Runtime) w wersji wyższej niż 1.4 – drugim krokiem będzie włączenie repozytorium EPEL (ang. Extra Packages for Enterprise Linux) w celu zapewnienia pakietów z zależnościami dla nowszych wersji APR:

wget http://ftp.ps.pl/pub/Linux/fedora-epel/6/i386/epel-release-6-6.noarch.rpm
rpm -ivh epel-release-6-6.noarch.rpm
yum makecache

Kolejnym krokiem jest ściągnięcie źródeł APR oraz APR-util i instalacja dla nich zależności:

yum install freetds-devel autoconf libtool doxygen 

Po instalacji zależności mamy możliwość budowy i instalacji pakietu APR:

cd rpmbuild/SOURCES
wget http://www.idg.pl/mirrors/apache/apr/apr-1.4.6.tar.bz2
rpmbuild -tb apr-1.4.6.tar.bz2
cd ../RPMS/i686
rpm -ivh apr-1.4.6-1.i686.rpm
rpm -ivh apr-debuginfo-1.4.6-1.i686.rpm
rpm -ivh apr-devel-1.4.6-1.i686.rpm

Powyższe kroki powtarzamy dla APR-util, czyli instalacja zależności:

yum install expat-devel libuuid-devel db4-devel postgresql-devel mysql-devel \
sqlite-devel unixODBC-devel openldap-devel openssl-devel nss-devel

Budowa i instalacja pakietu:

cd rpmbuild/SOURCES
wget http://www.idg.pl/mirrors/apache/apr/apr-util-1.4.1.tar.bz2
rpmbuild -tb apr-util-1.4.1.tar.bz2
cd ../RPMS/i686
rpm -ivh apr-util\*

W wersji 2.4 serwera Apache wymagany jest również program distcache, który wykorzystywany jest przez moduł mod_cache_socache. Problemem jest, że kompilacja tego programu z źródeł jest niemożliwa ze względu na brak aktualizacji tego projektu i powodowanie błędów podczas próby kompilacji (wcześniej wsparcie dla distcache zostało porzucone już w wersji 2.2.14 serwera Apache). Na szczęście możemy wykorzystać źródłowe pakiety RPM wraz z dodanymi poprawkami z dystrybucji Fedora 17:

wget http://mirror/linux/fedora/development/17/source/SRPMS/d/distcache-1.4.5-23.src.rpm
rpm -ivh distcache-1.4.5-23.src.rpm
cd rpmbuild/SPECS/
rpmbuild -bb distcache.spec
cd ../RPMS/i686
rpm -ivh distcache-1.4.5-23.i686.rpm
rpm -ivh distcache-debuginfo-1.4.5-23.i686.rpm
rpm -ivh distcache-devel-1.4.5-23.i686.rpm

Ostatnim krokiem w procesie budowy pakietów jest instalacja zależności dla serwera Apache i kompilacja:

yum install pcre-devel lua-devel libxml2-devel 
rpmbuild -tb httpd-2.4.2.tar.bz2

Jeśli na końcu budowy otrzymamy komunikat błędu:

RPM build errors:
    Installed (but unpackaged) file(s) found:
    /usr/share/man/man8/fcgistarter.8.gz

Oznacza to, że plik fcgistarter.8.gz nie został uwzględniony w pliku httpd.spec i należy go dopisać – na przykład po pliku rotatelogs.8.gz:

%{_mandir}/man8/rotatelogs.8*
%{_mandir}/man8/fcgistarter.8*

Operacją kończącą cały proces jest instalacja zbudowanych pakietów:

rpm -ivh httpd-tools-2.4.2-1.i686.rpm
rpm -ivh httpd-debuginfo-2.4.2-1.i686.rpm
yum install mailcap
rpm -ivh httpd-2.4.2-1.i686.rpm
rpm -ivh httpd-devel-2.4.2-1.i686.rpm
rpm -ivh mod_ssl-2.4.2-1.i686.rpm
rpm -ivh ../noarch/httpd-manual-2.4.2-1.noarch.rpm

Innymi pakietami, które powstały podczas procesu budowy to:

mod_authnz_ldap-2.4.2-1.i686.rpm
mod_lua-2.4.2-1.i686.rpm
mod_proxy_html-2.4.2-1.i686.rpm
mod_socache_dc-2.4.2-1.i686.rpm

Ich instalacja zależy od funkcjonalności, jakie chcemy uruchomić w naszym serwerze WWW – do podstawowego działania nie są one wymagane.

Więcej informacji: Using Apache With RPM Based Systems

Kategorie K a t e g o r i e : Administracja

Tagi T a g i : , , , , , ,

Zostaw odpowiedź.

Musisz być zalogowany by móc komentować.