Wéi maacht Dir PCRE2 Support fir Apache 2.4

Ech géif gären meng Erfahrung vun der Iwwersetzung vun Apache 2.4 op PCRE2 deelen, well souguer PHP 7 d'PCRE2 Bibliothéik fir eng laang Zäit ënnerstëtzt huet, awer d'Open Source Apache Software Foundation nach ëmmer net.
Natierlech sinn ech elo wahrscheinlech virun der Apache Verëffentlechung mat PCRE2 Ënnerstëtzung, well ech benotzen d'Quellen aus dem Apache git, wat eis seet datt PCRE2 Support scho méiglech ass an der nächster Verëffentlechung, awer fir déi, déi scho PCRE2 Support wëllen an Apache 2.4, a wien net wëlle Verëffentlechung waarden, deelen ech ee vun de Weeër.

Den Artikel gëtt ugeholl datt Dir all déi néideg Software aus dem Quellcode sammelt, eng Lëscht vu Software a Versioune beim Schreiwen:

PCRE2-10.33
Abrëll 1.7.0
APR-Util 1.6.1
Apache httpd 2.4.41

Schrëtt eent: bauen a kompiléieren PCRE2

Loosst eis de Moment iwwersprangen fir d'Quellen aus den offiziellen Quellen erofzelueden, well dëst ze offensichtlech ass, sou datt Dir den Archiv ausgepackt hutt, gitt an den Dossier mat den PCRE2 Quellen, a lafen de folgende Kommando fir UTF z'ënnerstëtzen:

./configure --prefix=/etc/webserver/pcre2-1033 --enable-pcre2-8 --enable-pcre2-16 --enable-pcre2-32 --enable-unicode

Gitt Äre Wee am Präfix un, wann Dir net d'Standardplaz benotze wëllt fir d'Bibliothéik z'installéieren:

--prefix=/ваш/путь/до библиотеки

Soss sammelen Dir ouni Präfix.

Déi verbleiwen Kommandoen weisen op d'Inklusioun vun Ënnerstëtzer fir 8-Bit, 16-Bit an 32-Bit PCRE Code Blocks, an dëser Versioun gouf d'Versammlung mat hinnen gemaach.

An natierlech kompiléiere mir dës Saach mat sequenziell Ausféierung vu Kommandoen:

make
make install

Wann alles gutt ass an d'Kompilatioun ouni Feeler ass, fuert op den nächste Schrëtt.

Schrëtt zwee: Verbindung der PCRE2 Bibliothéik op APR

Well Apache Quelle mat APR kompiléiert, musse mir d'Bibliothéik am APR selwer enthalen, soss kënnen et Feeler iwwer onbekannte Funktiounen an Apache Quellen ginn, well mir nei PCRE2 Funktiounen benotzen.

Loosst eis de Moment eroflueden fir Quellen aus offiziellen Quellen erofzelueden well dëst ze offensichtlech ass, sou datt Dir d'Archiv ausgepackt hutt an d'APR Konfiguratioun gemaach hutt:

./configure --prefix=/etc/webserver/apr-170

Natierlech gitt Dir Äre Wee am Präfix un, wann Dir de Standardplaz net benotze wëllt fir d'Bibliothéik z'installéieren, oder wann Dir net spezifizéiert:

--prefix=/ваш/путь/до библиотеки

Nodeems Dir d'Konfiguratioun ofgeschloss hutt, gitt an de Verzeichnis: /etc/webserver/srcsrv/apr-1.7.0/build

Oder: /Äre/Wee/an d'Bibliothéik/bauen

Fannt d'apr_rules.mk Datei an dësem Verzeichnis, a füügt d'Zeilen um Enn derbäi wou:

EXTRA_LIBS=-lrt -lcrypt  -lpthread -ldl

D'Bibliothéik verbannen:

-lpcre2-8 -L/ваш/путь/до библиотеки pcre2/lib

Späichert a gitt an de Root Verzeechnes vun den APR Quellen: /Är/Wee/an d'Bibliothéik.

Loosst eis eise modifizéierten APR zesummestellen:

make
make install

Wann alles gutt ass an d'Kompilatioun ouni Feeler ass, fuert op den nächste Schrëtt.

