IT-Freelancer // Android + Coding
Apache ist der meist verwendete Webserver der Welt. Da in den Debian-Repositories immer noch Apache 2.2 rumliegt, aber bereits Version 2.4 existiert, nachfolgend eine kleine Anleitung zur Installation dieser Version (auf Vor- oder Nachteile der Versionen untereinander oder mit lighttpd, nginx, etc. möchte ich hier nicht eingehen, mein persönlicher Anreiz waren die sichereren Cipher-Suiten, die mit Apache 2.2 nicht nutzbar waren).
Da eben noch Version 2.2 in den Repos liegt, müssen wir uns Apache 2.4 selbst zusammenbauen (=kompilieren).
Hinweis: Vor der Installation solltet ihr bei allen Paketen die neuste Version herunterladen und installieren, bei Apache ist diese hier gelistet.
Zunächst die benötigten Pakete zur Kompilierung installieren:
apt-get install autoconf python libtool build-essential
Als nächstes erstellen wir einen neuen Ordner im Root-Verzeichnis:
mkdir /~/install
... und laden uns den Apache-Webserver als Source herunter, außerdem entpacken wir diese:
wget http://www.eu.apache.org/dist/httpd/httpd-2.4.34.tar.gz tar xvfz httpd-2.4.34.tar.gz
Anschließend wechseln wir in das Verzeichnis "srclib":
cd httpd-2.4.34/srclib
Nun laden wir uns (wieder jeweils schauen ob die verlinkte Version noch aktuell ist!) noch einige weitere benötigte Pakete herunter, darunter die Apache Portable Runtime - ICONV:
wget http://mirror.netcologne.de/apache.org/apr/apr-iconv-1.2.2.tar.gz tar xvfz apr-iconv-*.tar.gz mv apr-iconv-1.2.2 apr-iconv
... außerdem zLib:
wget http://zlib.net/zlib-1.2.11.tar.gz tar xvfz zlib-1.2.11.tar.gz mv zlib-1.2.11 zlib
... die PCRE (Perl Compatible Regular Expressions):
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz tar xvfz pcre-8.42.tar.gz mv pcre-8.42 pcre cd pcre ./configure make make install cd ..
... und zuletzt noch OpenSSL in Version 1.0.2p:
wget ftp://ftp.openssl.org/source/openssl-1.0.2p.tar.gz tar xfz openssl-1.0.2p.tar.gz
Anschließend kompilieren wir nun OpenSSL:
cd openssl-* ./config --prefix=/usr zlib-dynamic --openssldir=/etc/ssl shared make make test sudo make
Soweit sollte alles fehlerfrei geklappt haben!
Weiter geht es dann nun mit der Kompilierung und Installation des Apaches:
cd ../.. svn co http://svn.apache.org/repos/asf/apr/apr/trunk srclib/apr ./buildconf
Nun müsst ihr euch entscheiden, ob Apache mit Suexec-Unterstützung (FastCGI-PHP):
./configure --prefix=/opt/apache2 --enable-pie --enable-mods-shared=all --enable-so --disable-include --enable-deflate --enable-headers --enable-expires --enable-ssl=shared --enable-mpms-shared=all --with-mpm=event --enable-rewrite --with-z=/root/install/httpd-2.4.34/srclib/zlib --enable-module=ssl --enable-fcgid --with-included-apr --enable-suexec --with-suexec-caller=httpd --with-ssl=/root/install/httpd-2.4.34/srclib/openssl-1.0.2p --with-pcre=/root/install/httpd-2.4.34/srclib/pcre/bin/pcre-config
... oder ohne installiert werden soll:
./configure --prefix=/opt/apache2 --enable-pie --enable-mods-shared=all --enable-so --disable-include --enable-deflate --enable-headers --enable-expires --enable-ssl=shared --enable-mpms-shared=all --with-mpm=event --enable-rewrite --with-z=/root/install/httpd-2.4.34/srclib/zlib --enable-module=ssl --enable-fcgid --with-included-apr --with-ssl=/root/install/httpd-2.4.34/srclib/openssl-1.0.2p --with-pcre=/root/install/httpd-2.4.34/srclib/pcre/bin/pcre-config
Anschließend können wir Apache kompilieren:
make
Sollte hierbei die folgende Meldung auftauchen...
[...] undefined reference to `SSLv2_client_method' [...]
... öffnet ihr die Datei support/ab.c in eurem Apache-Source-Verzeichnis und fügt folgendes an den Anfang der Datei*:
#define OPENSSL_NO_SSL2
Bei folgender Meldung:
libtool not found. You need libtool version 1.4 or newer installed to build APR from SVN.
einfach libtool-bin installieren:
apt-get install libtool-bin
Anschließend sollte die Kompilierung mittels
make
funktionieren. Dann noch ein
sudo make install
hinterher und Apache ist installiert!
Wenn ihr noch die FCGI-Unterstützung installieren möchtet, wechselt wieder in das Installationsverzeichnis und laden die Source-Dateien für mod_fcgi herunter:
cd /root/install wget http://www.trieuvan.com/apache/httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz
Anschließend entpacken wir diese, wechseln in das Verzeichnis und kompilieren und installieren den Mod:
tar xvfz mod_fcgid-*.tar.gz cd mod_fcgid-* APXS=/opt/apache2/bin/apxs ./configure.apxs make sudo make install
Damit ist die Installation von Apache 2.4.20 inkl. mod_fcgid abgeschlossen!
Um unseren Apache nun mit PHP und mod_fcgid nutzen zu können, müssen wir noch eine kleine Konfiguration in der httpd.conf vornehmen. Dazu fügen wir folgendes an das Ende (oder in die Mitte) ein:
[...] FcgidMaxProcesses 50 FcgidFixPathinfo 1 FcgidProcessLifeTime 0 FcgidTimeScore 3 FcgidZombieScanInterval 20 FcgidMaxRequestsPerProcess 0 FcgidMaxRequestLen 33554432 FcgidIOTimeout 120 AddHandler fcgid-script .php Options +ExecCGI FCGIWrapper /usr/lib/cgi-bin/php5 .php
Des weiteren solltet ihr schauen, dass die folgenden zwei Module nicht auskommentiert sind:
[..] LoadModule fcgid_module modules/mod_fcgid.so LoadModule suexec_module modules/mod_suexec.so [..]
Anschließend könnt ihr den Apacheserver starten:
/opt/apache2/bin/apachectl start
Wenn die Meldung
/opt/apache2/bin/httpd: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
erscheint, suchen wir die libpcre.so.1-Datei und fügen den Pfad zu dieser zur LD_LIBRARY_PATH-Variable hinzu:
find / -name libpcre.so.1 export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Bei der Meldung
Cannot load modules/mod_ssl.so into server: /opt/apache2/modules/mod_ssl.so: undefined symbol: SSL_CONF_CTX_finish
suchen wir die libssl.so-Datei und fügen den Pfad zu dieser ebenfalls der LD_LIBRARY_PATH-Variable hinzu:
find / -name libssl.so export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH
Wenn ihr die folgende Fehlermeldung erhaltet:
Cannot load modules/mod_fcgid.so into server: /opt/apache2/modules/mod_fcgid.so: cannot open shared object file: No such file or directory
habt ihr vergessen mod_fcgid zu installieren, geht also in den mod_fcgid-Source-Ordner und installiert das Programm:
cd /root/install/mod_fcgid* sudo make install
Sollte die Meldung
Wrapper /usr/lib/cgi-bin/php5 cannot be accessed: (2)No such file or directory
erscheinen, einfach PHP5-CGI installieren:
apt-get install php5-cgi
Bei weiteren Fehlermeldungen, schreibt einfach einen Kommentar, ich versuche euch dann zu helfen :)
Wenn ihr alles richtig gemacht habt, könnt ihr nun Apache konfigurieren.
Das passende Startscript findet ihr hier. Einfach eine Datei in /etc/init.d/ mit dem Namen apache2 erstellen und den Inhalt einfügen.
Dann die Rechte vergeben:
chmod 0755 /etc/init.d/apache2
Anschließend starten/stoppen des Apache über:
/etc/init.d/apache2 start
oder
service apache2 start