mod_define für Apache 2 installieren

Achtung! Dieser Artikel ist älter als ein Jahr. Der Inhalt ist möglicherweise nicht mehr aktuell!

Das Modul ist ziemlich nützlich. Leider ist es weder bei Ubuntu oder Debian in den offiziellen Paketquellen enthalten. Das ist aber auch nicht weiter schlimm. Das Modul wurde schon ewig nicht mehr geupdated (trotzdem läuft es) und es ist einfach zu installieren.

Besorgen des Quellcodes

Die Aktuell Version ist immer hier verfügbar: http://people.apache.org/~rjung/mod_define/

Am besten man lädt sich die Datei _moddefine.c mit wget nach /usr/src.

root@currywurst ~ # cd /usr/src
root@currywurst /usr/src # wget http://people.apache.org/~rjung/mod_define/mod_define.c
--2014-07-11 15:37:01-- http://people.apache.org/~rjung/mod_define/mod_define.c
Resolving people.apache.org (people.apache.org)... 140.211.11.9
Connecting to people.apache.org (people.apache.org)|140.211.11.9|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 13376 (13K) [text/x-c]
Saving to: `mod_define.c.1'

100%[=========================================================================>] 13,376 37.8K/s in 0.3s

2014-07-11 15:37:02 (37.8 KB/s) - `mod_define.c.1' saved [13376/13376]

Kompilieren des Moduls

Für das kompilieren braucht man noch das Programm apxs2. Ich benutze als MPM prefork, deshalb brauche ich das prefork-dev Paket und eine weitere lib.

root@currywurst /usr/src # apt-get install apache2-prefork-dev libaprutil1-dev

Nach der Installation kann das kompilieren auch tatsächlich stattfinden.

root@currywurst /usr/src # apxs2 -cia mod_define.c
Use of uninitialized value $includedir in concatenation (.) or string at (eval 9) line 1.
/usr/share/apr-1.0/build/libtool --silent --mode=compile --tag=disable-static x86_64-linux-gnu-gcc -prefer-pic -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REENTRANT -I/usr/include -I/usr/include/apr-1.0 -I/usr/include/openssl -I/usr/include/xmltok -pthread -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REENTRANT -I -I. -I/usr/include -I/usr/include/apr-1.0 -I/usr/include/apache2 -I/usr/include/apr-1.0 -I/usr/include/apr-1.0 -I/usr/include -c -o mod_define.lo mod_define.c && touch mod_define.slo
/usr/share/apr-1.0/build/libtool --silent --mode=link --tag=disable-static x86_64-linux-gnu-gcc -Wl,--as-needed -Wl,-z,relro -o mod_define.la -rpath /usr/lib/apache2/modules -module -avoid-version mod_define.lo
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1.0/build/libtool' mod_define.la /usr/lib/apache2/modules
/usr/share/apr-1.0/build/libtool --mode=install cp mod_define.la /usr/lib/apache2/modules/
libtool: install: cp .libs/mod_define.so /usr/lib/apache2/modules/mod_define.so
libtool: install: cp .libs/mod_define.lai /usr/lib/apache2/modules/mod_define.la
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /usr/lib/apache2/modules
----------------------------------------------------------------------
Libraries have been installed in:
 /usr/lib/apache2/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
 - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
 during execution
 - add LIBDIR to the `LD_RUN_PATH' environment variable
 during linking
 - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
 - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 644 /usr/lib/apache2/modules/mod_define.so
[preparing module `define' in /etc/apache2/mods-available/define.load]
Enabling module define.
To activate the new configuration, you need to run:
 service apache2 restart

Dann noch schnell einen Reload des Apache-Servers gemacht und schon funktioniert’s.

Quellen / Nützliches

Hier noch ein paar nützliche Links:


Du hast einen Kommentar, einen Wunsch oder eine Verbeserung? Schreib mir doch eine E-Mail! Die Infos dazu stehen hier.

🖇️ = Link zu anderer Webseite
🔐 = Webseite nutzt HTTPS (verschlüsselter Transportweg)
Zurück