Schrëtt dräi: bauen APR-Util fir Apache aus Quellen

Dir hutt dës Bibliothéik vun der Quell erofgelueden, gitt an de Root-Ordner vum ausgepackten Archiv mat APR-util, a gitt déi folgend Kommandoen sequenziell:

./configure --prefix=/etc/webserver/apr-util-161 --with-apr=/ваш/путь/до библиотеки apr
make
make install

Natierlech gitt Dir Äre Wee am Präfix un, wann Dir de Standardplaz net benotze wëllt fir d'Bibliothéik z'installéieren, oder wann Dir net spezifizéiert:

--prefix=/ваш/путь/до библиотеки

Mir verbannen och eisen APR hei:

--with-apr=/ваш/путь/до библиотеки apr

Schrëtt véier: Download Quellen vum Apache git fir PCRE2 z'ënnerstëtzen

Wichteg: Mir lueden d'Quellen aus der leschter Editioun vum Git erof.

Mir mussen zwou Quellen eroflueden wéi ap_regex.h an util_pcre.c, Linken hei drënner:
ap_regex.h
util_pcre.c

Gitt elo op Ären Apache httpd Quellverzeichnis a baut Apache mat de folgende Kommandoen:

./configure --prefix=/etc/webserver/apache-2441 --with-apr=/ваш/путь/до библиотеки apr --with-apr-util=/ваш/путь/до библиотеки apr-util --with-pcre=/ваш/путь/до библиотеки pcre2/bin/pcre2-config

Natierlech gitt Dir Äre Wee am Präfix un, wann Dir de Standardplaz net benotze wëllt fir d'Bibliothéik z'installéieren, oder wann Dir net spezifizéiert:

--prefix=/ваш/путь/до Apache httpd

Dir kënnt och zousätzlech Befehle spezifizéieren fir Apache ze bauen no Ärem Diskretioun, ech mengen d'Befehle fir Moduler a Bibliothéiken z'aktivéieren oder auszeschalten.

Als nächst gi mir an eisen Apache httpd Quellverzeichnis, ech hunn dëst:

/etc/webserver/srcsrv/httpd-2.4.41

Dir gitt natierlech an Äre Verzeichnis, ersetzt am Verzeechnes:

/etc/webserver/srcsrv/httpd-2.4.41/include

D'Datei ap_regex.h, déi mir vum Apache git erofgelueden hunn.

Mir ginn och an den Dossier:

/etc/webserver/srcsrv/httpd-2.4.41/server

Mir ersetzen d'Datei util_pcre.c mat deem, dee mir vum Apache git erofgelueden hunn

Elo bleift just d'PCRE2 Verbindung an Apache selwer ze addéieren, Dir musst d'Datei fannen ap_config_auto.h, et ass am Verzeechnes:

/etc/webserver/srcsrv/httpd-2.4.41/include

Am Ufank vun dëser Datei fügen déi folgend Zeilen an:

/* Load PCRE2 */
#define HAVE_PCRE2 1

Gutt, elo si mir prett fir de richtege Moment fir Apache httpd mat PCRE2 Support ze kompiléieren.
Loosst eis an eisen Apache httpd Quellverzeichnis goen a kompiléieren dëst andeems Dir d'Befehle sequentiell ausféiert:

make
make install

Elo, wann alles gutt an ouni Feeler gaang ass, da wäert Dir Apache httpd mat PCRE2 Support versammelt a kompiléiert hunn, dat heescht positiv Ännerungen an Apache Moduler déi PCRE regulär Ausdrock benotzen, ee vun dësen ass Modul Rewrite.

Zum Schluss mécht dës Method et méiglech PCRE2 virun der offizieller Verëffentlechung vun der Apache Software Foundation ze benotzen, ech hoffen datt eng Versioun mat PCRE2 Support geschwënn verëffentlecht gëtt.

Och beim Testen vum Standard .htaccess goufe keng Feeler geschitt, wann iergendeen Feeler huet, schreift an de Kommentaren.

PS

Ech war e bëssen duercherneen vun der Situatioun vun engem benotzen zwou verschidde Versiounen vun PCRE fir meng Stack, an ech decidéiert et ze befestegt.

Source: will.com

Setzt e Commentaire